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]