AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Immer +1 nehmen

Ein Thema von luckys41 · begonnen am 9. Feb 2009 · letzter Beitrag vom 10. Feb 2009
Antwort Antwort
Seite 2 von 3     12 3      
Sereby

Registriert seit: 31. Mär 2008
91 Beiträge
 
#11

Re: Immer +1 nehmen

  Alt 9. Feb 2009, 10:10
Delphi-Quellcode:
edit2.Text := str;
zahl1 := strtofloat(edit1.text);
zahl2 := strtofloat(edit2.text);
ergebnis := Inc(zahl1,zahl2);
edit3.text := floatToStr(ergebnis);
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#12

Re: Immer +1 nehmen

  Alt 9. Feb 2009, 10:14
Hallo,
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?
  Mit Zitat antworten Zitat
luckys41

Registriert seit: 9. Feb 2009
20 Beiträge
 
#13

Re: Immer +1 nehmen

  Alt 9. Feb 2009, 13:13
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
  Mit Zitat antworten Zitat
SirTwist

Registriert seit: 28. Sep 2006
196 Beiträge
 
Delphi XE Professional
 
#14

Re: Immer +1 nehmen

  Alt 9. Feb 2009, 13:24
Hi,

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
  Mit Zitat antworten Zitat
luckys41

Registriert seit: 9. Feb 2009
20 Beiträge
 
#15

Re: Immer +1 nehmen

  Alt 9. Feb 2009, 13:39
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
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#16

Re: Immer +1 nehmen

  Alt 9. Feb 2009, 13:49
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.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#17

Re: Immer +1 nehmen

  Alt 9. Feb 2009, 13:52
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:
Edit1.Text := FloatToStr(StrToFloatDef(Edit1.Text,1));
  Mit Zitat antworten Zitat
luckys41

Registriert seit: 9. Feb 2009
20 Beiträge
 
#18

Re: Immer +1 nehmen

  Alt 9. Feb 2009, 14:54
Es kommt immer eine Messsage Box mit einer 1.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#19

Re: Immer +1 nehmen

  Alt 9. Feb 2009, 15:15
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 mitEdit1.Text := FloatToStr(StrToFloatDef(Edit1.Text,1) + 1); auskommst. Von der Aufgabenstellung her, sollte das eigentlich reichen.
  Mit Zitat antworten Zitat
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#20

Re: Immer +1 nehmen

  Alt 9. Feb 2009, 21:33
Also im einfachsten falle wäre es so:

x : x + 1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:24 Uhr.
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