Autor Beitrag
UNEC_1
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 16.01.04 18:49 
Also ich möchte den Inhalt eines Editfeldes von einem anderen Abziehen doch ers wenn das eine =< 0 ist!

Das sieht bei mir so aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var
a,b,c:=real;
begin

a:=strtofloat(edit1.text);
b:=strtofloat(edit2.text);
c:=strtofloat(edit3.text);

if a > 0 then
a:=a-b
else
c:=c-b;

a:=floattostr(edit1.text);
c:=floattostr(edit3.text);
end;


Das Problem welches esitiert ist das so wie das ausgeführt wird a automatich zu 0!
Und ich hab echt keinen schimmer warum!

Moderiert von user profile iconKlabautermann: Delphi-Tags hinzugefügt.


Zuletzt bearbeitet von UNEC_1 am Fr 16.01.04 19:18, insgesamt 1-mal bearbeitet
Ex0rzist
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 550

Win XP Prof.
Mandrake 10.0

D6
BeitragVerfasst: Fr 16.01.04 18:56 
Sorry, aber ich sehe keinen Sinn in deiner Prozedur.
Der Compiler müsste dir Warnungen ausgeben á la "Variable a wird niemals verwendet".

Du weist nämlich erst a den Wert von Edit1 zu, dann ziehst du b ab und weist anschließend wieder a den Wert von Edit1 zu, greifst aber nie auf a zu.

Nur wenn (a = b) oder (Edit1.Text = '0') ist, wird a zu Null.

_________________
If accidentally read, induce vomitting.
UNEC_1 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 16.01.04 19:01 
ten gefasst wenn schilde noch lebenspunkte haben ziehe schaden von schilden ab
else
ziehe schaden von hülle ab!

die fehler meldung kommt nur von b da diese nicht ausgeben wird aber ein wert hat! der vorher berechnet wurde!
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Fr 16.01.04 19:15 
Hallo,

dein Titel enspricht nicht unseren Richtlinien. Diese sagen zu dem Thema:

Delphi-Forum Richtlinien hat folgendes geschrieben:

1.1 Beiträge
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist. Eine Pseudocodezeile oder die Nennung des Objektes, um welches es sich in dem Beitrag handelt, helfen da schon mehr weiter.


Ändere bitte das den Titel, indem du deinen ersten Beitrag dieses Threads noch einmal Editierst. Einfach bei dem Beitrag auf Edit clicken, den Titel ändern und wieder auf Absenden.

Gruß
Klabautermann
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 16.01.04 19:21 
Ex0rzist hat folgendes geschrieben:
Sorry, aber ich sehe keinen Sinn in deiner Prozedur.

*hi hi* Da bist du nicht der Einzige.

Zitat:
Der Compiler müsste dir Warnungen ausgeben á la "Variable a wird niemals verwendet".

Nein, benutzt hat UNEC_1 ja alles, darum würde ich auf die Warnung nicht warten. Ich würde eher die Fehler beheben, die im Code drin sind.

UNEC_1 hat folgendes geschrieben:
die fehler meldung kommt nur von b da diese nicht ausgeben wird aber ein wert hat! der vorher berechnet wurde!

Entschuldige, mein Universalübersetzer ist gerade in der Werkstatt. Will sagen: Ich habe Probleme, diesen Satz zu verstehen, darum rate ich mal -

Im Edit1 steht der Wert für die Schilde, im Edit3 der für die Hülle. Und das Edit2 enthält den Schadenswert. Wenn ich die Fehler behebe und deinen Code dann laufen lasse, dann funktioniert es problemlos.
hassedelphi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101

WIN XP
D7 Enterprise
BeitragVerfasst: Fr 16.01.04 19:22 
so wie ich dass sehe is dein problem die ausgabe

ausblenden Delphi-Quelltext
1:
 editx.text:=floattostr(a);					


so müsste das doch aussehen oder?
und nicht so wie du zum schluss. da überschreibst du a ja wieder.

_________________
you're not be able to help, that you're an human
UNEC_1 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 16.01.04 19:30 
Ne also daran liegt es nicht das war nur ein schriebfehler von mir oben!
hier mal der Orginalcode(abber bitte nicht über die Variablen aufregen:));
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
aa:=strtofloat(sk.text);
bb:=strtofloat(hp.text);
cc:=strtofloat(vsk.text);
dd:=strtofloat(vhp.text);
ii:=strtofloat(edit2.text);
jj:=strtofloat(edit3.text);

if aa > 0 then
aa:=aa-jj
else
bb:=bb-jj;

if cc > 0 then
cc:=cc-ii
else
dd:=dd-ii;

sk.text:=FloatToStr(ee);
hp.text:=FloatToStr(ff);
vsk.text:=FloatToStr(gg);
vhp.text:=FloatToStr(hh);
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 16.01.04 19:47 
Sehr schön. Du rechnest wie wild mit den Variablen aa, bb, cc, dd rum, aber ausgeben tust du die nicht initialisierten Variablen ee, ff, gg, hh. Was erwartest du also?
UNEC_1 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 16.01.04 22:46 
Danke!
manchmal sieht den Wald vor lauter Bäumen nicht mehr!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 17.01.04 08:22 
Hättest du mal etwas sinnvollere Variablennamen genommen, wäre dir das nicht passiert. Da bin ich mir ziemlich sicher. :roll: