AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Syles in eigener Komponente verwenden.

Ein Thema von bernau · begonnen am 14. Dez 2016 · letzter Beitrag vom 14. Dez 2016
Antwort Antwort
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#1

Syles in eigener Komponente verwenden.

  Alt 14. Dez 2016, 08:40
Ich habe einige visuelle Komponenten selber Programmiert. Diese sind nachfahren von TGraphicControl.

Das Problem ist nun, dass bei Verwendung von Styles, diese Komponenten nicht mitgestyled werden. (Bei einem "schwarzen" Layout, bleiben meine Komponenten "weis")

Wie kann ich beim "neu zeichnen" herausfinden welche Hintergrundfarbe ein gestyltes z.B. TEdit hat. Ich könnte in der Komponente natürlich "versteckt" ein TEdit erzeugen und dort die Farbe auslesen. Das ist aber wohl nicht der Sinn der Sache.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
441 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Syles in eigener Komponente verwenden.

  Alt 14. Dez 2016, 10:13
Wenn es nur um Farben geht mache ich das in etwa so:

Delphi-Quellcode:
  { Set the color of label text }
  if (StyleServices.Enabled) And (seFont In StyleElements) then
  begin
    if not Enabled then
      Canvas.Font.Color := StyleServices.GetStyleFontColor(sfWindowTextDisabled)
    else
      Canvas.Font.Color := StyleServices.GetStyleFontColor(sfWindowTextNormal);
  end
  else
  begin
    if not Enabled then
      Canvas.Font.Color := clGrayText
    else
      Canvas.Font.Color := iColr;
  end;

  Canvas.TextOut(xo+CDO, yo+CDO, Text);
Für alles andere bieten die StyleServices natürlich auch Funktionen und Konstanten (zu finden in Vcl.Themes.pas).
Whookie

Software isn't released ... it is allowed to escape!

Geändert von Whookie (14. Dez 2016 um 10:19 Uhr) Grund: Alle nötigen Funktionen und Konstanten sind in der Vcl.Themes.pas zu finden
  Mit Zitat antworten Zitat
Antwort Antwort


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:30 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