Einzelnen Beitrag anzeigen

Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#7

Re: Durchsichtiges Fenster (nicht Alpha Blend)

  Alt 7. Nov 2003, 19:14
Ich habe mich nochmal im Forum umgesehen und habe eins gefunden, was garnicht so schwer scheint:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 X, Y: Integer;
begin
    Canvas.Handle := GetWindowDC(0);
      try
        X := Trunc((Form1.Width-Form1.ClientWidth) div 2);
        Y := Trunc((Form1.Height-Form1.ClientWidth) -X);
        Image1.Picture.Bitmap.Width := Form1.ClientWidth;
        Image1.Picture.Bitmap.Height:= Form1.ClientHeight;
        Image1.Picture.Bitmap.PixelFormat := pfDevice;
        BitBlt(Image1.Picture.Bitmap.Canvas.Handle, -Form1.Left+X, -Form1.Top+Y, Pred(Form1.ClientWidth), Pred(
            Form1.ClientHeight), Canvas.Handle, Form1.Left,
            Form1.Top, Image1.Picture.Bitmap.Canvas.CopyMode);
      finally
        ReleaseDC(0, Canvas.Handle);
      end;
end;
Das Problem ist, das ich in "BitBlt" nicht die richtigen Zahlen eingesetzt habe...
Ich möchte nur den in mein TImage "übernehmen", den die Form bedeckt.

Könnt ihr mir helfen?
  Mit Zitat antworten Zitat