AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Edit-Felder auf Inhalt prüfen

Ein Thema von Rookie91 · begonnen am 1. Aug 2015 · letzter Beitrag vom 5. Aug 2015
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
Rookie91

Registriert seit: 29. Jul 2015
16 Beiträge
 
#1

Edit-Felder auf Inhalt prüfen

  Alt 1. Aug 2015, 12:05
Hallo Leute,

ich habe folgendes Problem: ich möchte 2 Edit-Felder, deren Inhalt für eine Berechnung notwendig ist, auf Inhalt überprüfen. Falls dort nichts steht soll eine Message gezeigt werden und im Edit-Feld, wo das Ergebnis gezeigt wird: Berechnung fehlgeschlagen!.
Mein Quelltext:

procedure TForm2.Button1Click(Sender: TObject);
var V,Dichte,d,n,Re: real;
begin
V:= StrToFloat(edit1.text);
Dichte:= StrToFloat(edit11.text);
n:= StrToFloat(edit10.Text)/1000000;
case combobox2.ItemIndex of
0: d:= 0.01;
1: d:= 0.012;
2: d:= 0.015;
3: d:= 0.02;
4: d:= 0.025;
5: d:= 0.032;
6: d:= 0.04;
7: d:= 0.05;
end;
Re:= 4*V*Dichte/d/n/3.1416;
if Re >= 2320 then begin ShowMessage('Es liegt keine laminare Strömung mehr vor! Reduziere den Volumenstrom und/oder erhöhe den Rohrdurchmesser!'); end;
if (edit1.Text='') or (edit2.text='') then begin ShowMessage('Es muss ein Wert angegeben werden!'); end;
if (edit1.Text='') or (edit2.text='') then begin edit3.text:= 'Berechnung fehlgeschlagen'; end;
if not (edit1.text='') or (edit2.text='') then begin

case combobox2.ItemIndex of
0: ... Berechnung ...

end;
end;

if Re >=2320 then begin edit3.text:= 'Berechnung fehlgeschlagen'; end;


end;


Für Re >= 2320 funktioniert alles. Bei leeren Edit-Feldern kommt die MEldung: " ist not al valid floating point value.

Kann mir jemand weiterhelfen?

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Edit-Felder auf Inhalt prüfen

  Alt 1. Aug 2015, 12:17
Strukturier Deinen Code doch erst einmal. Mit den Delphi-Tags (die "Helm"-Schaltfläche im Beitragseditor) kannst Du ihn dann im Forum schön formatiert darstellen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
zeras
Online

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#3

AW: Edit-Felder auf Inhalt prüfen

  Alt 1. Aug 2015, 12:18
Prüfe doch, ob das Editfeld leer ist mit
if edxxx.text <> ''then
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Edit-Felder auf Inhalt prüfen

  Alt 1. Aug 2015, 12:20
Das ist im Grunde genommen wurscht, wie man vergleicht. Aber man sollte das nach Möglichkeit nur einmal machen müssen. Tipp: zu einem If-Zweig kann man auch einen Else-Zweig schreiben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Rookie91

Registriert seit: 29. Jul 2015
16 Beiträge
 
#5

AW: Edit-Felder auf Inhalt prüfen

  Alt 1. Aug 2015, 13:07
Hallo Leute,

ich habe folgendes Problem: ich möchte 2 Edit-Felder, deren Inhalt für eine Berechnung notwendig ist, auf Inhalt überprüfen. Falls dort nichts steht soll eine Message gezeigt werden und im Edit-Feld, wo das Ergebnis gezeigt wird: Berechnung fehlgeschlagen!.
Mein Quelltext:

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var V,Dichte,d,n,Re: real;
begin
V:= StrToFloat(edit1.text);
Dichte:= StrToFloat(edit11.text);
n:= StrToFloat(edit10.Text)/1000000;
case combobox2.ItemIndex of
0: d:= 0.01;
1: d:= 0.012;
2: d:= 0.015;
3: d:= 0.02;
4: d:= 0.025;
5: d:= 0.032;
6: d:= 0.04;
7: d:= 0.05;
end;
Re:= 4*V*Dichte/d/n/3.1416;
if Re >= 2320 then begin ShowMessage('Es liegt keine laminare Strömung mehr vor! Reduziere den Volumenstrom und/oder erhöhe den Rohrdurchmesser!'); end;
if (edit1.Text='') or (edit2.text='') then begin ShowMessage('Es muss ein Wert angegeben werden!'); end;
if (edit1.Text='') or (edit2.text='') then begin edit3.text:= 'Berechnung fehlgeschlagen'; end;
if not (edit1.text='') or (edit2.text='') then begin

case combobox2.ItemIndex of
0: ... Berechnung ...

end;
end;

if Re >=2320 then begin edit3.text:= 'Berechnung fehlgeschlagen'; end;


end;

Für Re >= 2320 funktioniert alles. Bei leeren Edit-Feldern kommt die MEldung: " ist not al valid floating point value.

Kann mir jemand weiterhelfen?

Gruß
  Mit Zitat antworten Zitat
zeras
Online

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#6

AW: Edit-Felder auf Inhalt prüfen

  Alt 1. Aug 2015, 13:17
Wie oben von mir schon geschrieben. Prüfe beide Edits auf = '', dann steht in beiden nichts drin und du kannst eine Fehlermeldung ausgeben.
Du kannst auch TryStrToFloat nutzen, um den Fehler abzufangen.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Edit-Felder auf Inhalt prüfen

  Alt 1. Aug 2015, 13:18
Zähl doch mal, wie oft die folgenden Schnippsel in Deinem Code vorkommen:
Zitat:
case combobox2.ItemIndex of
Zitat:
if Re >= 2320 then
Zitat:
(edit1.Text='') or (edit2.text='')
Wieso ist das so? Geht das nicht auch anders (siehe z.B. den Tipp in meinem letzten Posting)? Das meinte ich mit Strukturieren, das Formatieren fürs Forum war nur Nebensache (wobei man seine Beiträge auch 24 Stunden lang editieren kann und sie nicht wiederholen muss).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Edit-Felder auf Inhalt prüfen

  Alt 1. Aug 2015, 13:23
Wie oben von mir schon geschrieben. Prüfe beide Edits auf = '', dann steht in beiden nichts drin und du kannst eine Fehlermeldung ausgeben.
Dann ist ja alles in Butter:
Zitat:
if (edit1.Text='') or (edit2.text='') then begin ShowMessage('Es muss ein Wert angegeben werden!'); end;
[edit] Also gut, mal ein Beispiel (auf eine bessere Benennung habe ich bewusst verzichtet):
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var
  Zahl1, Zahl2, Ergebnis: double;
  Ausgabe: string;
begin
  //Pessimistische Vorbelegung des Augabestrings
  Ausgabe := 'Berechnung fehlgeschlagen';
  if not TryStrToFloat(Edit1.Text, Zahl1) then
    begin
      ShowMessage('Ungültige Eingabe für die erste Zahl');
      Edit1.SetFocus;
      Edit1.SelectAll;
    end
  else if not TryStrToFloat(Edit2.Text, Zahl2) then
    begin
      ShowMessage('Ungültige Eingabe für die zweite Zahl');
      Edit2.SetFocus;
      Edit3.SelectAll;
    end
  //Hier können wir weitermachen, Zahl1 und Zahl2 sind aus den Eingaben befüllt
  else
    begin
      Ergebnis := Zahl1 + Zahl2;
      Ausgabe := FloatToStr(Ergebnis);
    end;
  //Ausgabestring darstellen
  //(enthält entweder das Rechenergebnis oder die Fehlermeldung von ganz oben)
  Edit3.Text := Ausgabe;
end;
[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH ( 1. Aug 2015 um 14:04 Uhr)
  Mit Zitat antworten Zitat
Rookie91

Registriert seit: 29. Jul 2015
16 Beiträge
 
#9

AW: Edit-Felder auf Inhalt prüfen

  Alt 1. Aug 2015, 16:35
Hey,

habe das jetzt mal so geändert:
ich weiß leider nicht, was mit formatieren gemeint ist

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var V,Dichte,n,Re,Laenge,Ergebnis,d: double;
    Ausgabe: string;
begin
V:= StrToFloat(edit1.text)/1000;
Dichte:= StrToFloat(edit11.text);
n:= StrToFloat(edit10.Text)/1000000;
Ausgabe:= 'Berechnung fehlgeschlagen';
case combobox2.ItemIndex of
0: d:= 0.01;
1: d:= 0.012;
2: d:= 0.015;
3: d:= 0.02;
4: d:= 0.025;
5: d:= 0.032;
6: d:= 0.04;
7: d:= 0.05;
8: d:= 0.06;
9: d:= 0.065;
10: d:= 0.08;
11: d:= 0.1;
end;
Re:= 4*V*Dichte/d/n/3.1416;
  if Re >= 2320 then begin ShowMessage('Es liegt keine laminare Strömung mehr vor! Reduziere den Volumenstrom und/oder erhöhe den Rohrdurchmesser!');

  if not TryStrToFloat(edit1.Text, V) then begin showmessage('Werte für Volumenstrom und Länge eingeben!');
  edit1.SetFocus;
  edit1.SelectAll;
  end
  else if not TryStrToFloat(edit2.Text, Laenge) then begin showmessage('Werte für Volumenstrom und Länge eingeben!');
  edit2.SetFocus;
  edit2.SelectAll;
  end
  else begin

Ergebnis:= 40.744/1000000/d/d/d/d*StrToFloat(edit10.Text)*StrToFloat(edit1.Text)*StrToFloat(edit2.text);
Ausgabe := FloatToStr(Ergebnis);
end;
edit3.text:= Ausgabe;

if Re >=2320 then begin edit3.text:= 'Berechnung fehlgeschlagen'; end;

end;
end;
  Mit Zitat antworten Zitat
Rookie91

Registriert seit: 29. Jul 2015
16 Beiträge
 
#10

AW: Edit-Felder auf Inhalt prüfen

  Alt 1. Aug 2015, 16:36
jetzt funktioniert die Rechnung sogar nicht mehr...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz