thx funtzt einwandfrei bloß noch eine frage:
wenn ich nun eine Datei wähle wird diese mit richtigem Icon eingelsen wiederhole ich die prozedur dann dann haben alle einträge das selbe ICON
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
LI: TListItem;
Count : Integer;
I : Integer;
Bmp: TBitmap;
fa: TFileAttributes;
TempIcon: HICON;
Icon:TIcon;
begin
ImageList1.Clear;
if Open.Execute then
LX.Items := Open.Files;
Bmp:= TBitmap.Create;
Count := LX.Items.Count;
for I := 0 to Count-1 do
begin
LI := Listview1.Items.Insert(0);
TempIcon := IconFromFile(LX.Items.Strings[I],0);
Icon:=TIcon.Create;
Icon.Handle := TempIcon;
IMageList1.AddIcon(Icon);
Icon.Free;
Listview1.SmallImages:= ImageList1;
LI.Caption:= ExtractFilename(LX.Items.Strings[I]);
LI.ImageIndex:= i;
LI.SubItems.Add(inttostr(GetFileSizeEx(LX.Items.Strings[I])));
LI.SubItems.Add(GetFileTypename(LX.Items.Strings[I]));
LI.SubItems.Add(DateTimeToStr(GetFileLastAccessTime(LX.Items.Strings[I])));
fa:=GetFileAttributes(LX.Items.Strings[I]);
if readonly in fa then
LI.SubItems.Add('SG')
else
LI.SubItems.Add('NSG')
end;
end;
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.