AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TColorDialog

Ein Thema von susi59 · begonnen am 24. Dez 2009 · letzter Beitrag vom 28. Dez 2009
Antwort Antwort
susi59

Registriert seit: 20. Feb 2007
12 Beiträge
 
#1

TColorDialog

  Alt 24. Dez 2009, 05:19
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]
Angehängte Dateien
Dateityp: rar farbauswahl_834.rar (186,0 KB, 17x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: TColotDialog

  Alt 24. Dez 2009, 09:17
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
Michael Kübler
  Mit Zitat antworten Zitat
susi59

Registriert seit: 20. Feb 2007
12 Beiträge
 
#3

Re: TColotDialog

  Alt 27. Dez 2009, 07:05
Stimmt !

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

Gruß Susi
  Mit Zitat antworten Zitat
susi59

Registriert seit: 20. Feb 2007
12 Beiträge
 
#4

Re: TColotDialog

  Alt 27. Dez 2009, 07:29
Guten Morgen !

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

Guten Rutsch, Susi
Angehängte Dateien
Dateityp: rar farbauswahl_158.rar (170,3 KB, 17x aufgerufen)
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#5

Re: TColorDialog

  Alt 27. Dez 2009, 08:51
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;
  Mit Zitat antworten Zitat
Nachteule

Registriert seit: 22. Mär 2007
Ort: München
37 Beiträge
 
Delphi 2009 Enterprise
 
#6

Re: TColorDialog

  Alt 27. Dez 2009, 14:54
es fehlt die Unit "func.pas" in der zip-Datei. So lässt sich das Projekt zum Anpassen nicht kompilieren...
  Mit Zitat antworten Zitat
susi59

Registriert seit: 20. Feb 2007
12 Beiträge
 
#7

Re: TColorDialog

  Alt 28. Dez 2009, 06:38
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
  Mit Zitat antworten Zitat
Nachteule

Registriert seit: 22. Mär 2007
Ort: München
37 Beiträge
 
Delphi 2009 Enterprise
 
#8

Re: TColorDialog

  Alt 28. Dez 2009, 08:40
die Klammern hatte ich schon entfernt
dann wird das HexArray nicht erkannt
  ResultS:=HexArray[AInt Mod 16]+ResultS; wie ist das definiert?
  Mit Zitat antworten Zitat
susi59

Registriert seit: 20. Feb 2007
12 Beiträge
 
#9

Re: TColorDialog

  Alt 28. Dez 2009, 14:12
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
  Mit Zitat antworten Zitat
Nachteule

Registriert seit: 22. Mär 2007
Ort: München
37 Beiträge
 
Delphi 2009 Enterprise
 
#10

Re: TColorDialog

  Alt 28. Dez 2009, 14:23
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
  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 03:56 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