Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi FileRun nach einmaligem ausführen deaktivieren (https://www.delphipraxis.net/83416-filerun-nach-einmaligem-ausfuehren-deaktivieren.html)

vcore 2. Jan 2007 13:46


FileRun nach einmaligem ausführen deaktivieren
 
hallo zusammen,
habe ein kleines problem und konnte über sufu nichts finden.hoffe ihr könnt mir helfen,dürfte aber nicht so schwer sein.
bitte nachsicht da anfänger.

es handelt sich um ein programm für eine webcam.
dort habe ich eine procedure TForm1.OnMotionDetect
über eine matrize erkenne ich veränderung der pixel und bei bewegung soll eine datei (.exe) gestartet werden.
das funktioniert soweit nur das starten der exe macht probleme.diese soll nur einmal gestartet werden und nicht immer wieder wenn bewegung erkannt wird.

das ganze funktioniert im moment so:

procedure TForm1.OnMotionDetect ... usw.
Button2.Click; (der button ist unsichtbar und hat als action FileRun1)
end;

(über button 3 wähle ich vorher die exe,die gestartet wird wenn bewegung erkannt wird)

procedure TForm1.Button3Click(Sender: TObject);
begin
OpenDialog2.Execute();
FileRun1.FileName := OpenDialog2.FileName;
end;

das muss doch auch viel eleganter gehen ohne button2 und wichtig ist dass die ausgewählte exe nur einmal gestartet wird.
kann man FileRun1 irgendwie deaktivieren,sobald darüber die exe gestartet wurde?

bitte um nachsicht ob der unbeholfenen ausdrucksweise,danke


gruss vcore

hoika 2. Jan 2007 13:56

Re: FileRun nach einmaligem ausführen deaktivieren
 
Hallo,

klar geht das.

Boolean-Variable (bWasExecuted) im Form definieren,
im FormCreate bWasExecuted:= False;

und in der FileRunOnce

begin
if bWasExecuted then Exit;

// FileRun Code

bWasExecuted:= True;
end;


Heiko

Sascha L 2. Jan 2007 14:24

Re: FileRun nach einmaligem ausführen deaktivieren
 
und aus

Delphi-Quellcode:
procedure TForm1.OnMotionDetect ... usw.
Button2.Click; (der button ist unsichtbar und hat als action FileRun1)
end;
machst du bitte

Delphi-Quellcode:
procedure TForm1.OnMotionDetect ... usw.
FileRun1.Execute;
end;
Oder wenn du den Button eh überhaupt nicht brauchst, da er eh unsichtbar ist, dann lagerst du den Code in eine normale Procedur aus und rufst sie an dieser Stelle auf.

vcore 2. Jan 2007 14:56

Re: FileRun nach einmaligem ausführen deaktivieren
 
:thumb:

wusste erst nicht was mit FileRunOnce gemeint war.
hatte bWasExecuted dann über button 2 realisiert,die exe wurde dann nur einmal gestartet.

der zweite hinweis,button 2 ganz rauschzuschmeissen und durch filerun1.execute zu ersetzen war dann das i-tüpfelchen.


danke euch beiden ,super hilfe

:cheers:
gruss vcore


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