Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TColorDialog (https://www.delphipraxis.net/145134-tcolordialog.html)

susi59 24. Dez 2009 06:19


TColorDialog
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Morgen.

Da ich öfter für meine Programme mal eine Farbe auswählen möchte, die nicht den Standardfarben entspricht ( TFont zum Beispiel läßt ja nur 16 Farben zu ), hatte ich ein kleines Problem und viel Rechnerei. Zuerst mit dem Taschenrechner, dann mit ner Liste, die die 16er- (HEX-) Zahlenumrechnung enthielt.
Und das alles nur, weil in TColorDialog zwar die Farbe angezeigt und auch in einer Longint-Variable zurückgegeben wird, ich aber die Farbwerte nicht zur Laufzeit des Programms ändern lassen wollte, sondern schon im OI festlegen. Da sieht man aber nur DEzi-Zahlen und dann auch noch in umgekehrter Reiehnfolge.

Also habe ich mir ein kleines Programm geschrieben und unter TOOLS im OI eingebunden.

Es liefert den DEZI-Zahlenwert, die Besetzung der Farbbytes und die Delphi-Zeichenkette, die mann im OI für die Komponente eintippen kann.

Wer sowas hilfreich findet, im Anhang steht die Datei.

Friedliche Weihnachten
Susi

[edit=Matze]Tippfehler im Titel korrigiert, damit das Thema über die Suche leicht gefunden werden kann. MfG, Matze[/edit]

scrat1979 24. Dez 2009 10:17

Re: TColotDialog
 
Da ich so etwas ziemlich hilfreich finde, habe ich mir auch mal so ein Ding geschrieben (Werde es auch gleich mal posten). Du könntest die Werte ein EDIT-Feldern ausgeben,
dann könnte man gleich den Wert kopieren und muss ihn nicht von Hand übertragen...

Frohe Weihnachten!

SCRaT

susi59 27. Dez 2009 08:05

Re: TColotDialog
 
Stimmt !

Mit showmessage gings am schnellsten. da gaht Copy&Past allerdings nicht.
Ich denke ich habs gleich ( ... ) fertig.

Gruß Susi

susi59 27. Dez 2009 08:29

Re: TColotDialog
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Morgen !

Ich bin fertig damit. Es können die Werte, jenachdem, was gebraucht wird, direkt per copy&Past übernommen werden.

Guten Rutsch, Susi

waldforest 27. Dez 2009 09:51

Re: TColorDialog
 
Klasse Tool,
wenn man nun noch per Mouse (Pipette) die Farbe unter dem Cusor ermitteln könnte, wäre dies sicher ein weiteres Highlight.


Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
Var Pt:TPoint; DC:HDC;
begin
GetCursorPos(Pt);
DC:=CreateDC('DISPLAY',NIL,NIL,NIL);
label1.Caption := inttostr(GetPixel(DC,Pt.x,Pt.y));
End;

Nachteule 27. Dez 2009 15:54

Re: TColorDialog
 
es fehlt die Unit "func.pas" in der zip-Datei. So lässt sich das Projekt zum Anpassen nicht kompilieren...

susi59 28. Dez 2009 07:38

Re: TColorDialog
 
Hallo,

wegen der datei "func.pas". das hab ich vergessen zu schreiben: Sie fehlt, das ist aber nicht schlimm.

Die macht bei mir noch viele andere Umreechnungen, die ich hier nicht brauche. Die wichtige Umwandlung einer Dezi-Zahl in Hex-Zeichenkette habe ich ausgeklammert, aber in die Main-Datei
kopiert.

Die Klammern (* *) weg und dann sollte es gehen.

Entschuldigung, hatte ich vergessen.

Guten Rutsch
Susi

Nachteule 28. Dez 2009 09:40

Re: TColorDialog
 
die Klammern hatte ich schon entfernt
dann wird das HexArray nicht erkannt
Delphi-Quellcode:
  ResultS:=HexArray[AInt Mod 16]+ResultS;
wie ist das definiert?

susi59 28. Dez 2009 15:12

Re: TColorDialog
 
Tscha, die kleinen Vergesslichkeiten,

wenn man nur das Nötigste schreiben will.

Also hier das fehlende Array:

Delphi-Quellcode:
Const HexArray : Array[0..15]Of Char =
                  ('0','1','2','3','4','5','6','7',
                   '8','9','A','B','C','D','E','F');
Ich hoffe, jetzt gehts.

Gruß Susi

Nachteule 28. Dez 2009 15:23

Re: TColorDialog
 
Vielen Dank jetzt ´funktioniert´s
nach kleiner Änderung:
Delphi-Quellcode:
FUNCTION MaskIntToHex(AInt:LongInt):str16;
Var ResultS :str16;
zu:
Delphi-Quellcode:
FUNCTION MaskIntToHex(AInt:LongInt):string;
Var ResultS :string;
compiliert jetzt mit Delphi 2007


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:01 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 by Thomas Breitkreuz