Autor Beitrag
Silent Bob
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 29.10.02 15:03 
Hallo

nun... ich hätte ein Frage zu den Edit-Feldern in Delphi. Die TEdit Komponente ist ja schön und recht, doch kann man (soviel ich weiss) nur Strings in sie schreiben bzw. von ihr lesen (über das Text-property). Gibt es in Delphi auch Controls wie z.B in LabWindows bei welchen man den Datentyp (z.B. integer, double, etc) angeben kann sowie den gültigen Bereich (ideal wären Felder die falsche Tasten gleich ignorieren ... als bei einem integer jede Art von Zeichen die keine Zahl ist)
Ich habe bisher die TEdit-Komponenten mangels mir bekannten Alternativen auch für Integer-Felder verwendet. Doch die dauernde Prüf-und Wandlerei dieser Werte in einen String ist mir unsympatisch.

Besten Dank für die Hilfe und einen schönen Tag

_________________
"Ich dachte alles wird gut, aber das ist lange her"
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 29.10.02 15:11 
Gibts nichts anderes. Mit dem Umwandeln mußt du dich wohl abfinden.

Und hier mit ersparst du dir das Prüfen beim Auslesen:
ausblenden Quelltext
1:
2:
3:
4:
5:
procedure Tf_PrimTabelle.txtOGrenzeKeyPress(Sender: TObject;
  var Key: Char);
begin
  if not (Key in [#8,#46,#48 .. #57]) then Key := #0
end;


Frage am Rande: Von welcher Programmiersprache kommst du? Visual Basic?
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 29.10.02 15:21 
Wenn es bei Integer-Feldern (ohne Komma!) bleibt, dann kann man mit Hilfe der API dafür sorgen, dass das TEdit nur Zahlen akzeptiert. Das hier gehört ins "OnCreate"-Ereignis der Form:
ausblenden Quelltext
1:
2:
SetWindowLong(Edit1.Handle,GWL_STYLE,
  GetWindowLong(Edit1.Handle,GWL_STYLE) or ES_NUMBER);

Damit werden nur noch Zahlen angenommen. Alles andere wird schon durch das System abgeblockt, so dass du dich in deinem Programm nicht mehr darum kümmern musst. Da es aber nach wie vor ein String ist, musst du -wie Luckie schon sagte- die Umwandlung selbst vornehmen. Aber das dürfte in dem Fall das kleinere Übel sein.
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Di 29.10.02 15:32 
Hallo,

ein bisschen Arbeit hat Borland dir schon abgenommen.
Für Integer Felder kannst du z.B. tSpinEdit aus der Komponentenpalette Beispiele nehmen. Dieses Akkzeptiert nur ganzzahlige Werte in einem Festzulegenden Bereich. Die liest du dann mit SpinEdit1.Value aus.
Unter Zusätzlich findest du dann noch tMaskEdit, dieses erlaubt dir über einen Formatierungsstring Festzulegen wie die eingabe aussehen muss. Unter umständen musst du dan immernoch mit Funktionen wie StrToFloat konvertieren, du kannst aber die Gefahr der Fehleingaben minimieren.
Beide Komponenten sind natürlich nachfolger des "normalen" Edit Feldes (tCustomEdit), du kannst das also auch selber implementieren - wenn du das lieber machst.

Gruß
Klabautermann
Silent Bob Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 29.10.02 16:45 
Besten Dank erstmal für die Antworten .... werde es wohl so wie Luckie vorgschlagen hat lösen .... da ich auch double-Eingabefelder benötige

@ Luckie ..... ich komme aus der C-Ecke und habe meist auf der Entwicklungumgebung LabWindows programmiert. Bin erst seit kurzem auf Delphi zu Hause.

_________________
"Ich dachte alles wird gut, aber das ist lange her"
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 29.10.02 16:55 
Aber selbst C kennt unterschiedliche Datentypen. In so fern wundert mich deine Frage etwas.
Silent Bob Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 29.10.02 17:19 
mhmm ... tut mir leid Luckie ich kann Dir jetzt nicht folgen .... natürlich kennt "selbst" C versch. Datentypen ... nur hatte die Entwicklungumgebung LabWindows Controls für jegliche Art von Datentypen inkl. Bereichs- und Eingabeüberwachung und dergleichen als netten Zusatz .... ich suchte nur diese Controls (anscheinend vergeblich) bei Delphi .... deshalb die Frage ...

Gruss und einen erholsamen Abend

_________________
"Ich dachte alles wird gut, aber das ist lange her"
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 29.10.02 17:26 
ach so.