Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.13;
Скачать: CL | DM;

Вниз

затрата памяти   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.049 c
3-1172472615
Novice
2007-02-26 09:50
2007.05.13
Две таблицы в одной сетке (Grid)


15-1175588124
ПЛОВ
2007-04-03 12:15
2007.05.13
Еще один полезный "прибор" от Лебедева))


2-1176895225
Ксандр
2007-04-18 15:20
2007.05.13
хеш функция


3-1172343764
DmitrichJ
2007-02-24 22:02
2007.05.13
InterBase-Generator-Trigger. Как узнать сгенерированный номер?


2-1177437833
Lamer666
2007-04-24 22:03
2007.05.13
ADOQuery