| Autor |
Beitrag |
chriss1988
      
Beiträge: 389
windows xp prof,home,windows98
delphi5
|
Verfasst: Mi 07.12.05 10:55
hi leutz
heb ein kleines Währungs umrechnungs programm geschrieben.
das funktioniert so:
1. du gibst n ein edit eine zahl x ein
2.dann klickst du einen radiobutton an
3.klickst auf einen button
4. im edit 2 steht eine umgewandelte zahl x
5.wenn man keinen radiobutten anklickt soll ne fehlermeldung kommen
so aber genau an dem punkt 5 der fehlermeldung hängt es bei mir.
er will mir patu keine fehlermeldung anzeigen
was hab ich falsch gemacht könnt ihr ma schaun.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm2.Button1Click(Sender: TObject); begin
Tauschgeld:=strtofloat(edit1.text);
If radiobutton1.checked then Betrag:=Tauschgeld/Dollar;
If radiobutton2.checked then Betrag:=Tauschgeld/Kronen;
If radiobutton3.checked then Betrag:=Tauschgeld/1000;
edit2.text:=floattostrf(Betrag,fffixed,9,2);
if radioButton1.checked='false' and radioButton2.checked='false' and radioButton3.checked='false' then showmessage('!!ERROR!!,bitte wählen sie eine Währung aus'); |
Moderiert von Gausi: Delphi-Tags hinzugefügt.
|
|
master_j
      
Beiträge: 17
WIN 98, WIN XP
D5 Pers
|
Verfasst: Mi 07.12.05 11:01
hi chriss!
nimm doch einfach mal die anführungszeichen von deinem false weg.
Delphi-Quelltext 1: 2: 3:
| if radioButton1.checked=false and radioButton2.checked=false and radioButton3.checked=false then |
Grüße
|
|
jasocul
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Mi 07.12.05 11:04
Theoretisch hätte das nicht mal compiliert werden können. Die Eigenschaft "Checked" ist vom Typ Boolean und du hattest einen String-Vergleich. Ändere das so, wie in meinen Änderungen zu sehen. Dann sollte es funktionieren.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm2.Button1Click(Sender: TObject); begin
Tauschgeld:=strtofloat(edit1.text);
If radiobutton1.checked then Betrag:=Tauschgeld/Dollar;
If radiobutton2.checked then Betrag:=Tauschgeld/Kronen;
If radiobutton3.checked then Betrag:=Tauschgeld/1000;
edit2.text:=floattostrf(Betrag,fffixed,9,2);
if (not radioButton1.checked) and (not radioButton2.checked) and (not radioButton3.checked) then showmessage('!!ERROR!!,bitte wählen sie eine Währung aus'); |
|
|
chriss1988 
      
Beiträge: 389
windows xp prof,home,windows98
delphi5
|
Verfasst: Mi 07.12.05 11:09
aha ok danke
nur noch ein problem
wenn ich nun nichts eingeb und auf umrechnen drücke dan bringt er mir als ergebnis nicht 0 sonder 1000.
wie kann das sein und wie muss ich das problem lösen.
2. wenn ich eine andere form aufrufen will muss ich doch
form2.showmodal eingeben doch wenn ich zb 5 seiten hab und ich will alle zusammen schließen wie muss ich das anstellen is heute habe ich das imm so gemacht
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm2.Button1Click(Sender: TObject); begin form2.showmodal; end;
procedure TForm2.Button2Click(Sender: TObject); begin close;
end; |
doch wenn ich es so mach dann bringt er mich immer wieder erst auf die form1 zurück und das is nervig wenn man 5 formen hatt und imm erst auf die vorrige seite geschickt wird und dann jede seite einzelnt beenden muss.
da für gibt es doch bestimmt eine einfachere variante
mfg
chriss (auch diddi genannt)
Moderiert von raziel: Delphi-Tags hinzugefügt.
|
|
master_j
      
Beiträge: 17
WIN 98, WIN XP
D5 Pers
|
Verfasst: Mi 07.12.05 11:15
hi chriss!
Ist deine Edit-komponente zu beginn leer?
Abhilfe könnte evtl. eine if-abfrage schaffen.
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| if edit1.text = '' then begin showmessage('Bitte geben Sie einen Betrag ein!'); edit1.setfocus; exit; end; |
Grüße
|
|
master_j
      
Beiträge: 17
WIN 98, WIN XP
D5 Pers
|
Verfasst: Mi 07.12.05 11:20
zu problem 2:
sind das nur 5 formulare? dann könntest du jeweils in das OnClose-Ereignis der Formulare den Befehl einfügen, alle restlichen Formulare zu schließen.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| procedure form1close(sender: TObject); begin form2.close; form3.close; form4.close; form5.close; end; |
nicht besonders spektakulär, könnte aber den zweck erfüllen...
|
|
chriss1988 
      
Beiträge: 389
windows xp prof,home,windows98
delphi5
|
Verfasst: Mi 07.12.05 11:25
ja ist es ich hab es durch
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| procedure TForm2.FormActivate(Sender: TObject); begin edit1.clear; edit2.clear; edit1.setfocus; end; |
gecleart.
der fehler trit auch nur ein, wenn ich bereits scon einmal etwasberrechnet hab und dan durch den button löschen
alles gecleart hab und dan nochmals ohne das programm vorher beendet zuhaben
eine neue rechnung durschgeführt habe dann bringt er das selbe ergebnis wie bei der vorigen rechnung
zb.
ich hab vorher 1000*0.80 gerechnet ales peer button gecleart sogar die radiobuttons
(das finktioniert einbernd frei)
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm2.Button3Click(Sender: TObject); begin edit1.clear; edit2.clear; edit1.setfocus; radioButton1.checked:=false; radioButton2.checked:=false; radioButton3.checked:=false;
end; |
nur dan gebe ich eine zahl in edit 1 ein und drücke sofort auf umrechnen ohne einen radiobutton anzuklicken und dann soll er mir eine fehlermeldung bringen und im edit2 0 anzeigen.
doch was macht der er zeigt mir ne fehler meldung und das ergebnis von der vorrigen rechnung (1000*0.80)
Moderiert von raziel: Delphi-Tags hinzugefügt.
|
|
chriss1988 
      
Beiträge: 389
windows xp prof,home,windows98
delphi5
|
Verfasst: Mi 07.12.05 11:29
master_j hat folgendes geschrieben: | zu problem 2:
sind das nur 5 formulare? dann könntest du jeweils in das OnClose-Ereignis der Formulare den Befehl einfügen, alle restlichen Formulare zu schließen.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| procedure form1close(sender: TObject); begin form2.close; form3.close; form4.close; form5.close; end; |
nicht besonders spektakulär, könnte aber den zweck erfüllen... |
das war nur en beispiel hab auch welche da sind es mehr.
aber danke so klappt es
|
|
Miri
      
Beiträge: 657
Delphi 3 Prof., Delphi 2005 PE
|
Verfasst: Mi 07.12.05 11:39
Du bekommst dann was angezeigt, weil du Edit2 etwas zuweist BEVOR du guckst, ob irgendwelche Checkboxen angeklickt sind.
Setz mal die Prüfung für die Checkbox an den anfang und nur, wenn eine ausgewählt ist, soll die Rechnung durchgeführt werden...
|
|
chriss1988 
      
Beiträge: 389
windows xp prof,home,windows98
delphi5
|
Verfasst: Mi 07.12.05 11:40
|
|
chriss1988 
      
Beiträge: 389
windows xp prof,home,windows98
delphi5
|
Verfasst: Mi 07.12.05 11:51
ich habs selber gelöst war ganz simpel
if (not radioButton1.checked) and //kein radiobutten gedrückt
(not radioButton2.checked) and
(not radioButton3.checked) then
showmessage('!!ERROR!!,bitte wählen sie eine Währung aus');
betrag:=0;
danke für alle lösungen
|
|
Miri
      
Beiträge: 657
Delphi 3 Prof., Delphi 2005 PE
|
Verfasst: Mi 07.12.05 11:54
Sorry, aber du wirst doch wohl verstanden haben, was ich meinte?!
Ob da nu Checkbox oder Radiobutton steht, dürfte fürs Prinzip reichlich uninteressant sein...
|
|