AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Abarbeiten von Befehlen - Reihenfolge etc.
Thema durchsuchen
Ansicht
Themen-Optionen

Abarbeiten von Befehlen - Reihenfolge etc.

Ein Thema von snapman · begonnen am 29. Mai 2006 · letzter Beitrag vom 30. Mai 2006
Antwort Antwort
snapman
(Gast)

n/a Beiträge
 
#1

Abarbeiten von Befehlen - Reihenfolge etc.

  Alt 29. Mai 2006, 23:53
Hallo,
hätte mal eine interessante Frage:

Also ich hab folgenden Code:

Delphi-Quellcode:
code vor timer
timer1.Enabled:=true;
code nach timer
Wenn der Code so ist dann führt Delphi die Befehle die nach dem Timer kommen sofort aus, ohne zu warten.....
Nun habe ich mal das ganze etwas modifiziert:

Delphi-Quellcode:
code vor timer
timer1.Enabled:=true;
while timer1.Enabled=true do Application.ProcessMessages;
code nach timer
und nun wartet delphi bis der timer abgearbeitet ist und führt dann erst den code nach dem timer aus

könnt ihr mir erklären wie das delphitechnisch zusammenhängt?
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: Abarbeiten von Befehlen - Reihenfolge etc.

  Alt 29. Mai 2006, 23:56
Hi!

Wieso das so ist?
Soweit ich das richtig verstehe, dann "hängt" Delphi doch in der while-Schleife fest, bis diese (und damit der Timer) fertig ist und macht erst dann weiter!


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
snapman
(Gast)

n/a Beiträge
 
#3

Re: Abarbeiten von Befehlen - Reihenfolge etc.

  Alt 30. Mai 2006, 00:14
hm stimmt du hast recht

ist die lösung so akzeptabel oder gibt es ne elegantere lösung für das problem?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Abarbeiten von Befehlen - Reihenfolge etc.

  Alt 30. Mai 2006, 07:14
Guten Morgen,

wozu brauchst Du denn so ein Konstrukt?
Ein Timer ist doch gerade dazu da unabhängig
wo das Programm gerade in der Verarbeitung ist
in bestimmten Zeitabständen etwas zu tun.

Wenn das Programm solange nichts machen soll
wenn der Timer enabled ist - der Sinn dazu verschließt sich
mir ein wenig.

Denn Timer.enabled = true heißt ja auch nur,
daß der Timer scharf geschaltet ist und nicht
ob die Timer Methode schon abgearbeitet wurde.
Es sei denn Du setzt den Timer.enabled := false
in der Timer Methode zurück.

Dann kannst Du das Konstrukt

Delphi-Quellcode:
code vor timer
timer1.Enabled:=true;
while timer1.Enabled=true do Application.ProcessMessages;
code nach timer
Delphi-Quellcode:
code vor timer
delay(Zeit)
code nach timer
Grüße
Klaus
Klaus
  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 22:37 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