AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Fontcolor der Groupbox im Xp-Style

Ein Thema von cheatzs · begonnen am 16. Apr 2004 · letzter Beitrag vom 16. Apr 2004
Antwort Antwort
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#1

Fontcolor der Groupbox im Xp-Style

  Alt 16. Apr 2004, 14:30
Hi Leutz,
ich suche die Farbe die der Text einer Groupbox im Xp-Style hat. Die ist nämlich keine, die im Object-Inspector ausgewählt werden kann.
Ich hätte die Farbe ja auch zur Laufzeit von der Groupbox geholt, aber das geht auch nicht.

Hat jemmand ne Idee. Das PSDK sagt auch nicht viel dazu.

THX
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Benutzerbild von notam
notam

Registriert seit: 20. Dez 2003
50 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Fontcolor der Groupbox im Xp-Style

  Alt 16. Apr 2004, 15:07
Sind die Farben im Luna-Style nicht von Windows vorgegeben? Vielleicht kann man sie ja in Anzeigeeinstellungen->Darstellung->Erweitert einstellen. Aber ob das Delphi geht?
Manuel
Mein Name ist Hase, ich weiß von nichts.

Posting And You...
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#3

Re: Fontcolor der Groupbox im Xp-Style

  Alt 16. Apr 2004, 15:15
Also ich bin gerade mal die Erweiterten Einstellungen der Darstellungsoptionen durchgegangen. Da find ich die Farbe auch nicht.
Ich will sie ja nichtmal einstellen. Nur wissen (je nach XP-Style eben).
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Fontcolor der Groupbox im Xp-Style

  Alt 16. Apr 2004, 15:27
Dazu benötigst Du die Funktion GetThemeSysColor aus der Themes-DLL.
In D7 sollte die Funktion schon in Delphi vorhanden sein. Falls nicht mußt du entsprechende Themes-Komponenten dir besorgen (z.B. das Elpack bietet XP-Theming auch für altere Delphi-Versionen/Windows-Versionen an).
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#5

Re: Fontcolor der Groupbox im Xp-Style

  Alt 16. Apr 2004, 15:56
Ok, hab die Funktion jetzt gefunden.
Hab ein paar Farben durchprobiert (allerdings hab ich HTheme 0 gesetzt weil ich nich wusste wie man das bekommt).
Leider sind das nur die Farben, die der Objekt-Inspektor auch anzeigt.

Kann das an der 0 liegen für HTheme?, wie bekommt man das?
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Fontcolor der Groupbox im Xp-Style

  Alt 16. Apr 2004, 17:10
Wenn du Delphi7 hast, kannst du dir die Unit Themes anschauen. Dort gibts eine enstprechende Funktion. Aber ich bin daraus nicht schlau geworden (Ich habe ebenfalls das Problem, das du hast, jedoch mit einem PageControl)

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#7

Re: Fontcolor der Groupbox im Xp-Style

  Alt 16. Apr 2004, 17:58
Hi ALL,
also ich hab nochmal genauer nachgeschaut und bin auf Codeproject.com fündig geworden.
Das Programm, geschrieben in C++, kann die jeweiligen Theme-Elemente zeichnen und auch den Text ausgeben, in meiner gesuchten Farbe. Nur kapier ich nicht ganz wie.

Ich bin gerade hier:

Delphi-Quellcode:
 var pcolor : TColorREF;
     hhtheme : HTheme;
begin
  hhTheme:= OpenThemeData(Application.handle,'Button;GroupBox');
  if hhTheme = 0 then showMessage('0'); //Wenn HTheme nicht gefunden
  GetThemeColor(hhTheme, BP_GROUPBOX, GBS_NORMAL,color,pcolor);
  Configuration_General_Title_label.font.color := pcolor;
  CloseThemeData(hhTheme);
end;
Ich bin mir nur nicht sicher was ich bei OpenThemeDate als Parameter angeben soll. Ich finde nirgends eine Doku darüber. Das PSDK sagt nur:

Zitat:
hwnd = Handle of the window for which theme data is required.
pszClassList = Pointer to a string that contains a semicolon-separated list of classes.
GetThemeColor ist ziemlich gut beschrieben.
Wenn ich das Probgramm aber starte, ist die Farbe trotzdem Schwarz und nicht Blau.
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Fontcolor der Groupbox im Xp-Style

  Alt 16. Apr 2004, 18:17
[quote]Hab ein paar Farben durchprobiert (allerdings hab ich HTheme 0 gesetzt weil ich nich wusste wie man das bekommt). [cl]

Wie Du an die Themes-Handle kommst kann ich dir nicht sagen, da ich nur Controls einsetze (ElPack) welche einen integrierten Themes-Support haben und dort ist das Handle unter XP-Themes immer richtig gesetzt. Evtl. hat auch der Themes-Manager von Mike Lischke Code den du für deine Tests/ einen Einstieg verwenden könntest.
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#9

Re: Fontcolor der Groupbox im Xp-Style

  Alt 16. Apr 2004, 18:23
@mirage228

Die Themes Unit ist ein Teil von Mike Lischkes Theme Manager.
Die eigentliche Unit ist UxTheme.
Diese enthällt die Proceduren die wir brauchen. So z.B. GetThemeColor u.a.
Das Problem ist, diese Proceduren und Funktionen sind in ner Library. Und da weiß ich nicht wie ich dran kommen soll.
Und diese zu benutzen klappt irgendwie nicht.

@Bernhard Geyer

Hab deinen Text gerade noch gelesen. Der Theme Manager baut ja auf dem Problem auf, also nützt er mir auch nicht viel. (siehe oben)
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#10

Re: Fontcolor der Groupbox im Xp-Style

  Alt 16. Apr 2004, 18:51
Ich hab jetzt eine für mich akzeptable Lösung.
Unzwar ist mir beim Durchgehen des Programms auf das ich verwiesen hatte eines aufgefallen.
Die Schrift passend zum Start-Menu-Button konnte ebenfalls Problemlos mit der selben Procedure dargestellt werden. So eine Schrift kann man aber nicht in nem gewöhnlichem Label ausgeben. Also muss sie Windows selbst zeichnen.
Das heißt sozusagen es gibt keine Möglichkeit, soweit ich das jetzt mitbkommen habe, nur die Farbe rauszubekommen. Das einzigste was man kann ist die Prozedure zu benutzen um den Text zu zeichnen.

Und so hab ich es dann auch gemacht:

Delphi-Quellcode:
var hhtheme : HTheme;
begin
  hhTheme:= OpenThemeData(MainForm.Handle,'Button');
  DrawThemeText(hhTheme,label.Canvas.Handle,BP_GROUPBOX, GBS_NORMAL, 'Hallo', -1, DT_LEFT, 0,label.Canvas.ClipRect);
  CloseThemeData(hhTheme);
end;
Vielleicht hilft es euch!
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  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 10:31 Uhr.
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