AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Programm hängt bei Schleifen, warum?
Thema durchsuchen
Ansicht
Themen-Optionen

Programm hängt bei Schleifen, warum?

Ein Thema von c4t · begonnen am 1. Jun 2004 · letzter Beitrag vom 1. Jun 2004
Antwort Antwort
c4t

Registriert seit: 24. Dez 2003
24 Beiträge
 
Delphi 6 Enterprise
 
#1

Programm hängt bei Schleifen, warum?

  Alt 1. Jun 2004, 21:41
Hallo sehr geehrte Delphianer,

ich kann folgendes Problem schon seit einiger Zeit bei meinen verschiedenen kleinen "Hausaufgaben-Programmen" nicht lösen. Ich dachte, ich wende mich mal an euch.

Also in letzet Zeit musste ich viel mit relativ verstrikten (for-)Schleifen arbeiten, um bestimmte Werte auszurechnen (z. B. Primzahlen). Da nun es aber ziemlich lange dauern kann, wenn man einen großen Bereich zum Überprüfen angibt, dauern auch die Schleifen lange. In dieser Zeit hängt das ganze Programmfenster und es können auch keine neuen Ergeignisse in dieser Zeit entgegengenommen werden.

Ich würde aber gerne (unter anderem) ein Statusbalken einbauen, damit der Benutzer sofort sehen kann, wie lange es noch ungefährt dauert. Oder zum Beispiel ein "Abbrechen"-Button. Beide Sachen funktionieren während sie Schleife ausgeführt wird nicht. Wie kann ich dieses ändern? Also es so für Delphi hinschreiben, dass es die for-Schleife als "nicht soo wichtig" ansieht, und trotz der Ausführung andere Ereignisse entgegen nimmt.

Ich hoffe ihr versteht mein Problem.

Gruß

c4t
  Mit Zitat antworten Zitat
Anubis

Registriert seit: 17. Mai 2004
Ort: Biebelried
27 Beiträge
 
#2

Re: Programm hängt bei Schleifen, warum?

  Alt 1. Jun 2004, 21:46
füg in die schleife ein application.Processmessages ein.

macht die schleife allerdings langsamer wenn du es nur jeden x druchlauf machst is es schneller.

abbrechen über andern button geht dann auch (mit variable und if variable dann break)
Eine Mehrheit kann auch nur eine Ansammlung von Idioten sein.
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#3

Re: Programm hängt bei Schleifen, warum?

  Alt 1. Jun 2004, 21:47
Das geht ganz so simpel nicht. Allerdings könntet du in die for-Schleife (sie wird dadurch zwar noch langsamer...) ein Application.ProcessMessages einbauen. Dann wird immer dann das andere abgearbeitet. Dann könntest du zum beispiel eine globale Variable per ButtonKlick setzen, die dafür sorgt, dass die Schleife verlassen wird.

Für ein Fortschrittsbalken such mal hier nach ProgressBar. Das Problem ist halt, dass du vorher irgendwie abschätzen musst, wie lange es insgesamt geht. Und so Sachen, wie "der wird garnicht neu gezeichnet, nur am Schluss" wird dir die Suche nach ProgressBar beantworten.

mfg,
nailor
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
c4t

Registriert seit: 24. Dez 2003
24 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Programm hängt bei Schleifen, warum?

  Alt 1. Jun 2004, 21:53
Ich wusst doch, dass man sich auf euch verlassen kann.


Vielen Dank, die Tipps sind alles was ich brauchte. Nachlesen tu ich selbst .

Gruß

c4t
  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 09:34 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