Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - TEvent.Create
gih9 - Mo 19.04.04 15:53
Titel: TEvent.Create
Hallo alle,
kann mir mal einer sagen wie ich bei TEvent.Create(...) die Parameter setzen muss damit es funktioniert. Hab folgendes probiert...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| var PicAnalysed : TEvent; begin ... PicAnalysed.Create(nil,False,False,''); PicAnalysed.WaitFor(INFINITE); PicAnalysed.Free ... end; |
Das Ziel ist es so lange zu warten bis ein anderer Teil des Programs ausgeführt wurde. Da wird das Evnet dann folgendermaßen ausgeführt...
Delphi-Quelltext
1: 2: 3:
| ... PicAnalysed.SetEvent ... |
Ist da n Fehler drin?
Also wenn ich das so starte dann krieg ich folgende Fehlermeldung...
| Zitat: |
| EAccessViolation with Message 'Access violation at Address ... in Module ... |
gih9 - Mo 19.04.04 16:28
Hab's selber rausgekriegt. So muss es sein...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| var PicAnalysed : TEvent; begin ... PicAnalysed := TEvent.Create(nil,False,False,''); PicAnalysed.WaitFor(INFINITE); PicAnalysed.Free ... end; |
Jedoch funktioniert das jetzt nicht so wie ich es mir vergestellt hatte. Das Program wartet nämlich jetzt unendlich. Der Teil des Programs auf den gewartet werden soll ist also auch gestoppt. Geht das so nicht oder mach ich was falsch? Also vor dem waitfor da lade ich ein Bild. Wenn das dann fertig geladen ist wird das onImageLoaded Event ausgeführt welches seinerseits die Prozedur zur Bildverarbeitung aufruft.
Damit ich mehrere Bilder zusammen auswählen kann und dann eins nach dem anderen zu anylysieren hab ich das mit waitfor versucht...
Irgendwelche Ideen???
Motzi - Mo 19.04.04 20:56
TEvent kapselt das Event Kernel-Objekt, das zur Thread-Synchronisation verwendet wird. Sofern du kein Mutlithreading verwendest legst du mit dem Aufruf von WaitFor deine gesamte Anwendung lahm..!
Du solltest das OnImageLoaded-Ereignis verwenden...
PS: Events unter Delphi haben eine ganz andere Bedeutung als das Kernel-Objekt aus der Win32-API..!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!