Форум: "Система";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];
ВнизКак передать объект класса TBitmap Найти похожие ветки
← →
Barmutik (2002-03-19 17:18) [0]Встала необходимость передать изображение через COM.
Т.е. при вызове функции необходимо получить с удалённого компьютера данное изображение. Подскажите в каком формате его передавать??
Очень бы не помешал пример(кусочек кода).
И заодно скажите где почитать.
← →
Barmutik (2002-03-20 12:11) [1]Люди !
Неужели никто не знает ?
Подскажите где почитать !
Там есть IPicture и IStdPicture .. Может это то что нужно ?
Где можно прочитать про это ?
← →
Dimka Maslov (2002-03-20 17:39) [2]Можно прочитать файл в буфер, а потом по кускам передавать.
← →
erik (2002-03-20 20:18) [3]А на фига это надо? Наверника опять изврат. Но сделать несложно. Береш любой компонент лучше хороший(VARIAN ASYNC32) уменя есть. И передаеш по протоколу ZModem. У них подержка есть для этого. Или сам сделай сначала 4 байта длина файла изображени после пихай в буфер кусками и так до конца файла. Надеюсь, что такое TStream знаеш.
← →
erik (2002-03-20 20:19) [4]А может ты имел ввиду com сервер?! Тогда это в другой ветке.
← →
Doom (2002-03-21 06:53) [5]Попробуй компоненты на этом сайте
DirectPort v3.0 SFlash2000
Компонент прямого доступа к портам (только D6)
Полная совместимость с WinNT, Win2000, WinXP
и
// TComPort component ver. 2.00 for Delphi 2-6, Win9x, NT
// written by Dejan Crnila, 1998 - 1999
// email: dejancrn@yahoo.com
Адаптированный под D6 компонент для COM-порта.
Сихронный и асинхронный обмен, события ...
← →
cdaDMITRIY (2002-03-21 10:09) [6]COM-порта ??? or COM texnology ???
← →
cdaDmitriy (2002-03-21 10:10) [7]Там есть IPicture и IStdPicture .. The From COM texnology
← →
Бармалей (2002-03-21 10:26) [8]Я передаю Bitmap в виде OleVariant. Делаю так:
{=====================================================}
function SaveBitmapToVariant(Bitmap: TBitmap): OleVariant;
// Сохранение изображения из TBitmap в OleVariant
var
Stream: TMemoryStream;
Buffer: OleVariant;
PBuffer: pointer;
begin
Result:=varEmpty;
Stream:=TMemoryStream.Create;
Bitmap.SaveToStream(Stream);
Buffer:=VarArrayCreate([0,Stream.Size-1],VarByte);
PBuffer:=VarArrayLock(Buffer);
try
Stream.Position:=0;
Stream.Read(PBuffer^,Stream.Size);
finally
VarArrayUnlock(Buffer);
Stream.Free;
end;
Result:=Buffer;
end;
{=====================================================}
{=====================================================}
procedure LoadBitmapFromVariant(Bitmap: TBitmap; Buffer: OleVariant);
// Загрузка изображения в TBitmap из OleVariant
var
Stream: TMemoryStream;
PBuffer: pointer;
begin
if not VarIsArray(Buffer) then Exit;
Stream:=TMemoryStream.Create;
PBuffer:=VarArrayLock(Buffer);
try
Stream.Write(PBuffer^,(VarArrayHighBound(Buffer,1)-VarArrayLowBound(Buffer,1)+1));
finally
VarArrayUnlock(Buffer);
end;
Stream.Position:=0;
Bitmap.LoadFromStream(Stream);
Stream.Free;
end;
{=====================================================}
← →
RedWood (2002-03-21 10:28) [9]Всем привет !
может как вариантовский массив попробовать ?
работать точно будет, но наверное есть способы попроще.
что скажет all ?
← →
Doom (2002-03-21 10:30) [10]2 cdaDMITRIY
> COM-порта ??? or COM texnology ???
Это ко мне вопрос?
> The From COM texnology
Что вы хотели этим сказать?
← →
Barmutik (2002-03-21 10:32) [11]Я имел ввиду передачу изображения с одного комппьютера на
другой от COM-сервера на одном компьютере к COM-клиенту на
другом.
COM в смысле Common Object Model а не COM-порт.
Если не в этой ветке то в какую мне идти ?
Это по-моему имеет прямое отношение к слову "Система".
То erik :
>А на фига это надо? Наверника опять изврат.
Ответ на вопрос на фига это надо я не спрашивал.
А насчёт изврата это как уж для кого.
← →
cdaDmitriy (2002-03-21 10:38) [12]решение с IPicture и IStdPicture .. у меня не получилось
ЕСЛИ КТО ЗНАЕТ РАСКАЖИТЕ
у меня ВАРИАНТ КАК У
"Бармалей (21.03.02 10:26) Я передаю Bitmap в виде OleVariant"
← →
Barmutik (2002-03-21 11:50) [13]Огромное спасибо Бармалей !
Если кто знает насчёт IPiture и IStdPicture то тоже
будет интеерсно узнать.
← →
Barmutik (2002-03-21 18:36) [14]Попробовал способ Бармалея. Всё работает супер !
Только одно но.. если я отправляю картинку более чем 100 на 100
пикселов .. для примера 110 на 110 то появляется некоторый тормоз у мышки. Т.е в тот самый момент когда происходит отправка мышка как бы немного замирает и потом всё нормально.
Особеено заметно если в этот момент ведёш мышью по экрану.
Может это связано с размером буфера ?
Может есть совет как это побороть ??
Помеха в принципе не большая но всё таки....
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c