[PR] AccesViolation przy ListView :/

0

mam coś takiego:

procedure TMainFrm.FormCreate(Sender: TObject);
var Contact: TListItem;
    Icon: TIcon;
begin
Icon:=TIcon.Create;
Icon.LoadFromFile('C:\Moje dokumenty\krzysiek.ico');
ContactList.SmallImages.AddIcon(Icon);
Contact:=TListItem.Create(ContactList.Items);
Contact.Caption:='Krzysiek';
Contact.ImageIndex:=0;
ContactList.Items.AddItem(Contact);
Contact.Free;
Icon.Free;
end;

i przy uruchamianiu wyskakuje mi EAccesViolation. Co może być źle?
[dopisane]
Zapomniałem dodać, że ContactList jest to TListView na formie...

0

Zrobiłbym to tak:

procedure TMainFrm.FormCreate(Sender: TObject);
var Contact: TListItem;
    Icon: TIcon;
begin
Icon:=TIcon.Create;
Icon.LoadFromFile('C:\Moje dokumenty\krzysiek.ico');
ContactList.SmallImages.AddIcon(Icon);
Contact:=ContactList.Items.Add;
Contact.Caption:='Krzysiek';
Contact.ImageIndex:=0;
//Contact.Free - nie usuwamy tego bo usuniemy itema z listy!
Icon.Free;
end; 
0

Niestety... Nadal to samo: EAccesViolation :( Już nic nie pojmuję...

0

Napisz w jakiej linijce wyskakuje błąd. Nie wiem... może usuń Icon.Free, bo nie jestem pewien czy nie usuwasz tej dodanej ikony.

0

Problem pojawia się przy wywołaniu "ContactList.SmallImages.AddIcon(Icon);". Czy jakaś właściwość uniemożliwia korzystanie ze SmallImages? (Sprawdziłem ViewStyle - zmiana tutaj nic nie pomaga)
[dopisane]
Mam! Chodziło o dodanie linijki "ContactList.SmallImages:=ImagesList.Create(ContactList);"
Nie rozumiem tylko, dlaczego nie jest to tworzone automatycznie? No cóż w każdym razie działa i dzięki za pomoc MatroX

0

A masz przypisany do ContactList.SmallImages komponent ImageList?

0

Sprawdź czy używasz XP Manifest

1 użytkowników online, w tym zalogowanych: 0, gości: 1