![]() |
ValidateEdit zur Laufzeit Eigenschaft DisplayFormat zuweisen
Hallo,
ich möchte zur Laufzeit der Komponente JvValidateEdit die Eigenschaft DisplayFormat zuweisen, so geht´s nicht:
Code:
JvValidateEdit1.DisplayFormat := 'dfCurrency';
Wer hat für mich die Lösung? |
Re: ValidateEdit zur Laufzeit Eigenschaft DisplayFormat zuwe
Lass die Apostrophe weg, Rolf.
Grüße vom marabu |
Re: ValidateEdit zur Laufzeit Eigenschaft DisplayFormat zuwe
Danke, das war ja einfach.
Aber ich stehe immer noch auf dem Schlauch. Den Wert für DisplayFormat hole ich aus einer DB.
Delphi-Quellcode:
Es gibt keine Fehlermeldungen.
with myQuery do
... for i := 1 to 25 do TJvValidateEdit(myForm1.FindComponent('JvValidateEdit' + IntToStr(i))).DisplayFormat:= TJvValidateEditDisplayFormat(Fields[i]); ... Aber es funktioniert nicht. Ich kann während der Laufzeit auch keine Daten in die Edits eingeben. |
Re: ValidateEdit zur Laufzeit Eigenschaft DisplayFormat zuwe
Diesmal hast du etwas weg gelassen und ich habe es hinzugefügt:
Delphi-Quellcode:
marabu
....DisplayFormat := TJvValidateEditDisplayFormat(Fields[i].AsInteger);
|
Re: ValidateEdit zur Laufzeit Eigenschaft DisplayFormat zuwe
Das geht leider auch nicht. In meinem DB-Textfeld steht ja z.B. dfCurrency.
Also bekomme ich die Fehlermeldung: dfCurrency ist kein gültiger Integerwert. :( |
Re: ValidateEdit zur Laufzeit Eigenschaft DisplayFormat zuwe
Hallo Rolf,
hast du denn den Namen der Konstante in der Datenbank verewigt? Das ist sehr ungewöhnlich. Normalerweise speichert man Zahlenwerte, die sich dann viel leichter handhaben lassen. Wenn du das ändern kannst, dann solltest du das tun. Wenn nicht, dann musst du jetzt aus dem String 'dfCurrency' wieder einen passenden Zahlenwert erzeugen:
Delphi-Quellcode:
marabu
{
type TJvValidateEditDisplayFormat = (dfAlphabetic, dfAlphaNumeric, dfBinary, dfCheckChars, dfCurrency, dfCustom, dfFloat, dfHex, dfInteger, dfNonCheckChars, dfNone, dfOctal, dfPercent, dfScientific, dfYear); } uses JvValidateEdit; function StrToDisplayFormat(s: string): TJvValidateEditDisplayFormat; begin s := Lowercase(s); if s = 'dfalphabetic' then Result := dfAlphabetic else // ... fill in the blanks if s = 'dfcurrency' then Result := dfCurrency else // ... else Result := dfYear; end; |
Re: ValidateEdit zur Laufzeit Eigenschaft DisplayFormat zuwe
Hallo marabu,
vielen Dank für deine Hilfe. :-D Mir war gar nicht klar, das hinter dfCurrency ein Integerwert steckt. Ich stelle es jetzt in der DB um, das ist einfacher. |
Re: ValidateEdit zur Laufzeit Eigenschaft DisplayFormat zuwe
Zitat:
am einfachsten kann man das erkennen wenn man einfach bei getrückter Strg-Taste mit der Maus auf den Wert geht, die rechte Maustaste drückt und dann "Deklaration suchen" auswählt. In diesem Fall hättest Du dann gesagt das hinter TJvValidateEditDisplayFormat ein Aufzählungstyp steckt. Alles was dort dann deklariert ist wird von Delphi einfach mit 0 beginnend gezählt (Über die Funktion ![]()
Delphi-Quellcode:
type
mydemoTyp = (blubb,meow,delphipraxis); procedure TDemoForm.btn_DemoClick(Sender: TObject); var foo : myDemoTyp; begin foo := blubb; ShowMessageFmt('blubb ist Eintrag Nummer %d',[Ord(foo)]); foo := delphipraxis; ShowMessageFmt('delphipraxis ist Eintrag Nummer %d',[Ord(foo)]); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 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-2025 by Thomas Breitkreuz