![]() |
max. wert von editboxen
Wie kann ich in Delphi den max. bzw. minimalen Wert von editboxen(es sind ca. 50) angeben?
Beim Eintippen einer zu großen bzw. zu kleinen Zahl soll er eine Warnung ausgeben bzw. diejeweilige Box rot einfärben! Wie bekomme ich das möglichst schnell hin? Vielen Dank im voraus!!! |
Re: max. wert von editboxen
Reagiere uaf Eingabe und Teste die Grenzen ab.
|
Re: max. wert von editboxen
Und wie mache ich das?
|
Re: max. wert von editboxen
Z.B. OnChange oder OnExit mit TryStrToInt oder StrToIntDef in eine Zahl wandeln und prüfen.
|
Re: max. wert von editboxen
Damit kann ich schon etwas anfangen, aber wie lege ich die editbox, bzw. deren "Nummer " variabel fest um nicht 50 selbige Programmabläufe schreiben zu müssen?
|
Re: max. wert von editboxen
Du schreibst das einmalig für das erste Edit und stellst diese Methode im OI für alle Edits ein. Wichtig ist dabei aber, dass Du keine statischen Komponentennamen verwendest, sondern den Sender-Parameter auswertest.
|
Re: max. wert von editboxen
erzeug sie in der laufzeit ?!
Delphi-Quellcode:
var neuesEdit:Tedit;
begin neuesEdit:=TEdit.create(Form1); neuesEdit.bla_bla_bla:=Wert_von_bla_bla_bla; ... end; |
Re: max. wert von editboxen
Über Sender habe ich noch nicht so viel gehört:
Schreibe ich dann eine Prozedur, wie?
Delphi-Quellcode:
trystrtoint(Sender);
if Sender{usw} |
Re: max. wert von editboxen
Ein Beispiel hatte ich doch bereits
![]() |
Re: max. wert von editboxen
Und wie nenn ich die Prozedur dann?
Ich hab mir mal was überlegt:
Delphi-Quellcode:
trystrtoint-->wohin?
procedure TNotifyEvent(Sender: TObject);
begin if Sender is Tedit then begin if TEdit(Sender)<0{???} or TEdit(Sender)>15 then begin Tedit(Sender).Color:=clred; end; end; |
Re: max. wert von editboxen
Das ist doch vollkommen unerheblich, solange das eine Methode (genauer: TNotifyEvent) ist, d.h. es muss eine Methode Deines Formulars sein und einen Parameter vom Typ TObject erwarten.
[edit] Lies noch einmal, was ich ![]() |
Re: max. wert von editboxen
kurz gesagt, der name ist egal, nur nicht vergessen, sonst musst du immer wieder nachgucken :D :D :D
[Edit] Naja nicht ganz egal! Es dürfen nur buchstaben des eng. alphabets benutzt werden und namen die delphi schon in beschlag hat ("and","tag" usw...) nicht Das wars auch schon an Regelungen [/Edit] Zitat:
|
Re: max. wert von editboxen
Noedel, das ist keine Methode ;)
|
Re: max. wert von editboxen
das mit dem Tedit(Sender).text klappt nicht! Ich will ja keine Strings sondern Zahlen vergleichen!
-->Irgendwie muss ich die Strings noch umwandeln... |
Re: max. wert von editboxen
:wall: Nochmal:
![]() |
Re: max. wert von editboxen
Aber wo schreibe ich das trystrtoint denn hin?
|
Re: max. wert von editboxen
Wirf doch mal einen Blick in die Hilfe zu TryStrToInt. Ich helfe ja gerne, aber Denken musst Du schon selbst, das kann ich Dir nicht abnehmen.
|
Re: max. wert von editboxen
Das nutzt mir doch garnichts, ich will doch nicht wissen, ob die Eingabe einer Zahl entsprciht, sondern will festlegen, dass man minimal 0 bzw. maximal 15 als Werte eingeben kann! Wie kann ich denn strtoint für "Sender"/dieses allgemeine Prozedur festlegen?
Delphi-Quellcode:
funktioniert nicht!
strtoint(TEdit(Sender).text)<0
|
Re: max. wert von editboxen
Doch, genauso, nur eben nicht nur mit StrToInt, sondern mit TryStrToInt prüfen, ob es sich überhaupt um eine Zahl handelt.
|
Re: max. wert von editboxen
Dabei fehlen ihm aber immer Parameter!Auch die Hilfe bringt mich da nicht weiter!
|
Re: max. wert von editboxen
Ich habe gerade kein Delphi zur Verfügung, aber das müsste doch so gehen:
Delphi-Quellcode:
[edit] Da fehlten Klammern. [/edit]
var Zahl: integer;
... if not (TryStrToInt(TEdit(Sender).Text,Zahl) and (Zahl in [0..15])) then ShowMessage('Fehlerhafte Eingabe'); |
Re: max. wert von editboxen
Erstmal an den Threadersteller: Du musst dringend mehr Eigeninitiative zeigen! Es geht so einfach nicht, dass du nach einem kurzen Blick in die Hilfe aufgibst, prober doch mal was aus. Lies nach, welchen Parameter TryStrToInt noch erwartet!
Lösen würde ich es dann so:
Delphi-Quellcode:
Zahl := StrToIntDef(TEdit(Sender).Text, -1);//in Zahl umandeln, wenn es keine Zahl ist, kommt -1 raus (Nicht in 0..15)
if not (Zahl in [0..15]) then//wenn die Zahl nicht zwischen 0 und 15 ist.. ShowMessage('Fehlerhafte Eingabe');//.. ist es eine fehlerhafte Eingabe |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:28 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