Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Error Handling / Eingabesperre
Anka - Mi 22.09.10 16:32
Titel: Error Handling / Eingabesperre
Hallo leute,
Bin Delphi-Anfängerin und wollte mal Fragen,
1. wie ich das Edit-Feld für bestimmte Eingaben sperren kann (z.B. Buchstaben sperren)
und 2. Wie ich Fehlermeldungen erzeuge (Error-Handling), wenn z.B. nur sinnvolle Berechnungen durchgeführt werden sollen (z.B. Wurzel aus -1 sollte eine Fehlermeldung erscheinen).
Dankeschön,
Anka
Delete - Mi 22.09.10 17:49
Anka hat folgendes geschrieben : |
| und 2. Wie ich Fehlermeldungen erzeuge (Error-Handling), wenn z.B. nur sinnvolle Berechnungen durchgeführt werden sollen (z.B. Wurzel aus -1 sollte eine Fehlermeldung erscheinen). |
Nebenbei bemerkt, man kann Wurzel auch aus negativen Zahlen ziehen. ;)
elundril - Mi 22.09.10 22:41
also soweit ich mich an die Mathematikvorlesung erinnern kann, kann man in den komplexen Zahlen uneingeschränkt rechnen. Und da ja die Wurzel einer negativen Zahl eine komplexe Zahl ergibt, warum sollte es dann da Probleme geben?
lg elundril
Narses - Mi 22.09.10 22:53
Moin und :welcome: im Forum!
Anka hat folgendes geschrieben : |
| Bin Delphi-Anfängerin und wollte mal Fragen, |
Bitte erstelle in Zukunft für jede deiner Fragen ein separates Topic, da die Diskussion mehrerer Fragen in einem Topic für gewöhnlich für Verwirrung und Durcheinander sorgt. Danke. ;) Normalerweise schließen wir Threads mit mehreren Fragen. :idea:
cu
Narses
platzwart - Mi 22.09.10 22:54
Dann lies den Text, den ich verlinkt habe ;)
Anka - Do 23.09.10 16:43
kann ich dann einfach eingabe <0 schreiben? also versteht Delphi das Wort "eingabe" ?
Anka - Do 23.09.10 17:19
Ich nochmal :)
Wo im Quelltext muss ich den Code von ALF (2.Antwort in diesem Thema) eingeben?
Ich bin halt noch ganz am Anfang ;)
bummi - Do 23.09.10 17:28
Das hängt davon ab wie Du reagieren willst...
Du kannst im OnChange des Edits prüfen, hier könntest Du eine Routine aufrufen die all Edits auf einmal prüft, alle bekommen dann auch das gleich OnChange zugewiesen.
In dieser Rountine könntest Du gültige Edits weiß färben und ungültige gelb und wenn eines ungültig ist den Button sperren......
im OnKeypress, hier könntest Du ein Zeichen welches nicht oder nicht mehr zu Text Deines Edits hinzugefügt werden soll mit Key=#0 verwerfen ....
Du könntest im OnExit eines Feldes eine Meldung anzeigen wenn Dir der Wert nicht gefällt und danach den Fokus wieder auf das Edit zurücksetzen...
Es gibt wohl noch 10 andere Möglichkeiten, Du must nur überlegen wann Du was machen möchtest und was Dir vieviel Aufwand wert ist.
Anka - Do 23.09.10 17:46
1. Ok,danke bummi, für mich kommt das OnChange Ereigniss in Frage. Funktioniert auch alles soweit; wie kann ich daraus jetzt eine Routine machen?
2.Nochmal die Frage: Wie kann ich den "eingabe" Befehl hier in Delphi-Sprache ausdrücken?
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| if eingabe <0 then begin exit; end |
bummi - Do 23.09.10 18:07
kleines Beispiel im Anhang
noch ein Beispiel um Eingabemäßig Fließkommazahlen zuzulasen
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (Key in [#0..#31,'0'..'9','-',',']) or ((key='-') and (Pos('-',Tedit(sender).Text)>0)) or ((key=',') and (Pos(',',Tedit(sender).Text)>0)) then key :=#0
end; |
Anka - Do 23.09.10 19:01
Jetzt haben wir es gleich ;)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| begin mayrun := Checkbox1.Checked; if not TryStrToFloat(Edit1.Text,f1) then begin Edit1.Color := clYellow end else |
könntest du mir jetzt noch die folgenden Passagen im Code erklären:
a.)mayrun
b.)TryStrToFloat (Funktion)
c.)f1
d.)Wieso muss es noch ein 'else' geben?
Danke für die Antworten und vor allem für eure Geduld ;)
Liebe Grüße
Anka
bummi - Do 23.09.10 19:09
1:) mayrun ist hier eine boolsche Variable die hier verwendet wird um Button enabled erst am Ende Setzen zu müssen.
2:)TryStrToFloat(String,DoubleVariable) gibt true zurück wenn String in ein Float gewandelt werden konnte in DoubleVariable ist dann die Zahl mit der Du weiterarbeiten kannst.
3:)f1 und fs sind die Variablen die für TryStrToFloat benötigt werden um dort die Zahlen anzulegen
4:)ohne Else beleibt Dein Edit auch bei gültiger Eingabe gelb und da hier anhand der Farben der Button freigegeben wird würde dieser niemals zu betätigen sein.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!