Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Keine Rückmeldung beim rechnen (https://www.delphipraxis.net/16072-keine-rueckmeldung-beim-rechnen.html)

Patrick 9. Feb 2004 20:34


Keine Rückmeldung beim rechnen
 
Hallo, ich habe folgendes Problem:

Delphi-Quellcode:
procedure TForm1.rechnen;
var wert,i: longint;
begin
wert:=1;
repeat
  wert:=wert+1;
  prim:=true;
  Panel1.Caption:=floattoStr(wert);
  for i:=2 to wert-1 do
  begin
    if (wert MOD i) = 0 then
    begin
      prim:=false;
      {i:=wert-1;}
    end;
  end;
  if prim=true then Panel2.Caption:=floattoStr(wert);
until wert=10000{ 2147483647};
end;
Ich will mit dieser Prozedur alle Primzahlen ermitteln und in einem Panel anzeigen lassen.
Der Rest meines Programmes besteht nur noch aus einem Button, der die ganze Geschichte aktiviert.

Nun zu meinem Problem:
Wenn ich nun den Button drücke rechnet er fein, so wie's sein soll. Aber der Taskmanager zeigt zu meinem Programm an: Keine Rückmeldung.
Das ist ja eigentlich nicht das Problem, aber ich will, dass er mir immer die Aktuelle Zahl ausgibt, aber das macht er nicht, erst wenn er fertig mit rechnen ist. Aber während er noch rechnet kann ich auf der Oberfläche meines Programmes nichts drücken...

Also ich hoff einer von euch kann mir helfen, damit ich immer den aktuellen Wert anzeigen kann...

MikeS 9. Feb 2004 20:38

Re: Keine Rückmeldung beim rechnen
 
moin

du mußt während deiner rechnerei auch reaktionen von aussen wahrnehmen!

das machst du am besten mit

Delphi-Quellcode:
Application.processmessages

MrKnogge 9. Feb 2004 20:45

Re: Keine Rückmeldung beim rechnen
 
Probier mal:
Delphi-Quellcode:
{Damit deine Zahl ausgegeben wird}
Panel1.Caption:=floattoStr(wert);
Panel1.Refresh;

{Damit Windows nicht denkt, dein Programm sei abgeschmiert}
Application.processmessages;

empanyc 9. Feb 2004 21:13

Re: Keine Rückmeldung beim rechnen
 
Oder du packst die Primzahlberechnung in nen extra Thread.
Ist meiner Meinung die eleganteste Lösung, da man dann
auf Wunsch auch die Berechnung abbrechen kann.
Dein Programm läuft ja solange bis es fertig ist.

gruß
mario

Patrick 10. Feb 2004 16:18

Re: Keine Rückmeldung beim rechnen
 
Danke auch allen:
Delphi-Quellcode:
Application.processmessages
Das allein hat schon gereicht, jetzt zeigt er auch die aktuellen zahlen an!


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