![]() |
Aus Brush die Pinselfarbe ermitteln?
Hallo,
ich habe einen Quellcode aus dem Internet, den ich gerne weiter entwickeln möchte. Da gibt es eine Funktion, die einen Parameter vom Typ HBRUSH übergibt. Leider fehlt noch die Implementation dazu. Wie erhalte ich die Pinselfarbe aus diesem Parameter vom Typ HBrush. Es gibt eine API Funktion namens GetDCBrushColor(). Abe rdieser muss ein Parameter vom Typ HDC, dem Gerätekontext übergeben werden. Ich brauche aber eine Funktion, die stattdessen den Pinsel vom Typ HBRUSH erhält und dann die Farbe dieses Pinsels zurück gibt. Gibt es da eione fertige Funktion oder muss ich die selber schreiben? Wie könnte ich das machen, wenn selber schreiben? |
AW: Aus Brush die Pinselfarbe ermitteln?
Zitat:
Wie wäre es damit?
Delphi-Quellcode:
var
YourBrushHandle : HBRUSH; LBrush : TBrush; YourSearchedColor : TColor; begin YourSearchedColor := 0; LBrush := TBrush.Create; try LBrush.Handle := YourBrushHandle; YourSearchedColor := LBrush.Color; finally LBrush.Free; end; end; |
AW: Aus Brush die Pinselfarbe ermitteln?
Nach etwas googeln kam ich auf folgende API:
![]()
Delphi-Quellcode:
// Ist in meinem Delphi 7 was ich hier habe nicht definiert,
// in neueren Delphi-Versionen wahrscheinlich schon type TLogBrush = record lbStyle: Cardinal; lbColor: TColor; lbHatch: Cardinal; end; function GetBrushColor(ABrushHandle: HBRUSH): TColor; var brushInfo: TLogBrush; begin if GetObject(ABrushHandle, SizeOf(TLogBrush), @brushInfo) <> 0 then Result := brushInfo.lbColor else Result := clNone; end; |
AW: Aus Brush die Pinselfarbe ermitteln?
Danke an alle! Funktioniert so wie ich es haben will. Beide Varianten funktionieren.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:22 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