Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2010, 20:53   #1
leonw
Пользователь
 
Регистрация: 08.08.2008
Сообщений: 39
Вопрос скриншот рабочего стола, с обновлением

Здравствуйте можете помочь? делаю скрин рабочего стола.
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
bmp: TBitmap;
DC: HDC;
Jpg: TJpegImage;
Begin
Try
bmp:= TBitmap.Create;
Jpg:= 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);
Jpg.Assign(Bmp);
Jpg.SaveToFile('test.jpg');
image1.Picture.Assign(Jpg);
ReleaseDC(0, DC);
finally
Bmp.Free;
jpg.Free;
form1.Image1.Picture:=nil;  не знаю куда ее поставить????
End;
end;
все работает но только есть глюк: первый снимак делает хорошо, а остальные начинают уменьшатся. если ставлю nil то вообще ничго не появляется. как делать обновление???? Спасибо!
leonw вне форума Ответить с цитированием
Старый 14.01.2010, 21:17   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Зачем же убивать картинку ? Почитайте тут (видимо, с поиском у вас затруднения ?)
http://www.programmersforum.ru/showthread.php?t=20284
mihali4 вне форума Ответить с цитированием
Старый 15.01.2010, 04:10   #3
leonw
Пользователь
 
Регистрация: 08.08.2008
Сообщений: 39
Восклицание не помогло

Да с поиском у меня плохо признаю
Код:
InValidateRect(bmp.Handle,nil,true);
InValidateRect(Canvas.Handle,nil,true);
Canvas.FillRect(Canvas.ClipRect);
PatBlt(bmp.Canvas.Handle, 0, 0,Screen.Width, Screen.Width, WHITENESS);
перепробывал: но или вылитает ошибка или ничего не проиходит.
или нарисовать просто прямоугольник:
Код:
Canvas.Brush.Color := ClWhite;
Canvas.FillRect(Canvas.ClipRect);
дак это не хорошо получится
остановился я над этим
Код:
PatBlt(Form1.Canvas.Handle, 0, 0, Form1.ClientWidth, Form1.ClientHeight, WHITENESS);
как считаете можно таким образом или лучше другой?

Последний раз редактировалось leonw; 15.01.2010 в 15:28.
leonw вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Менеджер рабочего стола Kreadlling Общие вопросы C/C++ 0 08.10.2009 19:35
Блокировка рабочего стола dani92 Общие вопросы Delphi 52 29.09.2009 18:17
Разрешение рабочего стола. SanekIrk Общие вопросы Delphi 2 10.07.2008 18:01
Фон рабочего стола. Rahim1993 Общие вопросы Delphi 11 17.02.2008 21:40
скриншоты рабочего стола Alar Общие вопросы Delphi 0 29.10.2006 10:59