AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit While-Schleife

Ein Thema von daredd · begonnen am 20. Okt 2007 · letzter Beitrag vom 20. Okt 2007
Antwort Antwort
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#1

Probleme mit While-Schleife

  Alt 20. Okt 2007, 20:34
Hallo habe ein Problem, hab so ein kleines programm für einen Zufallszahlengenerator geschrieben.
Also es soll nach dem klick auf den button1 die berechnung und die ausgabe von zufallszahlen erfolgen bis man auf dem buttton2 drückt um abzubrechen.
Main laptop streikt aber sobal ich auf den button1 drücke fährt sich das programm fest, bzw. es passiert nichts.

!!! Ohne While-Schleife funktioniert es aber, al´so random und so !!!

Hier mein code:
Delphi-Quellcode:
procedure TFORM1.GibZahlen;
var
 x1, x2, x3, x4, x5, x6, x7, x8, x9 :Integer;
 begin
randomize;
x1 := (random(20)+1)*10;
x2 := (random(20)+1)*10;
x3 := (random(20)+1)*10;
x4 := (random(20)+1)*10;
x5 := (random(20)+1)*10;
x6 := (random(20)+1)*10;
x7 := (random(20)+1)*10;
x8 := (random(20)+1)*10;
x9 := (random(20)+1)*10;
Label10.Caption := Format('%d %d %d %d %d %d %d %d %d', [x1,x2,x3,x4,x5,x6,x7,x8,x9]);
Label1.height :=x1;
Label2.height :=x2;
Label3.height :=x3;
Label4.height :=x4;
Label5.height :=x5;
Label6.height :=x6;
Label7.height :=x7;
Label8.height :=x8;
Label9.height :=x9;
end;

procedure TForm1.Unendlich(Sender: TObject);
begin
while i > 0 do begin
GibZahlen;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
i := 1;
Unendlich(self);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if i > 0 then begin i := 0;
end;
end;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Probleme mit While-Schleife

  Alt 20. Okt 2007, 20:38
I wird auch innerhalb der While-Schleife nicht geändert.
Markus Kinzler
  Mit Zitat antworten Zitat
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#3

Re: Probleme mit While-Schleife

  Alt 20. Okt 2007, 20:41
was meinst du?
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Probleme mit While-Schleife

  Alt 20. Okt 2007, 20:41
Das Stichword heißt hier Application.ProcessMessages, denn in der Schleife gibst du dem Programm keine Möglichkeit, Button2Click aufzurufen. Du musst einfach noch Application.ProcessMessages in die Schleife einfügen. Das ist allerdings recht unelegant.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#5

Re: Probleme mit While-Schleife

  Alt 20. Okt 2007, 20:43
Und was wäre ein eleganter weg?
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Probleme mit While-Schleife

  Alt 20. Okt 2007, 20:46
Die eigentlich unelegante Sache an Application.ProcessMessages ist, dass es tendenziell viel zu oft aufgerufen wird, was zu Performance-Problemen führen kann. Fürs erste ist es aber okay.
Dann wäre da noch die Sache mit i. Wenn überhaupt, würde ich dafür eine boolean-Variable nehmen, denn eigentlich prüfst du ja nur auf true oder false.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:32 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