| Autor |
Beitrag |
elduchte
      
Beiträge: 199
Win 2000, Win XP
Delphi 7
|
Verfasst: Mo 23.06.03 00:21
Hallo Leute,
ich habe mal ein Frage: Ich habe neun Eingabefelder. Nachdem ich in jedem Feld ein Wert eingegeben habe, klicke ich auf einen Button. Jetzt soll folgende Überprüfung stattfinden:
- befindet sich in einem der Felder ein bestimmter Wert, soll eine Meldung erscheinen und weiter nichts.
- ist dies nicht der Fall soll überprüft werden, ob in 2 von den neun Felder jeweils ein bestimmter Wert steht, auch dann --> Meldung und sonst nichts.
- sind o. g. Punkte nicht zutreffend, will ich eine Berechnung durchführen.
Dieses Problem kann ich mit unzähligen IF-Anweisungen durchführen, allerdings halte ich das nicht für wirklich "elegant".
Gibt es da nicht auch eine bessere Lösung, die selbst ein Anfänger versteht?
Vielen Dank für Eure Hilfe
Andreas
Moderiert von Tino: List-Tags hinzugefügt.
|
|
AndyB
      
Beiträge: 1173
Erhaltene Danke: 14
RAD Studio XE2
|
Verfasst: Mo 23.06.03 02:07
_________________ Ist Zeit wirklich Geld?
|
|
kiwicht
      
Beiträge: 1021
Win 7, MacOS
Delphi x, VBA, PHP, ...
|
Verfasst: Mo 23.06.03 07:44
Hallöle..
hab auch ne Möglichkeit:
myInteger : Integer;
jetzt als Ereignis auf jeweils die 8 Edit-Felder, und zwar bei "OnExit"
Delphi-Quelltext 1: 2: 3: 4: 5:
| if Edit1.Text <> '' then inc(MyInteger, 2) else inc(MyInteger, -2); if Edit2.Text <> '' then inc(MyInteger, 4) else inc(MyInteger, -4); if Edit3.Text <> '' then inc(MyInteger, 8) else inc(MyInteger, -8); if Edit4.Text <> '' then inc(MyInteger, 16) else inc(MyInteger, -16); [...] usw |
dann fragst du bei ButtonClick in einer Case-Abfrage myInteger ab:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| case myInteger of: 2: 4: 8: 16: 6: 10: 28: end; |
so. Fertig
Prinzip verstanden? ist zwar vielleicht genauso lang wie deine IF-Abfragen, sieht aber unheimlich clever aus
mfG
|
|
BeniSchindler
      
Beiträge: 82
Win 2k / suse9.1
D7 Prof / Kylix 3
|
Verfasst: Di 24.06.03 11:32
sieht verdammt klever aus hat jedoch einen Fehler.  Den wenn blos in Edit2 ein Wert drin steht, ist der Wert "MyInteger" nicht bei 2 sondern bei -376 (oder so) . Man sollte also in jeder Zeile das Else weglassen. "else inc(MyInteger, -2); ". Und dann stimmt das ganze wieder so wie du das geschrieben hast.
ich würde das ganze auch wie AndyB veranstalten.
_________________ Result := 42; Application.ProcessMessages;
|
|
lb
      
Beiträge: 27
Win98, win2000, winxp, linux
D5,Kylix
|
Verfasst: Mo 14.07.03 23:07
Titel: zu Andy B
Die Sache mit den Edits als Array funtkioniert bei mir nicht so ganz.
Nenne ich die Variable
var
Edits : Array[0..5] of TEdit;
Dann muss ich doch zumindest mit TEdit.Create die Edits erzeugen. Mache ich dass, so werden Sie zwar erzeugt, sind jedoch mirgends auf meiner Form zu sehen! Auch wenn ich Edits[0].visible := True, ..., setzte!
Wie bekomme ich die Edits auf meiner form zur Erscheinung?
_________________ Aus dieser hohlen Gasse muss er kommen
Guesse Lutz
|
|
Wolff68
      
Beiträge: 302
Erhaltene Danke: 1
WinXP home
D6 Prof
|
Verfasst: Mo 14.07.03 23:48
Du musst den Edits noch mitteilen, WO sie erscheinen sollen.
Sprich, die brauchen ein Übergeordnetes Element .Parent
Nach einem Edit[n].Parent := Form1; sollten die Edits auch erscheinen.
(Netter weise erst mal alle übereinander... Musst halt auch noch positionieren...)
_________________ "Der Mensch ist nicht was er sich vorstellt oder wünscht zu sein, sondern das was andere in ihm sehen."
|
|
Popov
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: Di 15.07.03 00:04
Das ist ein drei Wochen alter Beitrag. Hätte der Frager Interesse an weiteren Vorschlägen, dann hätte er sich noch mal gemeldet
Also nicht zu viel Mühe machen. Eigentlich hab ich auch schon ein Beispielcode geschreiben bis ich merkte, daß sein Programm wahrscheinlich schon längst fertig ist.
_________________ Popov
|
|
Wolff68
      
Beiträge: 302
Erhaltene Danke: 1
WinXP home
D6 Prof
|
Verfasst: Di 15.07.03 14:11
Ups, hatte gar nicht auf das Datum geachtet.
Nun, aber vielleicht benutzt ja doch mal jemand die Suchfunktion und findet diesen Thread (OkOk. Träumen darf man ja, oder?)
_________________ "Der Mensch ist nicht was er sich vorstellt oder wünscht zu sein, sondern das was andere in ihm sehen."
|
|
lb
      
Beiträge: 27
Win98, win2000, winxp, linux
D5,Kylix
|
Verfasst: Mi 16.07.03 22:24
Titel: Danke
Vielen Dank,
Wolf68, jetzt funktioniert es! Auch wenn dieser Beitrag 3 Wochen alt ist, mich hat das mit den Arrays von Edits interresiert. Ich wusste, in VB kann man das machen, jedoch nicht wie das in Delphi geht.
_________________ Aus dieser hohlen Gasse muss er kommen
Guesse Lutz
|
|
Terra23
      
Beiträge: 872
Win 8
Delphi 7
|
Verfasst: Mi 16.07.03 22:43
Verkehrte Welt, hä? Das ist echt lustig. Eine(r) eröffnet einen Beitrag und ein(e) andere(r) bedankt sich. 
_________________ Hasta La Victoria Siempre
|
|