Форум: "Начинающим";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];
Вниззатрата памяти Найти похожие ветки
← →
Leonid Troyanovsky © (2007-04-18 20:26) [40]
> Romm © (18.04.07 20:20) [38]
> перевидите на русский, люди добрые.
Используй шаг (можно бегом) для продолжения.
Путь длиной в 5000 миль начинается с первого шага.
Да достигнем мы все Дао.
--
Regards, LVT.
← →
{RASkov} (2007-04-18 20:34) [41]> [39] Romm © (18.04.07 20:25)
Ужос....
Ты нифика не понял ничего... :)
Например:procedure TMainForm.FreeMyDesk;
begin
MyDesk.Bitmap.Free;
MyDesk.IsCreate:=False;
Str.Free;
end;
Затем, зачем вот это:procedure TMainForm.Timer1Timer(Sender: TObject);
.........
ReleaseDC(GetDeskTopWindow, MyDesk.DeskTopDC);
.........
> Size:=Str.Size;//на второй раз тут ошибка (выше написал)
Сам то думал - почему?
Я сильно не вникал в твой последний код.... См [35], [37].
← →
Romm © (2007-04-18 20:36) [42]
> Затем
не знаю :)
[35]
[37]
попробую на простом примерчике..
← →
{RASkov} (2007-04-18 20:38) [43]> procedure TMainForm.Timer1Timer(Sender: TObject);
> .........
> ReleaseDC(GetDeskTopWindow, MyDesk.DeskTopDC);
Перенеси в
procedure TMainForm.FreeMyDesk;
begin
ReleaseDC(GetDeskTopWindow, MyDesk.DeskTopDC);
MyDesk.Bitmap.Free;
MyDesk.IsCreate:=False;
Str.Free; // А это или убери отсюда или в рекорд добавь, иначе както не связанно...
end;
← →
{RASkov} (2007-04-18 20:38) [44]> [42] Romm © (18.04.07 20:36)
> не знаю :)
А кто должен знать?
← →
Romm © (2007-04-18 20:42) [45]
> А кто должен знать?
Виноват! :)
Млин, но это как-то глупо, что ошибка происходит при присваивании...
← →
{RASkov} (2007-04-18 20:46) [46]> я сомневаюсь, что с нуля напишу по другому...
А я уже сомневаюсь, что ты вообще что-то напишешь....сорри.
> Str.Write(MyDesk.Bitmap,sizeof(MyDesk.Bitmap));
sizeof(MyDesk.Bitmap) - всегда 4 байта
← →
Romm © (2007-04-18 20:50) [47]
> сорри
да ладно, я уже привык :)
с детства рисунки/картинки не любил :))
кстати, напомни как отследить размер/значение файла/переменной во время исполнения программы, вроде бы F7
?
← →
{RASkov} (2007-04-18 20:56) [48]try
TBmpFS:=TMemoryStream.Create;
MyDesk.Bitmap.SaveToStream(TBmpFS);
Size:=TBmpFS.Size;
TBmpFS.Position:=0;
.....
finally TBmpFS.Free; end;
> кстати, напомни как отследить размер/значение файла/переменной
> во время исполнения программы, вроде бы F7
Тебе еще и работу с IDE рассказать, нафик ты вообще занялся программированием?
← →
Leonid Troyanovsky © (2007-04-18 21:00) [49]
> Romm © (18.04.07 20:50) [47]
> с детства рисунки/картинки не любил :))
Я с детства не любил овал,
Я с детства - угол рисовал.
--
Regards, LVT.
← →
{RASkov} (2007-04-18 21:11) [50]> будь я ОС... ну скажем 1500 Кб максимум
А ты ее после запуска сверни... и посмотри в диспетчер и радуйся....
> [49] Leonid Troyanovsky © (18.04.07 21:00)
:)))
← →
Romm © (2007-04-18 21:12) [51]
> Leonid Troyanovsky © (18.04.07 21:00) [49]
:)
> Тебе еще и работу с IDE рассказать, нафик ты вообще занялся
> программированием?
сложно напомнить?! Ок, я не настаиваю, что ж так грубо?.. :)
только что написал простую прогу передающую *.jpeg , картинку короче. И что вы думаете - работает. Мда, придется с нуля переделывать :)
← →
Romm © (2007-04-18 21:15) [52]
> А ты ее после запуска сверни... и посмотри в диспетчер и
> радуйся....
> Только вот на это ожидание затрачивается аж 3Мб памяти!
> Чем память измеряешь?
> А то ведь диспетчер показывает все, что твоя программа подгрузила
> (например, системные DLL, даже если не только она и не полностью).
>
> им и измеряю :))
без комментариев :)
← →
{RASkov} (2007-04-18 21:22) [53]> кстати, напомни как отследить размер/значение файла/переменной
> во время исполнения программы,
Ctrl+F7 ?
← →
Romm © (2007-04-18 21:23) [54]
> Ctrl+F7 ?
да да да, вот я про Ctrl забыл :))
← →
{RASkov} (2007-04-18 21:25) [55]> [52] Romm © (18.04.07 21:15)
> без комментариев :)
Ты вот это вот убери:procedure TMainForm.FormPaint(Sender: TObject);
begin
ShowWindow(Application.Handle,SW_HIDE);
ShowWindow(Handle,SW_HIDE);
end;
И проделай [50] :) Не верю, что после сворачивания твоего "сервера", остается 3Mb.... ;)
← →
Romm © (2007-04-18 21:58) [56]
> RASkov} (18.04.07 21:25) [55]
нифига, все так же.
сервер так и не стал функционировать :(
всем спасибо за помощь, ждите завтра с новыми вопросами :)
Вечный чайник, Romm :)
← →
{RASkov} (2007-04-18 22:46) [57]> ждите завтра с новыми вопросами :)
нафик, нафик... :)
← →
Romm © (2007-04-19 07:52) [58]Вот и "завтро" наступило :))
Привет всем Мастерам! Может это странно, но мой супер сервер начал подавать признаки жизни :)
Пока код очень некрасивый, глупый и неправильный, зато работает :)
Посмотрите в общем:private
stream:TFileStream;procedure TMainForm.vidio;
var
size:int64;
DeskTopDC: HDc;
DeskTopCanvas: TCanvas;
DeskTopRect: TRect;
Bitmap:TBitmap;
JPEG:TJPEGImage;
begin
DeskTopDC := GetWindowDC(GetDeskTopWindow);
DeskTopCanvas := TCanvas.Create;
DeskTopCanvas.Handle := DeskTopDC;
DeskTopRect := Rect(0, 0, Screen.Width, Screen.Height);
Bitmap:=TBitmap.Create;
Bitmap.Width:=Screen.Width;
Bitmap.Height:=Screen.Height;
Bitmap.Canvas.CopyRect(DeskTopRect, DeskTopCanvas, DeskTopRect);
jpeg:=TJpegImage.Create;
jpeg.Assign(Bitmap);
jpeg.SaveToFile("screen.jpg");
ReleaseDC(GetDeskTopWindow, DeskTopDC);
Stream:=TFileStream.Create("screen.jpg",fmOpenRead);
Size := Stream.Size;
ServerSocket1.Socket.Connections[0].SendBuf(Size, SizeOf(Size));
ServerSocket1.Socket.Connections[0].SendStream(Stream);
Bitmap.Free;
jpeg.Free;
end;
пришлось делать так, потому что когда я пытался сохранить скрин в потокjpeg.SateToStream(stream)
,
то потом происходила ошибка на этой строчкеSize:=Stream.Size;
впринципе работает, и для начала нормально, но вот когда я принял поток -> загрузил в картинку и потом отображаю ее на TImage, то происходит сильное мерцание (еще бы *jpg 1024x768) можно как-то сгладить мерцание или вообще избавиться от него?!
PS за секунду передается 3 снимка :)
← →
Romm © (2007-04-19 10:01) [59]
> пришлось делать так, потому что когда я пытался сохранить
> скрин в поток jpeg.SateToStream(stream),
> то потом происходила ошибка на этой строчкеSize:=Stream.
> Size;
чуш!!!!
Вчера пол ночи искал ошибку, а нету ошибки!
Просто передSize:=Stream.Size;
нужно было написатьStream.Position:=0;
:)
> нафик ты вообще занялся программированием
вот ради этого и занялся, чтобы искать пол ночи ошибки, а найдя их утром думать: "вот я умный какой..." :)))
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.046 c