![]() |
Funktion / Prozedur warten lassen bis...
Hallo,
wie kann ich es realisieren, dass eine eigene Funktion oder Prozedur auf ein Ergeinis wartet... Zum Beispiel auf das Ändern eines Edit-Feldes oder den Click auf einen Button? Danke! |
Re: Funktion / Prozedur warten lassen bis...
Hallo,
das wäre eine Möglichkeit:
Delphi-Quellcode:
Gesünder wäre es, wenn möglich nen Timer zu nehmen, oder es in der OnClick zu machen. :wink:
procedure TForm1.DoSomething;
begin // Mach was Clicked:=False; While not Application.Terminated {and Visible} do begin Sleep(10); // CPU schonen Application.ProcessMessages; If Clicked then begin // Mach was anderes Break; // Oder Exit; end; end; end; procedure TForm1.ButtonClick(...); begin Clicked:=True; end; |
Re: Funktion / Prozedur warten lassen bis...
Ja Super!
Jetzt weiß ich auch, was Application.ProcessMessages bedeutet! Danke! |
Re: Funktion / Prozedur warten lassen bis...
Mittels Sleep frierst du aber die ganze Anwendung ein, was überhaupt nicht von Vorteil ist. Gucke daher lieber nach
![]() |
Re: Funktion / Prozedur warten lassen bis...
Schon klar, aber habs einfach so gelöst:
Delphi-Quellcode:
Des war's schon *g*
[...]
while not Continue do Application.ProcessMessages; [nach dem Klicken] |
Re: Funktion / Prozedur warten lassen bis...
Geilomat,
da hat aber mal einer die Programmierung mit Ereignissen verstanden. :wink: |
Re: Funktion / Prozedur warten lassen bis...
??? :gruebel:
|
Re: Funktion / Prozedur warten lassen bis...
Welchen Sinn ergibt es denn, die Programmausführung künstlich zu unterbrechen, bis ein Ereignis eintritt? Um genau das besser zu machen, gibt es doch Ereignisse überhaupt! Sprich: Die Funktion, die dein Programm ausführen soll, wenn z.B. ein Button gedrückt wird, verknüpfst du mit dem OnClick-Ereignis.
|
Re: Funktion / Prozedur warten lassen bis...
Das hat schon seinen Sinn. Denke mal an die Technik der Splash-Screens..
|
Re: Funktion / Prozedur warten lassen bis...
Also für Splash-Screens hab ich ne andere Technik, da brauchts sowas nicht für.
Aber es kann schon mal (aber selten) vorkommen, das man um so eine (ungesunde) Programmierweise nicht herum kommt. |
Re: Funktion / Prozedur warten lassen bis...
Zitat:
Delphi-Quellcode:
Schau Dir doch mal im Taskmanager an, mit was für einer CPU-Auslastung Dein Programm sonst läuft...
[...]
while not Continue do begin Sleep(1); Application.ProcessMessages; end [nach dem Klicken] |
Re: Funktion / Prozedur warten lassen bis...
Ok! Mach ich
|
Re: Funktion / Prozedur warten lassen bis...
Ich bin mir zu 98% sicher, dass es sich, da es sich um eine Anfängerfrage handelt, nicht um diesen einen Fall für die Statistik handelt, in dem man tatsächlich so unsauber programmieren muss.
|
Re: Funktion / Prozedur warten lassen bis...
Zitat:
|
Re: Funktion / Prozedur warten lassen bis...
Ein
Delphi-Quellcode:
wäre auch noch angesagt. Bzw. auch ne Prüfung, im FormHide, FormClose/FormDestroy, sonst kanns zu ner netten AV kommen, wenn das Programm/Form einer zumacht während es in der Schleife ist...
while not Continue and not Application.Terminated do
Oder einer kann nicht mehr auf den Button klicken, um aus der Schleife zu gehen, wenn das Fenster unsichtbar ist :shock: :mrgreen: @Martin K: Jedesmal wenn ich auf Deinen Avatar gucke werd' iich immmmer sooo hyyypnotisiiiiiiiiiiertttttttttt :roteyes: :mrgreen: @Oxmyx: Auch Anfänger müssen aus Ihren Fehlern lernen :mrgreen: |
Re: Funktion / Prozedur warten lassen bis...
Bin schon lange kein Anfänger mehr.. aber ausgelernt hat nie jemand *g* Kann auch sein, dass sich jemand mal eine längere Zeit in anderen Aufgabenfeldern bewegt, in denen sowas nicht benötigt ist... So...!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz