Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

помогите оптимизировать код [D6, WinXP]


Dennis S ©   (2005-05-03 11:37:00) 

комп 2,4GHz - но при выполнении кода на секунду притормаживает.
При движении мыши, курсор замирает на секунду на месте...
Как этого избежать? Может с кодом что-то не так?
Копирует экран в ВМР, потом конвертит в JPEG и сохраняет...
Что можно сделать, чтобы процесс работы программы не был так заметен??
=======================

procedure TForm1.T1Timer(Sender: TObject);
var
bmp: TBitmap;
jp: TJpegImage;
DC: HDC;
S,S1,Sx: String;
D: String;
begin
       T1.Interval := StrToInt(mmTIME.Lines[1]);
       if T1.Interval <> 1000 then begin
       {---//---}
       end;
       bmp := TBitmap.Create;
       jp := TJpegImage.Create;
       bmp.Height := Screen.Height;
       bmp.Width := Screen.Width;
       DC:=GetDC(0);
       BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width,
         Screen.Height,DC, 0, 0, SRCCOPY);
       jp.Assign(bmp);
       jp.CompressionQuality := 20;
       jp.Compress;
       S := mmTIME.Lines[3];
       S1 := mmTIME.Lines[5];
       Sx := mmTIME.Lines[7];
       if S1 = '1' then begin
         x := x + 1;
         D := DateToStr(Date);
         Sx := Sx + D +'_screen_'+ IntToStr(x) +'_.jpg';
         jp.SaveToFile(Sx);
       end;
       jp.SaveToFile(S);

       ReleaseDC(0, DC);
       bmp.Free;
       jp.Free;
end;


@!!ex   (2005-05-03 12:34:00) [1]

ДИНАМИЧЕСКОЕ ВЫДЕЛЕНИЕ ПАМЯТИ ОДНА ИЗ САМЫХ МЕДЛЕННЫХ ОПЕРАЦИЙ!!!
Создавай объекты ОДИН раз! Будет в разы быстрее.


Наверх

Титульная страница Поиск, карта сайта Написать письмо