Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Prüfen ob String = Farbcode ist (https://www.delphipraxis.net/53342-pruefen-ob-string-%3D-farbcode-ist.html)

kingflo 14. Sep 2005 14:57


Prüfen ob String = Farbcode ist
 
Hallo ich möchte gerne einen String aus edit1 auf gültigkeit prüfen.

Es ist so dort kann ein Farbcode eingegeben werden, und jetzt möchte ich wissen, ob es auch ein gültiger Farbcode ist.

z.B wenn der User #232399 eingegeben hätte, dann ist alles ok und wenn im edit feld aber 232399 oder etwas ganz anderes steht dann soll eine Meldung kommen mit kein gültiger Farbwert.
Problem ist, dass es so viele Farbcodes gibt d.H der User muss ja auch #2833AA eingeben können usw. Jetzt weiß ich leider nicht, wie ich auf Farbcodes prüfen kann.

Als Idee hatte ich es so, das man die StringLänge prüft muss dan = 7 sein und dass man das erste Zecihen prüft dieses muss dann also # sein, und dann müsste man prüfen, ob die restlichen zeichen ungleich 1,2,3,4,5,6,7,8,9,A,B,C,D,E,F sind und wenn ja dann ist die eingabe falsch. Allerding weiß ich nicht genau wie ich das machen kann?
Ich könnte zwar jeden string prüfen wäre aber glaube ich etwas aufwendig wenn ich alle positionen prüfe oder? gibt es vielleicht eine bessere Möglichkeit?

LoL 14. Sep 2005 15:01

Re: Prüfen ob String = Farbcode ist
 
Delphi-Quellcode:
try
  StringToColor()
except
  {war wohl nix}
end;
//Tags vergessen und verschrieben :)

Neutral General 14. Sep 2005 15:02

Re: Prüfen ob String = Farbcode ist
 
Farbstrings fangen soweit ich weiß immmer mit "$00" an... dann halt zusätzlich noch die Stringlänge überprüfen und dann dürfte es eigentlich keine Probleme geben..

dizzy 14. Sep 2005 15:05

Re: Prüfen ob String = Farbcode ist
 
1) Länge prüfen
2) Erstes Zeichen zu '$' machen
3) StrToInt(TEdit.Text) -> bei Exception kein gültiger Zahlenwert ;)

Gruss,
Fabian

shmia 14. Sep 2005 15:06

Re: Prüfen ob String = Farbcode ist
 
Deine Idee mit dem Farbcode ist nix, das blickt kein normaler Mensch.
Zur Auswahl einer Farbe verwendet man TColorDialog.
Sollte TColorDialog zu wenig Funktionalität für deine Zwecke besitzen, gibt es ungefähr
200 andere Controls, die das mehr oder weniger gut können.
z.B.:
http://www.torry.net/vcl/dialogs/ext...rdialogadv.zip

kingflo 14. Sep 2005 15:20

Re: Prüfen ob String = Farbcode ist
 
Zitat:

Zitat von dizzy
1) Länge prüfen
2) Erstes Zeichen zu '$' machen
3) StrToInt(TEdit.Text) -> bei Exception kein gültiger Zahlenwert ;)

Gruss,
Fabian

Das dürfte keine So gute Idee sein, denn ich kann bei Farbcodes auch Bustaben benutzen von a - f

xaromz 14. Sep 2005 15:22

Re: Prüfen ob String = Farbcode ist
 
Hallo,
Zitat:

Zitat von kingflo
Zitat:

Zitat von dizzy
1) Länge prüfen
2) Erstes Zeichen zu '$' machen
3) StrToInt(TEdit.Text) -> bei Exception kein gültiger Zahlenwert ;)

Gruss,
Fabian

Das dürfte keine So gute Idee sein, denn ich kann bei Farbcodes auch Bustaben benutzen von a - f

Deshalb das $ am Anfang -> Macht einen Hex-String.

Gruß
xaromz
//Edit: Rechtschreibung

LoL 14. Sep 2005 15:23

Re: Prüfen ob String = Farbcode ist
 
Ich wiederhole mich ja nur ungern :mrgreen: , aber warum machst du nicht einfach:
Delphi-Quellcode:
try
  StringToColor(Edit1.Text)
except
  ShowMessage('Kein gültiger Farbwert');
end;
Dann kann da auch nichts passieren und es erfüllt doch das was du willst oder?

Khabarakh 14. Sep 2005 15:25

Re: Prüfen ob String = Farbcode ist
 
Zitat:

Zitat von kingflo
Zitat:

Zitat von dizzy
1) Länge prüfen
2) Erstes Zeichen zu '$' machen
3) StrToInt(TEdit.Text) -> bei Exception kein gültiger Zahlenwert ;)

Gruss,
Fabian

Das dürfte keine So gute Idee sein, denn ich kann bei Farbcodes auch Bustaben benutzen von a - f

OH
StrToInt konvertiert den in S angegebenen String in einen Integer-Wert. S muss die Entsprechung eines ganzzahligen Wertes (dezimal oder hexadezimal) sein. Enthält er keinen gültigen Wert, wird eine EConvertError-Exception ausgelöst.

:!:
Aber was spricht gegen deinen eigenen Vorschlag? Weniger aufwendig geht schlecht, denn wie willst du einen String validieren, ohne alle Zeichen zu prüfen?

[add]Wenn du den String im Erfolgsfall auch konvertieren willst, bietet sich natürlich Lols Variante an :wink: .[/add]

kingflo 14. Sep 2005 15:41

Re: Prüfen ob String = Farbcode ist
 
Zitat:

Zitat von LoL
Ich wiederhole mich ja nur ungern :mrgreen: , aber warum machst du nicht einfach:
Delphi-Quellcode:
try
  StringToColor(Edit1.Text)
except
  ShowMessage('Kein gültiger Farbwert');
end;
Dann kann da auch nichts passieren und es erfüllt doch das was du willst oder?

So habe ich es jetzt auch gemacht geht super.
Ich habe auch gleich nach dem Post deinen Vorschlag benutzt hatte aber den Vorschlag von dizzy (doof wie ich bin) nicht ganz verstanden. Deshalb habe ich noch gepostet denn ich wusste nicht dass ein $ am Anfang -> einen Hex-String liefert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:14 Uhr.
Seite 1 von 2  1 2      

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