AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Eigenschaft CustomColor von TColordialog
Thema durchsuchen
Ansicht
Themen-Optionen

Eigenschaft CustomColor von TColordialog

Ein Thema von KahPee · begonnen am 14. Feb 2010 · letzter Beitrag vom 14. Feb 2010
Antwort Antwort
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#1

Eigenschaft CustomColor von TColordialog

  Alt 14. Feb 2010, 19:28
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
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

Re: Eigenschaft CustomColor von TColordialog

  Alt 14. Feb 2010, 19:42
Versuch mal:

ColorDialog.CustomColors[0]:= ColorToString(Panel.Color)
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Eigenschaft CustomColor von TColordialog

  Alt 14. Feb 2010, 19:43
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);
//...
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Eigenschaft CustomColor von TColordialog

  Alt 14. Feb 2010, 19:47
Die frage ist nun wie Konvertiere ich zurück?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Eigenschaft CustomColor von TColordialog

  Alt 14. Feb 2010, 20:02
bitte unterlasse das pushen innerhalb von 24 Stunden und verwende (das nächste mal) stattdessen über deinem letzten Beitrag.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#6

Re: Eigenschaft CustomColor von TColordialog

  Alt 14. Feb 2010, 20:13
ColorDialog1.CustomColors.Insert(0,'ColorA=' + Copy(ColorToString(Panel1.Color),2,8)); - ColorToString liefert den Farbwert in HEX als 8 stelligen Wert
- zum einfügen in den String brauchst du dann nur das "$" abschneiden

if ColorDialog.Execute then Panel.Color:= ColorDialog.Color; - zurück ist einfach
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Eigenschaft CustomColor von TColordialog

  Alt 14. Feb 2010, 20:54
if ColorDialog.Execute then Panel.Color:= ColorDialog.Color; 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?
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#8

Re: Eigenschaft CustomColor von TColordialog

  Alt 14. Feb 2010, 21:09
dem Value "$" hinzufügen und dann StringToColor
panel1.color:= StringToColor('$' + Colordialog1.CustomColors.ValueFromIndex[0]);
  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 20:32 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