Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Aktion darf nur alle 3 Sekunden ausgeführt werden. (https://www.delphipraxis.net/99369-aktion-darf-nur-alle-3-sekunden-ausgefuehrt-werden.html)

pstruh 11. Sep 2007 09:49

Re: Aktion darf nur alle 3 Sekunden ausgeführt werden.
 
Schreibe GetTickCount, mit Cursor 'draufgehen, F1 drücken, dann wird (bei mir) ein Hilfetext angezeigt. Ist 'ne Funktion, Ergebnis ist vom Typ DWord, gibt die Zeit in Millisekunden seit dem WindowsStart an. Also kannst du beim zweiten Aufruf die Zeitdifferenz in Millisekunden bestimmen...

pstruh 11. Sep 2007 09:50

Re: Aktion darf nur alle 3 Sekunden ausgeführt werden.
 
Ja klar, vom Typ DWord :wink:

N30N 11. Sep 2007 09:58

Re: Aktion darf nur alle 3 Sekunden ausgeführt werden.
 
Delphi-Quellcode:
  begin
    Test := Gettickcount;
    Ergebniss := Gettickcount - Test;
    if Ergebniss > 3 then
      shellexecute(handle,'open',pchar('mplayerc.exe'),pchar(video1),nil,sw_show);
    end;
Meint ihr das stimmt so?

pstruh 11. Sep 2007 10:01

Re: Aktion darf nur alle 3 Sekunden ausgeführt werden.
 
Hm, die Prüfung ergibt wohl alle drei Millisekunden ein TRUE, also besser 3*1000 ...

pstruh 11. Sep 2007 10:02

Re: Aktion darf nur alle 3 Sekunden ausgeführt werden.
 
ach so, dann auch noch den StartZeitpunkt zurücksetzen, d.h. neu lesen

pstruh 11. Sep 2007 10:04

Re: Aktion darf nur alle 3 Sekunden ausgeführt werden.
 
Ja, und überhaupt - du darfst natürlich nicht direkt hintereinander 2x GetTickCount lesen, das geht ja nun leider überhaupt nicht ...
Lese doch bitte noch mal in Ruhe die Handlungsvorgabe von Klaus!

N30N 11. Sep 2007 10:27

Re: Aktion darf nur alle 3 Sekunden ausgeführt werden.
 
Zitat:

beim ertsen klicken die Zeit speichern (GetTickCounts)
beim nächsten klicken wieder GetTickCount aufrufen und den Zeitunterschied
ermitteln. Ist er kleiner als 3 Sekunden -> mache nichts
Ist er größer oder gleich 3 Sekunden -> Zeit neu setzen und führe Aktionen aus.
Wie schon gesagt, das ist einfach zu hoch für mich. Geht es auch etwas verständlicher, wenn möglich in Code Form? Wenn ich Code sehe, hilft mir das immer am Meisten.

pstruh 11. Sep 2007 10:31

Re: Aktion darf nur alle 3 Sekunden ausgeführt werden.
 
Hm, im Prinzip gern, musst aber noch ein bisschen warten (habe jetzt einen Bürotermin) Vielleicht hilft in der Zwischenzeit ja ein Anderer. Schaue aber nachher noch mal 'rein und helfe sonst gern weiter.
Gruß

N30N 11. Sep 2007 10:37

Re: Aktion darf nur alle 3 Sekunden ausgeführt werden.
 
Also ich hab folgende globale Variablen:

Delphi-Quellcode:
  Zeit : integer;
  Zeit2 : integer;
  Ergebniss: integer;

Dann habe ich bei der Formcreate folgendes eingetragen:

Delphi-Quellcode:
  Zeit := Gettickcount;

In meiner Abfrage steht folgendes:

Delphi-Quellcode:
begin
    Zeit2 := Gettickcount;
    Ergebniss := Zeit - Zeit2;
    if Ergebniss > 3000 then
    shellexecute(handle,'open',pchar('mplayerc.exe'),pchar(video1),nil,sw_show);
    Zeit := Gettickcount;
  end;

Es geht nicht. Irgendwo hab ich nen Logikfehler. Das Video startet nicht einfach nicht.

mschaefer 11. Sep 2007 10:42

Re: Aktion darf nur alle 3 Sekunden ausgeführt werden.
 
< -3000


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:18 Uhr.
Seite 2 von 3     12 3      

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