procedure TForm1.Image1Click(Sender: TObject); begin // Это процедура для открытия сокета на ПРИЁМ (RECEIVING). // Button1.Click is this procedure as well. ClientSocket1.Active:= true; end;
procedure TForm1.FormCreate(Sender: TObject); begin // Открытие ОТПРАВЛЯЮЩЕГО (SENDING) сокета. ServerSocket1.Active:= true; end;
procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin // Посылаем команду для начала передачи файла. &nb
sp;Socket.SendText('send'); end;
proce!
dure
TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var s, sl: string; begin s:= Socket.ReceiveText; // Если мы не в режиме приёма: if not Reciving then begin // Теперь нам необходимо получить длину потока данных. SetLength(sl, StrLen(PChar(s))+1); // +1 for the null terminator StrLCopy(@sl[1], PChar(s), Length(sl)-1); DataSize:= StrToInt(sl); Data:= TMemoryStream.Create; // Удаляем информацию о размере из данных. Delete(s, 1, Length(sl)); Reciving:= true; end; // Сохраняем данные в файл, до тех пор, пока не получим все данные. try
Data.Write(s[1], length(s)); if Data.Size = DataSize
then begin Data.Position:= 0; Image2.Picture.Bitmap.LoadFromStream(Data); Data.Free; Reciving:= false; Socket.Close; end; except Data.Free; end; end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var ms: TMemoryStream; begin // Клиент получает команду на передачу файла. if Socket.ReceiveText = 'send' then begin ms:= TMemoryStream.Create; try // Получаем данные на передачу. Image1.Picture.Bitmap.SaveToStream(ms);
ms.Position:= 0; // Добавляем д
лину данных, чтобы клиент знал, сколько данных будет передан!
о // Добавляем #0 , чтобы можно было определить, где заканчивается информация о размере. Socket.SendText(IntToStr(ms.Size) + #0); // Посылаем его. Socket.SendStream(ms); except // Итак, осталось освободить поток, если что-то не так. ms.Free; end; end; end;
Ошибка с полем дата/время в аксес
Запрос типа select field from table where data<="01.01.01" в парадоксе работал, а в аксесе 'Несоответствие типов ...
Отправка СМС-сообщений, используя HTTP
Кто-нибудь задавался целью написать программу для отправки смс используя не SMTP, а НТТР (т.е. Вэб интерфейс оператора)....
Работа с COM-портами под Windows
Практически любому компьютеру приходится связываться с внешними устройствами. Практически любому программисту приходилось (приходится, придется) ваять программы под эти устройства. Огромное количество внешних устройств общаются с компьютером посредством RS-232. Отсюда и огромное количество вопросов от начинающих разработчиков. Количество вопросов на тему "как мне записать/принять данные с com-порта" на форумах по программированию не убывает, а скорее растет. Именно количество этих вопросов побудило меня к написанию статьи. Хотелось бы подчеркнуть, что статья предназначена именно для новичков в этом вопросе, и соответственно я старался упростить изложение материала.
Базы данных в Delphi 7. Самоучитель
В этой книге урок за уроком описывается работа с базами данных. Демонстрируются широкие возможности по созданию интерфейса пользователя и рассказывается о большом наборе стандартных компонентов, с помощью которых можно создавать приложения достаточно высокого уровня сложности. Самоучитель предназначен для читателей, знакомых с основами объектно-ориентированного программирования и уже имеющих опыт написания простых программ в среде Delphi.
Автор: Понамарев В. А.
Хокку дня
Паучек на паутинке Листочек желтый догоняет Прощаются с летом
Афоризмы
В России надо жить долго, тогда что-нибудь получится (Корней Чуковский)
Фраза дня
Грудь - это лицо женщины!
Дурацкие законы (информация предоставлена сайтом kurilka.com)
В Дании прежде чем завести машину вы должны: - проверить исправность фар, тормозов, руля и клаксона. - убедиться, что под ней нет детей.
В Монтане (США) женщине грозит тюрьма, если она вскроет почту мужа
И на закуску коротенький анекдот
Чем дольше общаешься с девушками - тем сильнее понимаешь голубых.