Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1176389994
GeLLeR
2007-04-12 18:59
2007.05.13
Как перевести код


15-1176195272
ocean
2007-04-10 12:54
2007.05.13
Visual C++ Express


15-1176540710
Cactus
2007-04-14 12:51
2007.05.13
java.chm


2-1177391484
allucard
2007-04-24 09:11
2007.05.13
Указатели


15-1176464219
NewUser2
2007-04-13 15:36
2007.05.13
Дрова





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