Autor Beitrag
xilos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59



BeitragVerfasst: Do 30.11.06 17:26 
hi...
....und wieder zum kalorienrechner ^^
und zwar funktioniert jetzt fast alles wunderbar...außer das er komischer weiße etwas ausrechnet obwohl er das gar nicht soll ^^
ausblenden volle Höhe Delphi-Quelltext
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:
procedure TForm1.Button1Click(Sender: TObject);
var zahl1 : integer;
var bonus: integer;
begin

if (edit1.text='0'or  (radiogroup1.itemindex=-1then
  showmessage ('Sie haben die Angaben vergessen!!!')

else
edit2.text    := '0' ;

edit3.Text    := '0'  ;

zahl1         := StrToint (edit1.text);

edit2.text    := intToStr (zahl1*24);


  if RadioGroup1.ItemIndex = 0 then
    bonus := StrToInt(Edit2.Text)  div 3;

  if RadioGroup1.ItemIndex = 1 then
    bonus := StrToInt(Edit2.Text)  * 2 div 3;

  if RadioGroup1.ItemIndex = 2 then
    bonus := StrToInt(Edit2.Text) ;

edit3.text := inttostr((strtoint(Edit3.text)*24)+ bonus);


Label4.Caption := Format('Sie benütigen am Tag %d Kilokalorien', [StrToIntDef(Edit2.Text, 0) +
                                                                  StrToIntDef(Edit3.Text, 0) ]);

end;

end.


das ist der quelltext...
wenn ich jetzt im ersten editfeld die null drin lasse dann müsste er eigentlich nur eine fehlermeldung ausspucken...er zeigt jedoch im edtifeld 3 irgendeine zahl an von der ich keine ahnung habe wo die her kommt :S
könnt ihr mir helfen?? findet ihr vll den fehler??

thx jetzt schon mal


Moderiert von user profile iconChristian S.: Topic aus VCL (Visual Component Library) verschoben am Do 30.11.2006 um 16:53
Einloggen, um Attachments anzusehen!
xilos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59



BeitragVerfasst: Do 30.11.06 17:27 
entschuldigung ein kleiner aber wichtiger fehler...
wenn ich die null drin eine zahl bei gewicht eingebe und keinen radiobutton anklicke kommt unten eine zahl ^^ (ich weiß immer noch nicht warum)
aim65
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 312

Win 9x, Win XP
Delphi 3pro, 7PE
BeitragVerfasst: Do 30.11.06 17:33 
Tippe mal, daß bei Edit1.Text :='0' die zugehörige Zahl1 nicht gelöscht, d.h. explizit auf Null gesetzt wird. Also steht im Fehlerfall wahrscheinlich die zuletzt verwendete Zahl drin.

Edit: War wohl nicht der Fehler, mal wieder Schnellschuß. Ich denke mal, daß der Index in einer einmal aktivierten RadioGroup eigentlich nicht mehr -1 sein kann, da immer ein Button aktiviert ist. (Oder setzt Du das irgendwo auf -1 ?) in dem Fall wird die Fehlerroutine ja nie mehr angesprungen.


Zuletzt bearbeitet von aim65 am Do 30.11.06 17:42, insgesamt 1-mal bearbeitet
xilos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59



BeitragVerfasst: Do 30.11.06 17:35 
was kann ich denn noch anstatt der 0 nehmen damit das feld immer wieder gelöscht wird und das mit der if funktion funktioniert???
aim65
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 312

Win 9x, Win XP
Delphi 3pro, 7PE
BeitragVerfasst: Do 30.11.06 17:44 
:oops: guck mal mein Edit - war ein bißchen zu langsam...
xilos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59



BeitragVerfasst: Do 30.11.06 17:47 
jaja hab ich gesehn ^^ aber ich muss das in der if funktion ja auf -1 setzen weil die fehlermeldung ja nur kommen soll, wenn kein radiobutton aus der group angewählt ist ^^ oder gibts da etwa noch ne andre möglichkeit??
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 30.11.06 17:49 
was ist wenn in deinem edit 00 oder 00000 oder 0000000000000 steht ? was machste dann ?

mfg
xilos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59



BeitragVerfasst: Do 30.11.06 17:51 
hmm dann hab ich ein prob ^^
deswegen frag ich ja x) kennt da einer ne andre lösung??
aim65
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 312

Win 9x, Win XP
Delphi 3pro, 7PE
BeitragVerfasst: Do 30.11.06 17:57 
Also, ich kenne nur die Tatsache, daß in einer RadioGroup immer ein Button gesetzt ist. Bist Du sicher, daß Du den Index wirklich in dem Programm auf -1 gesetzt hast, bevor die Möglichkeit mit Button1.Click gegeben ist?
Ich würde einfach nach einer erfolgreichen Berechnung einen "Start"-Button oder so nehmen, der alle alten Eingaben löscht und dann erst wieder neue Eingaben erlaubt. Sonst fällt mir auf die Schnelle nix ein. Muß jetzt leider erst mal weg.
xilos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59



BeitragVerfasst: Do 30.11.06 18:16 
dankeschön ich habe den itemindexx einfach auf 0 gestellt ^^
das war glaub ich die einfachste lösung..danke für den tip aim ^^
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 30.11.06 18:23 
user profile iconxilos hat folgendes geschrieben:
hmm dann hab ich ein prob ^^
deswegen frag ich ja x) kennt da einer ne andre lösung??


ausblenden Delphi-Quelltext
1:
if strtoint(edit1.text) = 0 then					
Dragonclaw
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 196

Windows Vista
Delphi 7 Prof.
BeitragVerfasst: Do 30.11.06 18:42 
du hast vergessen, ein Begin NACH dem Else einzufügen, weil er soll ja alles was danach kommt nur machen wenn die Angaben vollständig sind. Einfach noch ein End; am Ende dran packen. Fertig

Hoffe ich wenigsten doch :).