Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Immer +1 nehmen (https://www.delphipraxis.net/128910-immer-1-nehmen.html)

Sereby 9. Feb 2009 10:10

Re: Immer +1 nehmen
 
Delphi-Quellcode:
edit2.Text := str;
zahl1 := strtofloat(edit1.text);
zahl2 := strtofloat(edit2.text);
ergebnis := Inc(zahl1,zahl2);
edit3.text := floatToStr(ergebnis);

nahpets 9. Feb 2009 10:14

Re: Immer +1 nehmen
 
Hallo,
Zitat:

Zitat von luckys41
Entschuldigen sie das ich mich falsch ausgedrückt habe, der Fehler tritt auf bei der Berechnung.

Nach Edit3 kommt kein Code mehr.

wie kommt denn dann die 11 nach Edit3.Text, ist Edit3.Text schon entsprechend vorbelegt?

luckys41 9. Feb 2009 13:13

Re: Immer +1 nehmen
 
Ok es funktioniert mit dem Code :

Code:
str := Socket.ReceiveText;
   zahl1 := strtofloat(edit1.text);
 zahl2 := strtofloat(str);
ergebnis := zahl1+zahl2;
edit3.text := floatToStr(ergebnis);
Aber ich will das es immer +1 genommen wird und nicht auf 2 bleibt

In dem Client ist ein Timer von 4 Sekunden und jede 4te Sekunde sendet er eine 1 an den Server.

Aber wie kann ich es realisieren das es immer +1 genommen wird?

Mit freundlichen Grüßen,
luckys41

SirTwist 9. Feb 2009 13:24

Re: Immer +1 nehmen
 
Hi,

Zitat:

Zitat von luckys41
Aber wie kann ich es realisieren das es immer +1 genommen wird?

wieso machst Du diese grauenhaften Konvertierungen von String nach Zahl und zurück? Speicher die Anzahl der "1"en in einer lokalen Variable, die du jedesmal um eins erhöhst, wenn Du vom Server etwas bekommen hast. Und diese Zahl schreibst Du dann in Dein Edit-Feld. Wozu ist das eigentlich ein Edit-Feld? Soll das irgendwer ändern können?

Delphi-Quellcode:
  str := Socket.ReceiveText;
  zahl1 := StrToFloatDef(str, 0);
  Anzahl := Anzahl + zahl1;
  Edit1.Text := FloatToStr(Anzahl);
Gruß,
Sir Twist

luckys41 9. Feb 2009 13:39

Re: Immer +1 nehmen
 
Danke, für die Antwort allerdings bleibt die 1 stehen in dem Edit Feld :/.

Ich verstehe es nicht mit der Anzahl es ist doch ein String und welche Zahl beinhaltet er?

lg

mquadrat 9. Feb 2009 13:49

Re: Immer +1 nehmen
 
Wie du oben siehst wird ein "FloatToStr(Anzahl)" gemacht. Sprich Anzahl ist kein String, sondern ein Float. Anzahl muss an einer übergeordneten Stelle deklariert werden und nicht in der Methode selber. Sonst fängt er immer mit 0 an.

nahpets 9. Feb 2009 13:52

Re: Immer +1 nehmen
 
Hallo,
bitte teile uns mal mit, was da jeweils bei rauskommt:
Delphi-Quellcode:
  str := Socket.ReceiveText;
ShowMessage(str);
  zahl1 := StrToFloatDef(str, 0);
ShowMessage(FloatToStr(Zahl1));
  Anzahl := Anzahl + zahl1;
ShowMessage(FloatToStr(Anzahl));
  Edit1.Text := FloatToStr(Anzahl);
ShowMessage(Edit1.Text);
Falls hier
Delphi-Quellcode:
  zahl1 := StrToFloatDef(str, 0);
ShowMessage(FloatToStr(Zahl1));
immer 0 rauskommt, ändere das mal bitte in
Delphi-Quellcode:
  zahl1 := StrToFloatDef(str, 1);
ShowMessage(FloatToStr(Zahl1));
Sollte str immer leer sein, dann mache es so:
Delphi-Quellcode:
Edit1.Text := FloatToStr(StrToFloatDef(Edit1.Text,1));

luckys41 9. Feb 2009 14:54

Re: Immer +1 nehmen
 
Es kommt immer eine Messsage Box mit einer 1.

nahpets 9. Feb 2009 15:15

Re: Immer +1 nehmen
 
Hallo,

wo hast Du Anzahl definiert? Als globale Variabel oder in der Methode, die die Addition vornehmen soll?
Anzahl muss global definiert sein und einmal mit 0 initialisiert werden.

Oder probiere mal, ob Du ausschließlich mit
Delphi-Quellcode:
Edit1.Text := FloatToStr(StrToFloatDef(Edit1.Text,1) + 1);
auskommst. Von der Aufgabenstellung her, sollte das eigentlich reichen.

SyntaxXx 9. Feb 2009 21:33

Re: Immer +1 nehmen
 
Also im einfachsten falle wäre es so:

x : x + 1


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz