Einzelnen Beitrag anzeigen

Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Formen drehen oder zu spiegeln?

  Alt 3. Okt 2007, 16:15
Zitat von Code:
Eigentlich brauche ich von dem Fenster nur einen screenshott und das dann gespiegelt darstellen.
Hi,

so in etwa könnte man ein Formular spiegeln:
Delphi-Quellcode:
procedure Spiegeln(MyForm: TCustomForm);
var
  Bmp: TBitmap;
  c: TCanvas;
begin
  Windows.SetForegroundWindow(MyForm.Handle);
  c:= TCanvas.Create;
  c.Handle:= GetWindowDC(MyForm.Handle);
  Bmp:= TBitmap.Create;
  try
    Bmp.Width:= MyForm.BoundsRect.Right - MyForm.BoundsRect.Left;
    Bmp.Height:= MyForm.BoundsRect.Bottom- MyForm.BoundsRect.Top;
    StretchBlt(Bmp.canvas.handle, 0, 0, Bmp.Width,Bmp.Height, c.handle, Bmp.Width, 0, -Bmp.Width, Bmp.Height, SRCCOPY);
  finally
    Bmp.SaveToFile('C:\test.bmp');
    Bmp.Free;
    ReleaseDC(MyForm.Handle, c.handle);
    c.Free;
  end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Spiegeln(self);
end;
EDIT: CopyRect() rausgenommen da überflüssig
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat