Конференция "Media" » Снимок частично видимой формы [D7, WinXP]
 
  • Melphin (28.08.08 15:46) [0]
    Приветствую мастера, помогите неоченьмастеру с такой задачкой... Как мне получить снимок всей формы(с контролами) если видно не всю форму (У формы Scrollbar'ы или форма частично за пределами экрана).
    это (листинг ниже) не памагает =(
    ------------------------
    Var
    WinDC: HDC;
    ARect   : TRect;
    WD: HWND;
    b: TBitmap;
    begin
    try
      WD:=Form1.Handle;
       b := TBitmap.Create;
       windows.GetClientRect(WD,arect);
       with b, ARect do
       begin
           Width := ARect.Right - ARect.Left;
           Height := ARect.Bottom - ARect.Top;
           If (Width=0) or (Height=0) then
           Begin
               MessageDlg('Размер области формы равен нулю',
               mtWarning,[mbOk],0);  
               Exit;  
           End;
           WinDC:=GetWindowDC(Wd);
           ShowWindow(Wd, SW_SHOW);
           BringWindowToTop(WD);
           try
               BitBlt( Canvas.Handle, 0, 0, Width, Height, WinDC, 0, 0, SRCCOPY);
           finally
           end;
       end;
       b.SaveToFile('d:\Дайже мне уже всю форму.bmp');
       b.Destroy;
    except
    on e: exception do
         ShowError(e); //не обращайте на него внимания =) эт маё
    end;
    ------------------------
    Я знаю есть варианты решения этой проблемы... ток чёт не пака не дагадываюсь о них =) мож вы паможите???
 
Конференция "Media" » Снимок частично видимой формы [D7, WinXP]
Есть новые Нет новых   [133926   +461][b:0][p:0]