Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
14-55263
Дремучий
2002-05-11 23:05
2002.06.17
Почувствуй себя МАСТЕРОМ!


3-55014
VICTOR_
2002-05-23 16:21
2002.06.17
Помогите настроить BDE!


1-55169
Karlush
2002-06-04 11:27
2002.06.17
Окна диалога


8-55219
Maxus
2002-01-08 16:45
2002.06.17
проигрывать два Wav файла одновременно


1-55058
indigo
2002-06-05 17:09
2002.06.17
мышь





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский