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 // Посылаем команду для начала передачи файла. &n!
bsp;Socket.SendText('send'); end;
procedure 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); &n!
bsp; ms.Position:= 0; // Добавляем длину данных, чтобы клиент знал, сколько данных будет передано // Добавляем #0 , чтобы можно было определить, где заканчивается информация о размере. Socket.SendText(IntToStr(ms.Size) + #0); // Посылаем его. Socket.SendStream(ms); except // Итак, осталось освободить поток, если что-то не так. ms.Free; end; end; end;
EDBEngineError
Сделал консольное приложение, кот. формирует вэб страницу. Хочу выводить на ней базу из SQL Server 2000. База настроена ...
OpenPictureDialog ? :)
Поблема в следующем... Если пользую стандартный OpenPictureDialog то падает программа... Если по нему (...
Как скрыть прогу?
Вот пишу одну программу под Win XP. И необходимо её скрыть, чтобы нен светилась в панели задач и в списке задач.
шедулер
Люди, кто-то нить писал примитивный шедулер? Собственно я реализовываю просто на таймере, который, с периодом dt ...
Использование DLL созданной в D7 для D5
DLL скомпилирована в D7 с использованием в параметре эспортируемой процедуры делфянского типа, например procedure test(...
DirectX (Игровой SDK) Часть 1-2
Часть 1 (Модель компонентных объектов (СОМ) ,DirectDraw, Объект IDirectDraw, Пример DDDemo1) Часть 2 (Коды возврата DirectDraw и исключения Delphi, Переключение на полноэкранный режим, Пример DDDemo2, Добавление обработчика исключений приложения)
Экстремальное программирование
Эта книга об экстремальном программировании. Экстремальное программирование, часто обозначаемое аббревиатурой «XP» — это упрощенная методика организации производства для небольших и средних по размеру команд разработчиков, занимающихся разработкой программного продукта в условиях неясных или быстро меняющихся требований. Данная книга предназначена для того, чтобы помочь вам определить, оправдано применение XP в вашей ситуации или нет.
Автор: Kent Beck
Хокку дня
Гейши пошли постирать кимоно Тут-то их всех и накрыло Мощной волною цунами...
Афоризмы
Глупо ломиться в открытую дверь, когда рядом полно закрытых.
Фраза дня
Все мы аморально устойчивы.
Дурацкие законы (информация предоставлена сайтом kurilka.com)
В городе Глендейл в Аризоне (США) запрещается водить машину задом.
В городе Глоуб в Аризоне (США) нельзя играть на улицах с индейцами в карты.
И на закуску коротенький анекдот
За прошедшие сутки в городе Н зафиксировано: 1 пожар, одно ДТП, одно ограбление, одно изнасилование. Пострадавший находится сейчас в городской травматологической больнице.