Einzelnen Beitrag anzeigen

js747a

Registriert seit: 11. Aug 2008
Ort: Nord hessen
43 Beiträge
 
Delphi 7 Enterprise
 
#1

Thread - in Modelbahnsteuerung

  Alt 18. Feb 2009, 21:01
Hallo, ich schreibe ein program zur steuerung einer Modellbahn.
Jetz soll das Programm im Hintergrund eine procedure ab-arbeiten.
Da habe ich gedacht ich versuche es mal mit einem Thread. Hiermit habe ich aber bisher keinerlei Erfahrung.

Mein Programm : (ich habe nur die Daten hier rein geschrieben die hierfur wichtig sind)


Delphi-Quellcode:
TFahrstrasse = class
   private
   public
     Procedure EreignisseListeErstellen;

End;

Var FahrstrassenListe[1..10] of of TFahrstrasse;
Im Program wird die procedure
FahrstrassenListe[x].EreignisseListeErstellen aufgerufen und diese schreibt
Ereignisse als String in eine Listbox.

Wie kan ich jetzt ein Thread starten der innerhalb der Fahrstrasse alle Ereignisse ab-arbeitet und sich dan wieder beendet.
So das wenn gleichzeitig mehrere Fahrstrassen gesetzt sind, auch mehrere Thread nebeneinander laufen.




Als beispiel habe ich diesen code probiert.

Delphi-Quellcode:
var ThreadID: DWORD; //Thread-ID
      ThreadHandle: THandle; //Rückgabewert von CreateThread

function UnserThread(zahl: integer): LongInt; stdcall;
var i : integer;
begin
// Sleep(200);
  For i:= 1 to 400 do Form1.Memo1.Lines.Add('UnserThread ' + intToStr(i));
  Form1.Memo1.Lines.Add('UnserThread ist fertig');
  Result:=0;
end;

procedure TGleisplanForm.Button1Click(Sender: TObject);
begin
  ThreadHandle:=CreateThread(nil, 0, TFNThreadStartRoutine(@UnserThread), nil, 0, ThreadID);
  if ThreadHandle<>0 then CloseHandle(ThreadHandle);
End;
Es funktioniert auch aber wie kan ich der Function UnserThread eine Variabele,
zb. FahrstrassenListe[1] zuweisen.

[edit=mkinzler]Delphi-Tags eingefügt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat