1.定义的线程中有一个成员变量FListBox、FIndex和FInteger,FListBox是你要操作的那个
TListBox;FIndex是线程在ListBox中的序号;FInteger是你在操作的变量;
2.在线程的Create构造过程中写:
constructor TMyThread.Create(ListBox: TListBox);
begin
FInteger := 0;//对应于你过程中的i
FListBox := ListBox;
FIndex := FListBox.Items.AddObject('0', Self);//在线程还没有执行的时候取得序号
inherited Create(False);
end;
3.在线程中还有一个过程:
procedure TMyThread.ModifyInteger;
begin
FInteger := .....//按照你以前的设想操作为个变量
FListBox.Items[FIndex] := IntToStr(FInteger);//修改该项
end;
4.在线程的Execute过程中写:
procedure TMyThread.Execute;
begin
...
Synchronize(ModifyInteger);
...
end;