![]() |
Schwarzer Rand beim Zeichnen
Liste der Anhänge anzeigen (Anzahl: 1)
Moin,
Ich bin's wieder mit meinem Vista-Projekt (zur Erleichterung der Arbeit mit Vista und < D2007). Also nochmal kurz ein Rückblick: Ich hooke die Paint-Methode von bestimmten WinControls und geben Ihnen folgenden Code:
Delphi-Quellcode:
Das funktioniert auch super. In der tat funktioniert es sogar zu gut, denn nun haben diese WinControls schwarze Ränder (siehe Anhang).
var
DC, MemDC: HDC; PS: TPaintStruct; PaintBuffer: HPAINTBUFFER; begin if ((Message.Msg = WM_PAINT) and FOwner.DoubleBuffered and CompositionServices.CompositionEnabled) then begin begin DC := BeginPaint(FOwner.Handle, PS); try PaintBuffer := BeginBufferedPaint(DC, PS.rcPaint, BPBF_TOPDOWNDIB, nil, MemDC); FOwner.Perform(WM_ERASEBKGND, MemDC, MemDC); FOwner.Perform(WM_PRINTCLIENT, MemDC, PRF_CLIENT); if not Self is TCustomForm then begin BufferedPaintSetAlpha(PaintBuffer, @PS.rcPaint, 255); end; EndBufferedPaint(PaintBuffer, True); finally EndPaint(FOwner.Handle, PS); end; end end else begin FOldWindowProc(Message); end; Hat jemand den Ansatz einer Idee, wie ich das verhindern kann? Danke & Grüße, Max |
Re: Schwarzer Rand beim Zeichnen
Moin,
Ach kommt schon ;) So weit daneben kann ich doch gar nicht liegen. Hat keiner eine Idee? Irgendwie muss es doch gehen? Daniel zeigt, soweit ich mich erinnern kann, in seinem Video eine korrekte Darstellung per DoubleBuffered := True, also muss ich die richtige Methode gehooked haben und auch kann mein Code gar nicht so weit daneben liegen, denn ich bin ja fast beim richtigen Ergebnis. Wo liegt mein Fehler? Was habe ich vergessen? Danke & Grüße, Max |
Re: Schwarzer Rand beim Zeichnen
*push* :pale:
|
Re: Schwarzer Rand beim Zeichnen
für den fall, dass dein problem nach nem halben jahr immer noch besteht: setzt mal
Delphi-Quellcode:
Damit ist dein Problem zwar nicht prinzipiell gelöst, aber der Rand ist jetzt weiß^^ Ich hoffe, das ist näher an der Lösung. Wahrscheinlich braucht man aber GDI+...
form1.doublebuffered := true
beim speedbutton gibt's das Problem übrigens nicht |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz