Autor Beitrag
Anka
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Mi 22.09.10 16:32 
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
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mi 22.09.10 16:58 
Hi und :welcome:
Für Dein erstes Problem gibt es z.B. hier und mehr Beispiele.
Für 2. wenn es keine original exeption dafür gibt(die man abfangen kann), kannst Du solche MathFunktionen z.B. in einer If Abfrage abfangen z.B. :wink:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
if eingabe <0 then
begin
   //hier Deine ErrorMeldung

   exit;
end


Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 22.09.10 17:49 
user profile iconAnka hat folgendes geschrieben Zum zitierten Posting springen:
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. ;)
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Mi 22.09.10 22:33 
Nebenbei bemerkt: Nein, kann man nicht immer, siehe Wikipedia

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mi 22.09.10 22:41 
user profile iconplatzwart hat folgendes geschrieben Zum zitierten Posting springen:
Nebenbei bemerkt: Nein, kann man nicht immer, siehe [url=de.wikipedia.org/wik...hlen]Wikipedia[/url]


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

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 22.09.10 22:53 
Moin und :welcome: im Forum!

user profile iconAnka hat folgendes geschrieben Zum zitierten Posting springen:
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

_________________
There are 10 types of people - those who understand binary and those who don´t.
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Mi 22.09.10 22:54 
Dann lies den Text, den ich verlinkt habe ;)

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
Anka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Do 23.09.10 16:43 
kann ich dann einfach eingabe <0 schreiben? also versteht Delphi das Wort "eingabe" ?
Anka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: 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.

Für diesen Beitrag haben gedankt: Anka
Anka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: 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?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
if eingabe <0 then
begin
   //ErrorMeldung

   exit;
end
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Do 23.09.10 18:07 
kleines Beispiel im Anhang



noch ein Beispiel um Eingabemäßig Fließkommazahlen zuzulasen
ausblenden 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;
Einloggen, um Attachments anzusehen!
Anka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Do 23.09.10 19:01 
Jetzt haben wir es gleich ;)

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: 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.

Für diesen Beitrag haben gedankt: Anka