Autor Beitrag
chriss1988
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 389

windows xp prof,home,windows98
delphi5
BeitragVerfasst: 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.


ausblenden 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             //kein radiobutten gedrückt
    radioButton2.checked='false' and
    radioButton3.checked='false' then
    showmessage('!!ERROR!!,bitte wählen sie eine Währung aus');


Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt.
master_j
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 17

WIN 98, WIN XP
D5 Pers
BeitragVerfasst: Mi 07.12.05 11:01 
hi chriss!
nimm doch einfach mal die anführungszeichen von deinem false weg.
ausblenden Delphi-Quelltext
1:
2:
3:
    if radioButton1.checked=false and             //kein radiobutten gedrückt  
    radioButton2.checked=false and  
    radioButton3.checked=false then


Grüße
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: 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.
ausblenden 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             //kein radiobutten gedrückt
    (not radioButton2.checked) and
    (not radioButton3.checked) then
    showmessage('!!ERROR!!,bitte wählen sie eine Währung aus');
chriss1988 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 389

windows xp prof,home,windows98
delphi5
BeitragVerfasst: 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

ausblenden 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 user profile iconraziel: Delphi-Tags hinzugefügt.
master_j
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 17

WIN 98, WIN XP
D5 Pers
BeitragVerfasst: Mi 07.12.05 11:15 
hi chriss!

Ist deine Edit-komponente zu beginn leer?
Abhilfe könnte evtl. eine if-abfrage schaffen.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
if edit1.text = '' then //zu Beginn von Button1click einfügen
begin
showmessage('Bitte geben Sie einen Betrag ein!');
edit1.setfocus;
exit;
end;


Grüße
master_j
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 17

WIN 98, WIN XP
D5 Pers
BeitragVerfasst: 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.
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 389

windows xp prof,home,windows98
delphi5
BeitragVerfasst: Mi 07.12.05 11:25 
ja ist es ich hab es durch

ausblenden 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)

ausblenden 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;    //löscht die aktivierung des buttons
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 user profile iconraziel: Delphi-Tags hinzugefügt.
chriss1988 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 389

windows xp prof,home,windows98
delphi5
BeitragVerfasst: Mi 07.12.05 11:29 
user profile iconmaster_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.
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 389

windows xp prof,home,windows98
delphi5
BeitragVerfasst: Mi 07.12.05 11:40 
ich hab keine checkbox
chriss1988 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 389

windows xp prof,home,windows98
delphi5
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: 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...