Einzelnen Beitrag anzeigen

elliott

Registriert seit: 3. Apr 2006
17 Beiträge
 
Delphi 2005 Personal
 
#5

komplettes Beispiel

  Alt 3. Apr 2006, 17:11
Hier ein komplettes Beispiel.
Je nachdem ob mit einem offenen oder normalen Array probiert werden soll muss man nur die Klammern vor dem Beispiel setzen...

Delphi-Quellcode:
procedure testWFMO;
var
{  ThreadHandleListe: array of tHandle; {Beispiel 1}
  ThreadHandleListe: array[0..4] of tHandle; {Beispiel 2}
  WaitErgebnis: cardinal;
  cZaehler: cardinal;
begin
{  SetLength( ThreadHandleListe, 5 ); {Beispiel 1}
  for cZaehler:= 1 to length(ThreadHandleListe) do
    ThreadHandleListe[cZaehler -1]:= CreateEvent( nil,true, true, nil );
  WaitErgebnis:= WaitForMultipleObjects( length(ThreadHandleListe), @ThreadHandleListe, true, 0 );
writeln( WaitErgebnis );
  for cZaehler:= 1 to length(ThreadHandleListe) do
    CloseHandle( ThreadHandleListe[cZaehler -1] );
{  SetLength( ThreadHandleListe, 0 ); {Beispiel 1}
end;
So läuft {Beispiel 2} und das Ergebnis ergibt 0.
Wenn man vor {Beispiel 2} vorn noch eine Klmmer setzt und die anderen vorn entfernt, hat men {Beispiel 1}, welches $FFFFFFFF ergibt...

Dabei ist es nicht relevant ob man high oder length benutzt...
  Mit Zitat antworten Zitat