Hi Romber,
zuerstmal solltest Du ein property in Deiner Klasse anlegen:
Delphi-Quellcode:
type
TLIThread = class(TThread)
private
.
.
FLI : TListItem;
.
.
protected
.
.
public
.
.
property ListItem : TListItem read FLI write FLI;
.
.
end;
Mit der Eigenschaft kannst Du direkt auf den Thread zugreifen und einfach das List-Item ändern.
So, nun musst Du das Item auch noch in Deiner Anwendung, die den Thread bearbeitet, ändern. Dazu solltest Du den Thread jedoch anhalten, um Zugriffsverletzungen, bzw. Thread-Locks zu vermeiden:
Die Prozedur die ich verwende ist im Grunde genommen die gleiche, die auch Du verwendest, nur eben auf das ListItem angepasst:
Delphi-Quellcode:
.
.
listview.Items.BeginUpdate;
try
Source := listview.Items[ItemFrom];
Target := listview.Items.Insert(ItemTo);
Target.Assign(Source);
with TLIThread(Source.Data) do begin // ab hier wird das neu angelegte Item in den Thread übergeben:
Suspend; // Thread kurzfristig anhalten
ListItem := Target; // ListItem zuweisen
Resume; // Thread fortsetzen
end;
Source.Free;
Na, alle Klarheiten beseitigt? ;)
Einfach fragen, wenn noch was offen sein sollte - ansonsten bedanken ;)) (Tut gut ;)
MfG Michael Wolletr