ďťż

Ładny brzuch

Witam! Pisząc (a raczej zaczynając pisać, bo póki co mam tylko wygląd) swój program zostałem zmuszony do napisania dla niego komponentu opartego na komponencie ListBox. Problem polega na tym, że chciałbym do Inspektora Obiektów dodać właściwość o typie TListItems tak jak ma to komponent ListView w swoim Items - do edycji wyskakuje takie okienko. Oczywiście nie mam zamiaru zamieniać oryginalnej właściwości Items ListBox'a. Zacząłem tak:

uses ..., ComCtrls; ... private FContacts: TListItems; ... procedure SetContacts(Value: TListItems); ... published property Contacts: TListItems read FContacts write SetContacts;

Teraz aby w procedurze SetContacts skorzystać z instrukcji FContacts.Count

procedure TBBList.SetContacts(Value: TListItems); begin FContacts:= Value; Items.Add(FContacts.Item[FContacts.Count - 1].SubItems[2]); end;

Muszę wywołać takie coś:

FContacts.Create(...);

Pomyślałem, że mogę tego dokonać w konstruktorze komponentu (a w desktruktorze FContacts.Destroy). Problem w tym, że w miejsce trzykropek z kodu powyżej muszę wstawić parametr AOwner: TCustromListView i właśnie nie wiem co tam wstawić :) Próbowałem różnych rzeczy (wstawiać nil i co tylko pasowało). Efekty tego były różne. Raz się kompilowało raz nie. Jak się skompilowało to nie mogłem położyć komponentu na formie - "Access violation..." lub jak udało się go położyć to znowu "Access violation..." podczas próby edycji owej właściwości. Czy ktoś byłby mi w stanie udzielić pomocy w usunięciu tego błędu lub wskazaniu jakiejś alternatywy? W Internecie znalazłem coś na wzór odpowiedzi na mój problem, ale brzmiała ono mniej więcej tak: "Nie można tak zrobić, bo nie" - a jak już to chciałbym wiedzieć dlaczego :).
Użytkownik Sid7 edytował ten post 31 maj 2008, 19:37


Chodzi chyba o to że źle próbujesz kreować obiekt.
W skrócie, robisz coś takiego:
var zmienna:Tlist; begin zmienna.create(...); end;
a powinieneś robić tak:
var zmienna:TList; begin zmienna := Tlist.Create(...) end;

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •