Przechwytywanie metod klasy TStrings TComboBox.Items

0

Witajcie:)

Chciałbym w swoim komponencie TMojeCombo dziedziczącym po TComboBox przechwycić wykonanie dowolnej metody jego właściwości Items. Chodzi o to, że np. gdzieś w kodzie "korzystającym" z TMojeCombo zostanie wykonana metoda:

MojeCombo1.Items.Add('abc');

lub

 MojeCombo1.Items.Clear;

lub

MojeCombo1.Items.Insert(10, 'abc'); 

to mój komponent to przechwyci w swojej procedurze (coś a'la override dla metod klasy Items), w której będę mógł coś dodatkowego zrobić, np. zmienić jakąś właściwość komponentu lub wywołać jakąś metodę stosownie do przechwyconej metody właściwości Items.

0

Legalną drogą byłoby chyba napisanie TMyStringList a potem tworzenie tego w TMojeCombo zamiast standardowej wersji. Potem jakieś eventy możesz dorobić i gotowe... Albo spróbować podpiać TMyStringList pod TComboBox, ale z tym może być problem...

0

przechwyc sobie odpowiednie komunikaty lecące do ComboBoxa:

CB_ADDSTRING = Items.Add()
CB_INSERTSTRING = Items.Insert()
CB_RESETCONTENT = Items.Clear()

są też inne, np

CB_DELETESTRING

Zobacz na MSDN'ie, bedziesz mial pelna dokumentacje.

0
cimak napisał(a)

przechwyc sobie odpowiednie komunikaty lecące do ComboBoxa:

CB_ADDSTRING = Items.Add()
CB_INSERTSTRING = Items.Insert()
CB_RESETCONTENT = Items.Clear()

są też inne, np

CB_DELETESTRING

Zobacz na MSDN'ie, bedziesz mial pelna dokumentacje.

Dzięki! Złapałem wszystkie metody Items tym sposobem, choć po cichu liczyłem, że obejdzie się bez łapania komunikatów :-D

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