Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Capturar la pantalla con lazarus (https://www.clubdelphi.com/foros/showthread.php?t=35523)

jorge1987 13-09-2006 09:36:10

Capturar la pantalla con lazarus
 
Yo con delphi hacia algo como esto para capturar la pantalla:

Código Delphi [-]
procedure TForm1.BtnCapturarClick(Sender: TObject);
Var
  B : TBitmap;
Begin
  B := TBitmap.Create;
  B.Width := GetSystemMetrics(SM_CXSCREEN);    {Screen.Width}
  B.Height := GetSystemMetrics(SM_CYSCREEN);   {Screen.Height}
  BitBlt(B.Canvas.handle, 0, 0, B.Width, B.Height, GetDc(0), 0, 0, SRCCOPY);
  b.SaveToFile('ctemp.bmp');
  b.Free;
  Img.Picture.LoadFromFile('ctemp.bmp');
end;

Peeeeeeeeeeeero, como supongo que lazarus no te deja hacer llamadas al sistema, para poder hacer un cross plataform perfecto, como puedo hacer una captura de la pantalla, sin hacer llamadas al sistema?

Basicamente, como puedo reescrivir esto:
Código Delphi [-]
  B.Width := GetSystemMetrics(SM_CXSCREEN);    {Screen.Width}
  B.Height := GetSystemMetrics(SM_CYSCREEN);   {Screen.Height}
  BitBlt(B.Canvas.handle, 0, 0, B.Width, B.Height, GetDc(0), 0, 0, SRCCOPY);

Desde ya, gracias.

Saludos :D:D

PD: Si les interesa saver como quedo aquel capturador de pantalla que estaba haciendo con delphi, aqui tiene el link:
Chameleon Capturer

jachguate 13-09-2006 17:23:09

Un "cross platform perfecto" también puede ser aquel que compile sin problemas en ambas plataformas, pero utilice los recursos de cada una adecuadamente. Así, podes hacer una clase que se encargue de esta complejidad... o bien compilar condicionalmente:

Código Delphi [-]
{$ifdef mswindows}
  ElCodigoParaWindows;
{$else}
  {$ifdef linux}
    ElCodigoParaLinux;
  {$else}
    {$warn 'No hay código de captura para esta plataforma!'}
  {$endif}
{$endif}

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 04:28:42.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi