Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Integer + zählen (https://www.delphipraxis.net/173814-integer-zaehlen.html)

gee21 18. Mär 2013 12:56

Integer + zählen
 
Halli Hallo

Also ich habe mal wieder etwas merkwürdiges, das ich mir nicht erklären kann.

Ich habe ein Code mit einer Schlaufe


Delphi-Quellcode:
var
igefunden: integer;

begin
igefunden:=0;

repeat
...
...
igefunden:=igefunden+1
label1.caption:=inttostr(igefunden);
until igefunden = 500;

end;
Das merkwürdige ist, das je nach dem wo ich diesen Code einpflanze, es manchmal funktioniert und wenn ich es an einem anderen Ort pflanze es dann ganz merkwürdig hohe Resultate gibt.

Wenn es funktioniert, zählt es schön von 0 - 500

Wenn es nicht funktioniert, ist der erste Wert im Label (also auch der Integer) bereits bei 4532545
Ebenfalls wird dieser Wert nicht weiter hochgezählt er bleibt einfach bei 4532545 (Es müsste Ihn ja ins unendliche weiterzählen da
Delphi-Quellcode:
until igefunden = 500
nie erreicht werden kann.

Wie / Von wo kommt das?

Medium 18. Mär 2013 12:59

AW: Integer + zählen
 
Du hast an anderen Stellen das
Delphi-Quellcode:
igefunden := 0;
vergessen. Delphi warnt dann auch, dass die Variable nicht initialisiert ist. Hintergrund: Lokale Variablen werden nicht mit einem definierten Wert vorbelegt, sondern es steht das drin, was dein oder ein anderes Programm zuvor mal an diese Speicherstelle geschrieben hat.

gee21 18. Mär 2013 13:02

AW: Integer + zählen
 
Hmm

Ich verwende aber diesen Integer nur in dieser Schlaufe. Habe Ihn extra unbenannt um so etwas zu vermeiden. Oder kommt es auf den Namen gar nicht drauf an? Nimmt Delphi den einfach die Zahl aus einer anderen (des letzten benutzen) Integer?

DeddyH 18. Mär 2013 13:05

AW: Integer + zählen
 
Wie schon gesagt werden lokale Variablen nicht initialisiert. Hast Du auch überall das anfängliche Setzen auf 0 mit drin?

gee21 18. Mär 2013 13:09

AW: Integer + zählen
 
:-D Ach so. Jetzt hat klick gemacht.

bei
Delphi-Quellcode:
else Begin
hat gefehlt :-D


Danke euch beiden

Medium 18. Mär 2013 13:27

AW: Integer + zählen
 
Welches else? :gruebel:

Furtbichler 18. Mär 2013 13:35

AW: Integer + zählen
 
Zitat:

Zitat von Medium (Beitrag 1207888)
Welches else? :gruebel:

Vielleicht heißt seine Frau so.

stahli 18. Mär 2013 13:49

AW: Integer + zählen
 
Ach manno, ist doch klar, dass er nicht den ganzen Quelltext gepostet hat.
Kein Grund, nachzutreten...

Andreas L. 18. Mär 2013 15:14

AW: Integer + zählen
 
Falls das Label trotz richtigen Codes mal den(die) neuen Wert(e) nicht anzeigt hilft ein Label1.Refresh nach dem zuweisen der Caption.

gee21 21. Mär 2013 13:30

AW: Integer + zählen
 
Zitat:

Zitat von Furtbichler (Beitrag 1207890)
Zitat:

Zitat von Medium (Beitrag 1207888)
Welches else? :gruebel:

Vielleicht heißt seine Frau so.

:-D Ihr seit mir Lustige :-D

Ja habe nicht den ganzen Code geschrieben. stahli hat das richtig erkannt :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:07 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