![]() |
![]() ![]() ![]() ![]() |
|
Как отловить CLX формуDelphi , ОС и Железо , KylixАвтор: http://www.swissdelphicenter.ch
{
Capturing a CLX form is easy, once you know.
It took me a little time to find out, so I'm giving the knowledge to help others :
}
type
TFormCapturable = class(TForm)
public
procedure PrintOne;
end;
var
FormCapturable: TFormCapturable;
implementation
uses
Qt;
procedure TFormCapturable.PrintOne;
var
aBitmap: TBitmap;
aWinHandle: QWidgetH;
aWinId: Cardinal;
x, y, w, h: integer;
begin
// create a new bitmap to hold the captured screen
aBitMap := TBitmap.Create;
try
// get a handle on the desktop
aWinHandle := QApplication_desktop;
// get the Id from the desktop handle
aWinId := QWidget_winId(aWinHandle);
// get the position and size of the windows
x := Self.Left;
y := Self.Top;
w := Self.Width;
h := Self.Height;
// capture the window into the bitmap's pixmap
QPixmap_grabWindow(aBitmap.Handle, aWinId, x, y, w, h);
// save the bitmap
aBitMap.SaveToFile('c:\temp\test.bmp');
finally
// don't forget to kill the bitmap after use.
FreeAndNil(aBitMap);
end;
end;
Программный код, написанный на языке Delphi, предназначен для захвата формы CLX (Control Language eXtended) как изображения. Форма затем сохраняется в файле bitmap с именем 'test.bmp' в директории 'C:\temp\'. Следующий шаг за шагом:
Альтернативное решение для захвата снимка: В этом коде создается новый bitmap, копируется всякий экран в него с помощью Обратите внимание, что CLX - это библиотека для работы с графическими элементами в Delphi, и она не имеет отношения к Qt. В коде, который вы предоставили, есть методы Отловить CLX-форму можно с помощью создания бита карты, захвата ее handle и последующего заполнения бит картой при помощи функции QPixmap_grabWindow. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||