Inderdaad, niet.
Ik heb nu dit:
Delphi Code:
procedure tdeelnemers.LoadImageBG(AListView: TListView; aImagelist : TImagelist);
begin
TThread.CreateAnonymousThread(
procedure
var ListItem : TListItem;
LV : TListview;
ImageList: TImageList;
begin
ImageList:= TImageList.Create(nil);
try
Imagelist.Height := 128;
Imagelist.Width := 128;
Imagelist.ColorDepth := cd32bit;
AListView.LargeImages := ImageList;
AListView.Items.BeginUpdate;
DataModule.pokemonlist.Active := true;
DataModule.pokemonlist.First;
while not DataModule.pokemonlist.eof do
begin
//application.ProcessMessages;
ListItem := AListView.Items.add;
Listitem.Caption := DataModule.pokemonlist.FieldByName('pokemon').AsString;
ListItem.ImageIndex := LoadImagesFromDataset2ImageList(ImageList, DataModule.pokemonlist);
DataModule.pokemonlist.Next
end;
finally
AListView.items.EndUpdate;
DataModule.pokemonlist.Active := false;
end;
TThread.Synchronize(TThread.Current, // Geen 'self' beschikbaar
procedure
begin
aImagelist.Assign(Imagelist);
end);
end
).Start;
end;
Maar ik zie helemaal geen performance winst. Alleen mijn form kan ik vrijuit bewegen door het opstarten van een andere thread.
(Vraag mij ook af of ik de thread wel goed heb opgebouwd).
Ik denk dat het probleem in het opbouwen van de imagelist is.
Bookmarks