Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];

Вниз

TStream...получение картинки...   Найти похожие ветки 

 
avk   (2002-02-15 22:51) [0]

значить вроде с отправкой разобрался:

procedure TForm1.Button1Click(Sender: TObject);
var bmp:TBitMap;
srcfile:TStream;
begin
bmp:=TBitMap.Create;
try
bmp.Height:=Screen.Height;
bmp.Width:=Screen.Width;
BitBlt(bmp.Canvas.Handle,0,0,bmp.Width,bmp.Height,GetDC(GetDesktopWindow),0,0,SRCCOPY);
srcfile:=TStream.Create;
bmp.SaveToStream(srcfile);
ServerSocket1.Socket.Connections[0].SendStream(srcfile);
srcfile.Free;
finally
bmp.Free;
end;


а вот как получить клиенту эту картинку?
что-то пытался, но не получаеться...


procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var bmp:TBitMap;
srcfile:TStream;
begin
srcfile:=TStream.Create;
{???? что здесь надо писать?}
bmp:=TBitMap.Create;
try
bmp.LoadFromStream(srcfile);
bmp.SaveToFile(C:\1.bmp);
finally
bmp.Free;
end;


 
Ghost.   (2002-02-16 09:08) [1]

Там не все ак просто надо еще и размер мерить, тебе, что лень в фак заглянуть?


 
avk   (2002-02-16 21:51) [2]

вроде написал, должно работать...но ничего не работает:(
сервер:

begin
bmp:=TBitmap.Create;
try
bmp.Height:=Screen.Height;
bmp.Width:=Screen.Width;
BitBlt(bmp.Canvas.Handle,0,0,bmp.Width,bmp.Height,GetDC(GetDesktopWindow),0,0,SRCCOPY);
MS:=TMemoryStream.Create;
try
bmp.SaveToStream(MS);
MS.Position:=0;
Socket.SendText(IntToStr(ms.Size)+#0);
Socket.SendStream(MS);
except
MS.Free;
end;
finally
bmp.Free;
end;
end;

вроде сервер посылает сообщение, а вот клиент принять не может
клиент:

Reciving:=false;
RT:=Socket.ReceiveText;
if GetScreen then
begin
if not Reciving then begin
SetLength(sl,StrLen(PChar(RT))+1);
StrLCopy(@sl[1],PChar(RT),Length(sl)-1);
DataSize:=StrToInt(sl);
Data:=TMemoryStream.Create;
Delete(RT,1,Length(sl));
Reciving:=true;
end;
try
Data.Write(RT[1],length(RT));
if Data.Size=DataSize then <--- вот здесь почему-то размеры не совпадают
begin
Data.Position:=0;
bmp:=TBitMap.Create;
try
bmp.LoadFromStream(Data);
bmp.SaveToFile("C:\screen.bmp");
finally
bmp.Free;
end;
Data.Free;
Reciving:=false;
end;
except
Data.Free;
end;
GetScreen:=False;
end;



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
1-94446
Sniffer
2002-04-13 22:25
2002.04.29
Системный таймер


3-94263
Rail
2002-04-07 16:05
2002.04.29
Как показать последнюю ошибу при работе с БД через BDE


1-94451
agrig
2002-04-15 20:23
2002.04.29
несколько колонок в QReport


3-94337
agrig
2002-04-09 21:55
2002.04.29
Помогите написать запрос с суммированием!


3-94278
Malyatko
2002-04-08 12:48
2002.04.29
Добавление в базу данных.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский