| Autor |
Beitrag |
DeadEyeFlint
Hält's aus hier
Beiträge: 4
|
Verfasst: Do 03.07.08 09:37
Hallo Liebe Community,
ich habe dank meines Informatikunterrichts angefangen mich mit delphi und pascal angefangen zu beschäftigen.
Meine Lehrerin gab mir eine Aufgabe die ich wie Ihr unten sehen könnt bearbeitet habe.
Und jetzt zu meiner Frage: Ich habe als Abfangung für leere Felder jetzt für jedes Feld einzeln eine if schleife eingebaut. Würe es auch gehen dass man da nur eine einbaut um den source code ein wenig zu verkürzen?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83:
| procedure TForm1.Button1Click(Sender: TObject);
var a1,a2,a3,p1,p2,p3,g1,g2,g3,gs:real;
begin
if ([edit_a_1.Text] ='') then
begin showmessage('Bitte Feld "Anzahl" komplett ausfüllen.'); exit; end;
if (edit_a_2.Text ='') then
begin showmessage('Bitte Feld "Anzahl" komplett ausfüllen.'); exit; end;
if (edit_a_3.Text ='') then
begin showmessage('Bitte Feld "Anzahl" komplett ausfüllen.'); exit; end;
if (edit_p_1.Text ='') then
begin showmessage('Bitte Feld "Preis pro Stück" komplett ausfüllen.'); exit; end;
if (edit_p_2.Text ='') then
begin showmessage('Bitte Feld "Preis pro Stück" komplett ausfüllen.'); exit; end;
if (edit_p_3.Text ='') then
begin showmessage('Bitte Feld "Preis pro Stück" komplett ausfüllen.'); exit; end;
a1:=strtofloat(edit_a_1.Text); a2:=strtofloat(edit_a_2.Text); a3:=strtofloat(edit_a_3.text);
p1:=strtofloat(edit_p_1.text); p2:=strtofloat(edit_p_2.Text); p3:=strtofloat(edit_p_3.Text);
g1:=a1*p1; g2:=a2*p2; g3:=a3*p3;
edit_g_1.Text:=floattostr(g1); edit_g_2.Text:=floattostr(g2); edit_g_3.Text:=floattostr(g3);
gs:=g1+g2+g3;
edit_gs.Text:=floattostr(gs);
end; |
Gruß DeadEyeFlint
|
|
Stefan-W
      
Beiträge: 475
Win 7 SP1
D2005 PE
|
Verfasst: Do 03.07.08 09:40
hier kannst du nur die If abfrage kürzen indem du die Meldungen zusammen fasst.
also erst auswerten und dann ne Meldung wie "bitte das, das und das noch richtig ausfüllen"
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Do 03.07.08 09:41
Hallo und  in der Entwickler-Ecke!
Ja, da kann man was machen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| if (edit_a_1.Text ='') OR (edit_a_2.Text ='') OR (edit_a_3.Text ='') then begin showmessage('Bitte Feld "Anzahl" komplett ausfüllen.'); exit; end; |
btw.: www.if-schleife.de 
_________________ We are, we were and will not be.
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Do 03.07.08 09:42
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| procedure TForm1.Button1Click(Sender: TObject); var a1,a2,a3,p1,p2,p3,g1,g2,g3,gs:real; begin
if (length(edit_a_1.Text) < 1) or (length(edit_a_2.Text) < 1) or (length(edit_a_3.Text) < 1) or (length(edit_p_1.Text) < 1) or (length(edit_p_2.Text) < 1) or (length(edit_p_3.Text) < 1) then begin showmessage('Bitte alle Felder ausfüllen'); exit; end;
a1:=strtofloat(edit_a_1.Text); a2:=strtofloat(edit_a_2.Text); a3:=strtofloat(edit_a_3.text);
p1:=strtofloat(edit_p_1.text); p2:=strtofloat(edit_p_2.Text); p3:=strtofloat(edit_p_3.Text);
g1:=a1*p1; g2:=a2*p2; g3:=a3*p3;
edit_g_1.Text:=floattostr(g1); edit_g_2.Text:=floattostr(g2); edit_g_3.Text:=floattostr(g3); gs:=g1+g2+g3; edit_gs.Text:=floattostr(gs); end; |
LG
Stefan
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
DeadEyeFlint 
Hält's aus hier
Beiträge: 4
|
Verfasst: Do 03.07.08 09:47
Hehe okay Gausi if Abfrage
Und danke an euch zwei für die schnellen Antworten. An das or hab ich auch schon gedacht und probiert aber dann hatte ich die Syntax falsch gesetzt.
Danke
Gruß DeadEye
|
|
robo202
      
Beiträge: 67
win XP
Delphi 2005
|
Verfasst: Do 03.07.08 11:49
WEnn du deine Eingabe felder anders nennst dann ist es ganz einfach
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var i:integer; begin for i := 1 to 4 do begin If (edit(i)).text = '' then begin showmessage ('Bitte eingaben überprüfen'); exit; end;
End; |
glaube ich jedenfals 
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Do 03.07.08 11:53
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
DeadEyeFlint 
Hält's aus hier
Beiträge: 4
|
Verfasst: Do 03.07.08 12:41
okay sieht auch ganz gut aus ^^
aaaber, wie gesagt hab ich mit delphi und pascal erst emgefangen.
var mycompo ... um ehrlich zu sein kann ich damit nichts anfangen. ich hab schon gidf.de befragt. aber ich habe nich wirklich viel gefunden.
und diese if abfrage " if length((myCompo as TEdit).Text) < 1 then" hab ich auch noch nich ganz verstanden
gruß DeadEye
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Do 03.07.08 13:22
@robo202: so mach ich das meistens, die Komponenten als array auffassen (natürlich mit [] und nicht mit runden Klammern). Aber dazu muss man sich erst ein Array aus Zeigern erstellen, und diese mit den Komponenten verknüpfen.
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Do 03.07.08 13:30
Das mit dem FindComponent würde ich an dieser Stelle sein lassen. Das ist nur sinnvoll, wenn man wirklich viele Edits (oder sonstwas) hat, und dann würde ich auch in der Regel die Variante mit dem selbsterstellten Array vorziehen.
Bei so wenigen ist es imho sinnvoller (und auch für Anfänger verständlicher) das direkt zu machen.
_________________ We are, we were and will not be.
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Do 03.07.08 13:37
Gausi hat folgendes geschrieben: | Das mit dem FindComponent würde ich an dieser Stelle sein lassen. Das ist nur sinnvoll, wenn man wirklich viele Edits (oder sonstwas) hat, und dann würde ich auch in der Regel die Variante mit dem selbsterstellten Array vorziehen.
Bei so wenigen ist es imho sinnvoller (und auch für Anfänger verständlicher) das direkt zu machen. |
Würd ich auch sagen, aber ich hab nur das Beispiel verbessert 
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Do 03.07.08 13:45
[ot]
OMG! Wer gibt min. 15 €uro für ne Top-Level-Domain aus für sowas. Das is doch schon ein bisschen absurd. Auch wens ein wenig lustig ist.
[/ot]
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Do 03.07.08 13:56
elundril hat folgendes geschrieben: |
OMG! Wer gibt min. 15 €uro für ne Top-Level-Domain aus für sowas. Das is doch schon ein bisschen absurd. Auch wens ein wenig lustig ist.
|
Irgendwo muss es Leute geben die so was lustig finden.
btw. ist der Satz "Es gibt keine if-Schleifen, sondern nur if-Abfragen!" in meinen Augen ungünstig formuliert, er hätte lauten sollen "Es gibt keine if-Schleifen, sondern nur if-Blöcke!", denn die Anfänger verwechseln in meinen Augen Schleife und Block.
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
Zuletzt bearbeitet von Tilman am Do 03.07.08 13:58, insgesamt 1-mal bearbeitet
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Do 03.07.08 13:57
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
jakobwenzel
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: Do 03.07.08 14:11
elundril hat folgendes geschrieben: | | OMG! Wer gibt min. 15 €uro für ne Top-Level-Domain aus für sowas. Das is doch schon ein bisschen absurd. Auch wens ein wenig lustig ist. |
Nun ja, bei manchen Hosting-Paketen hast du mehrere Inklusiv-Domains, brauchst aber u.U. nur eine - und dann ist Platz für sowas.
_________________ I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 03.07.08 14:21
Moin!
Bitte zurück zum Thema!
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|