![]() |
Eigenschaft CustomColor von TColordialog
Hallo,
ich habe nun das Problem der Farbpalette gelöst aber nun kommt ein weiteres. Meine Palette hat genau 16 Felder (genau die Anzahl an "CustomColors" die man in einem TColordialog festlegen kann). Ich möchte nun, dass die Farbpalette "Benutzerdefinierte Farben" in dem Tcolordialog, beim auf Aufrufen des Colordialogs auch die Farben des Farbpallettentools haben. Also habe ich folgendes vor "Colordialog1.Execute" geschrieben:
Delphi-Quellcode:
Leider wird das ganze auf diese Art und weise nicht richtig konvertiert. Zwar werden Farben in CustomColors geladen aber nicht die richtigen! Hat jemand eine Idee wie die richtige Konvertierung der Panelfarbe zum Hexvalue sein muss?
ColorDialog1.CustomColors[0]:='ColorA='+GetHexValue(Pcol1.Color); //PcolX ist ein Panel
ColorDialog1.CustomColors[1]:='ColorB='+GetHexValue(Pcol2.Color); //... ColorDialog1.CustomColors[15]:='ColorP='+GetHexValue(Pcol16.Color); //die Konvertierungsfunktion function GetHexValue(Color:TColor):String; var Hex:String; begin Hex:=IntToHex(Color,6); Result:=Hex[5]+Hex[6]+Hex[3]+Hex[4]+Hex[1]+Hex[2]; end; Aus der Delphi Hilfe: Zitat:
Kahpee |
Re: Eigenschaft CustomColor von TColordialog
Versuch mal:
ColorDialog.CustomColors[0]:= ColorToString(Panel.Color) |
Re: Eigenschaft CustomColor von TColordialog
Lösung gefunden:
Delphi-Quellcode:
function TColorToHex( Color : TColor ) : string;
begin Result := IntToHex( GetBValue( Color ), 2 )+ IntToHex( GetGValue( Color ), 2 )+ IntToHex( GetRValue( Color ), 2 ) ; end; ColorDialog1.CustomColors[0]:='ColorA='+Tcolortohex(Pcol1.Color); //... |
Re: Eigenschaft CustomColor von TColordialog
Die frage ist nun wie Konvertiere ich zurück?
|
Re: Eigenschaft CustomColor von TColordialog
bitte unterlasse das pushen innerhalb von 24 Stunden und verwende (das nächste mal) stattdessen http://www.delphipraxis.net/template.../icon_edit.gif über deinem letzten Beitrag. :)
|
Re: Eigenschaft CustomColor von TColordialog
Delphi-Quellcode:
- ColorToString liefert den Farbwert in HEX als 8 stelligen Wert
ColorDialog1.CustomColors.Insert(0,'ColorA=' + Copy(ColorToString(Panel1.Color),2,8));
- zum einfügen in den String brauchst du dann nur das "$" abschneiden
Delphi-Quellcode:
- zurück ist einfach
if ColorDialog.Execute then Panel.Color:= ColorDialog.Color;
|
Re: Eigenschaft CustomColor von TColordialog
Delphi-Quellcode:
Das gibt mir nur die ausgewählte Farbe. aber ich möchte auch die neudefinierten Farben übernehmen. Das heißt ich muss den String in CustomCOlors wieder zurück in Tcolor umwandeln. Wie läuft diese Konvertierung?
if ColorDialog.Execute then Panel.Color:= ColorDialog.Color;
|
Re: Eigenschaft CustomColor von TColordialog
dem Value "$" hinzufügen und dann StringToColor :zwinker:
Delphi-Quellcode:
panel1.color:= StringToColor('$' + Colordialog1.CustomColors.ValueFromIndex[0]);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:27 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