Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Transparenter Frame?! (https://www.delphipraxis.net/130350-transparenter-frame.html)

Flodding 7. Mär 2009 09:26

Re: Transparenter Frame?!
 
wie tu ich das?

Uwe Raabe 8. Mär 2009 17:21

Re: Transparenter Frame?!
 
Zitat:

Zitat von Flodding
wie tu ich das?

Überschreibe WMEraseBkgnd:

Delphi-Quellcode:
...
    procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
...


procedure TFrame3.WMEraseBkgnd(var Message: TWMEraseBkgnd);
var
  SaveIndex: Integer;
  P: TPoint;
begin
  SaveIndex := SaveDC( Message.DC );
  try
    GetViewportOrgEx( Message.DC, P );

    SetViewportOrgEx( Message.DC, P.X - Left, P.Y - Top, nil );
    IntersectClipRect( Message.DC, 0, 0, Parent.ClientWidth, Parent.ClientHeight );

    Parent.Perform( wm_EraseBkgnd, Message.DC, 0 );
    Parent.Perform( wm_Paint, Message.DC, 0 );
  finally
    RestoreDC( DC, SaveIndex );
  end;

  if not ( Parent is TCustomControl ) and not ( Parent is TCustomForm ) then begin
    Control.Parent.Invalidate;
  end;

  Message.Result := 1;
end;
Deine anderen Massnahmen sind damit allerdings bestenfalls unnötig, wahrscheinlich sogar kontraproduktiv.

Den Code habe ich mal eben aus einem bestehenden Projekt "herausseziert". Hoffe es funktioniert so auch...

Flodding 9. Mär 2009 16:20

Re: Transparenter Frame?!
 
undefinierter Bezeichner "DC"
undefinierter Bezeichner "Control"

habs zum laufen bekommen, jedoch verschiebt sich der hintergrund immer mit wenn ich die scrollbars des frames verschiebe... der hintergrund sollte schon fest stehen bleiben^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz