HAllo,
Hallo Basilikum,
so ähnlich hatte ich es mir auch gedacht.
Hab mal einen anderen Ansatz verfolgt:
PROCEDURE TTestform.m_TimerTimer(Sender: TObject);
VAR
T_ARR: ARRAY OF T_TestThread;
i: Integer;
Begin
SetLength(T_ARR, 10);
FOR i := 1 TO 10 DO
T_ARR[i] := T_TestThread.Create(i);
End;
###############
Thread-
Unit
UNIT AddressVerifaction;
INTERFACE
USES
Classes;
TYPE
T_TestThread= CLASS(TThread)
private
Buchstabe: Integer;
PROCEDURE UpdateMemo;
{ Private-Deklarationen }
protected
PROCEDURE Execute; override;
public
CONSTRUCTOR Create(aBuchstabe: Integer);
END;
VAR
B: STRING;
IMPLEMENTATION
USES SysUtils, main;
CONSTRUCTOR T_TestThread.Create(aBuchstabe: Integer);
BEGIN
INHERITED Create(True);
Buchstabe := aBuchstabe;
FreeOnTerminate := True;
Resume;
END;
PROCEDURE T_TestThread.Execute;
VAR
i: Integer;
BEGIN
FOR i := 1 TO 1000 DO
BEGIN
TRY
B:=chr(Buchstabe + 65) + ':' + intToStr(i);
Synchronize(UpdateMemo);
EXCEPT
ON e:
Exception DO
BEGIN
B:=chr(Buchstabe + 65) + ':' + intToStr(i) + '#' + E.Message;
Synchronize(UpdateMemo);
END;
END;
END;
{ Thread-Code hier einfügen }
END;
PROCEDURE T_TestThread.UpdateMemo;
BEGIN
Testform.MnoReport.lines.add(b);
END;
END.
####
Bekomme aber nach Abarbeitung des Codes:
1. EInvalidPointer
2. EOSError:Systemfehler. Code 5
Was kann das sein??
Gruss Frickel