AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Aus Brush die Pinselfarbe ermitteln?

Ein Thema von DualCoreCpu · begonnen am 20. Okt 2015 · letzter Beitrag vom 20. Okt 2015
Antwort Antwort
DualCoreCpu
(Gast)

n/a Beiträge
 
#1

Aus Brush die Pinselfarbe ermitteln?

  Alt 20. Okt 2015, 09:24
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?
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
2.973 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Aus Brush die Pinselfarbe ermitteln?

  Alt 20. Okt 2015, 10:09
ich habe einen Quellcode aus dem Internet, den ich gerne weiter entwickeln möchte.
Ist dieser Quellcode geheim?

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;
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.197 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Aus Brush die Pinselfarbe ermitteln?

  Alt 20. Okt 2015, 10:31
Nach etwas googeln kam ich auf folgende API: GetObject
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;
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."

Geändert von Neutral General (20. Okt 2015 um 10:44 Uhr)
  Mit Zitat antworten Zitat
DualCoreCpu
(Gast)

n/a Beiträge
 
#4

AW: Aus Brush die Pinselfarbe ermitteln?

  Alt 20. Okt 2015, 12:51
Danke an alle! Funktioniert so wie ich es haben will. Beide Varianten funktionieren.

Geändert von DualCoreCpu (20. Okt 2015 um 12:54 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf