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:
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;
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?
Aus der Delphi Hilfe:
Zitat:
Jede selbstdefinierte Farbe wird als String in der Form ColorX=HexValue dargestellt. Der folgende String setzt beispielsweise die erste selbstdefinierte Farbe.
ColorA=808022
Es können bis zu 16 selbstdefinierte Farben (ColorA bis ColorP) festgelegt werden.
Kahpee