Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - TColorDialog Basisfarben voreinstellen


hRb - Fr 21.11.14 19:03
Titel: TColorDialog Basisfarben voreinstellen
Ruft man einen TColordialog auf, so gibt es ein 6x8 großes Farbfelb mit voreingestellten Farben. Daneben kann man 16 weitere Farben anwenderspezifisch einstellen. Kann man die voreingestellten Farben auch definieren und wie?


Gerd Kayser - Fr 21.11.14 20:30

user profile iconhRb hat folgendes geschrieben Zum zitierten Posting springen:
Kann man die voreingestellten Farben auch definieren und wie?

Beispiel:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TMainform.Button1Click(Sender: TObject);
var
  Liste : TStringList;
begin
  ColorDialog1.Options := [cdFullOpen, cdAnyColor];
  Liste := TStringList.Create; // für die Werte von ColorA bis ColorP
  try
    Liste.Add('ColorA=' + IntToHex(1231238)); // Zeilen OHNE Leerzeichen!
    Liste.Add('ColorB=' + IntToHex(8800888));
//  ...
    Liste.Add('ColorP=' + IntToHex(167119358));
    ColorDialog1.CustomColors := Liste;
  finally
    Liste.Free;
  end;
  ColorDialog1.Execute;
end;


hRb - Sa 22.11.14 00:01

Vielleicht habe ich mich unklar ausgedrückt, aber mit dieser Befehlsfolge kann ich nur die 16 Benutzer-Farben ändern. Die habe ich auch schon fest unter CustomColors editiert (ColorA= .. ColorP). Mir geht es um das 6x8=48 große Farbfeld darüber.


Gerd Kayser - Sa 22.11.14 04:16

user profile iconhRb hat folgendes geschrieben Zum zitierten Posting springen:
Mir geht es um das 6x8=48 große Farbfeld darüber.

Die einfachste Lösung wäre sicherlich, einen an die eigenen Bedürfnisse angepassten ColorDialog nachzubauen. Ansonsten wirst Du wohl an den Farbpaletten rumwerkeln müssen.


hRb - Sa 22.11.14 18:04

Ja, das würde ich ja gerne. In der Hilfe finde ich zwar SetColor bzw. BaseColor von TPalette, aber die Angaben sind für mich so abstrakt, dass ich damit (noch) nichts anfangen kann. Hätte hier jemand ein Beispiel? Ich habe bisher keinen Ansatz wie die Farben überschrieben werden. Vielleicht meldet sich noch jemand. Danke!


ssb-blume - So 23.11.14 09:11

Ja, ich habe eins. ABER es ist nicht Delphi, sondern C#!
Inhalt: feste Farben von Windows, .NET usw. zur Auswahl + frei einstellbare Farben über Schieberegler.
Wenn Bedarf besteht, da kannst Du meinen Quelltext haben.
Umsetzen auf Delphi ist nicht so schwer.
Bitte PN mit e-mail.

Hansi