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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2013, 15:25   #1
Winexcel
Форумчанин
 
Регистрация: 26.08.2013
Сообщений: 187
По умолчанию CopyRect, скопировать канву Desktop на Form

Собственно игрался со свойством CopyRect, и вышло как-то так, сам не пойму , что вместе с с Form2 которая копировалась на Form1 копировалось ещё и половину рабочего стола, собственно стало интересно, как скопировать рабочий стол на форму, копирование юзал так:

Код:
var
D,S:TRECT;
begin
S:=Rect(0,0,Form2.Width,Form2.Height);
D:=Rect(10,10,Form2.Width,Form2.Height);
Canvas.CopyRect(D,Form2.canvas,S);
Winexcel вне форума Ответить с цитированием
Старый 19.11.2013, 15:42   #2
Winexcel
Форумчанин
 
Регистрация: 26.08.2013
Сообщений: 187
По умолчанию

Если растянуть форму на весь экран и сделать так:
Код:
var
D,S:TRECT;
begin
repaint;
S:=Rect(0,0,screen.Width,screen.Height);
D:=Rect(0,0,Form1.Width,Form1.Height);
Canvas.CopyRect(D,form1.Canvas,S);
То будет работать, но опять же, сам рабочий стол не видно, а лишь только нижний бар.
Winexcel вне форума Ответить с цитированием
Старый 19.11.2013, 15:51   #3
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  DC : HDC;
begin
DC := GetDC (GetDesktopWindow) ;
   try
    Form1.Width := GetDeviceCaps (DC, HORZRES) ;
    Form1.Height := GetDeviceCaps (DC, VERTRES) ;
    BitBlt(Form1.Canvas.Handle,
           0,
           0,
           Form1.Width,
           Form1.Height,
           DC,
           0,
           0,
           SRCCOPY) ;
   finally
    ReleaseDC (GetDesktopWindow, DC) ;
   end;


end;
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 19.11.2013, 16:17   #4
Winexcel
Форумчанин
 
Регистрация: 26.08.2013
Сообщений: 187
По умолчанию

Задам вопрос в этой же теме, почему CopyRect создаёт такой эффект?

То есть сначала копируется Form2 на Form1 а затем уже немного рабочего стола внизу.
Код:
var
D,S:TRECT;
begin
D:=RECT(0,0,Form2.Width,Form2.Height);
S:=RECT(0,0,Form2.Width,Form2.Height);
Form1.Canvas.CopyRect(D,Form2.Canvas,S);
Winexcel вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести на канву раскладку клавиатуры phphel Общие вопросы Delphi 7 06.04.2011 13:02
Можно ли подключить к web form windows form? Manonia Windows Forms 0 20.10.2010 05:28
считывание bmp из файла на канву Mayday_007 Мультимедиа в Delphi 0 19.04.2009 20:09
Передать Канву Pedro Работа с сетью в Delphi 7 28.04.2008 17:38