Event TComboBox przy zmiane wartość ItemIndex

Event TComboBox przy zmiane wartość ItemIndex
m_Lesiu
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 138
0

w poziomu kodu zmieniam index ComboBox'a

Kopiuj
ComboBox1.ItemIndex := Random( 5 );

chciał bym, żeby ta zmiana wywołała mi event tegoż comboBoxa( pewnie OnChange ), da się jakoś to zrobić?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
2

da się jakoś to zrobić?

Musiałbyś stworzyć własną kontrolkę dziedziczącą po TComboBox i overloadować funkcję SetItemIndex albo po prostu ręcznie wywoływać ten event:

Kopiuj
Procedure CallOnChange(const Obj: TComboBox); inline;
Begin
 if (Assigned(Obj.OnChange)) Then
  Obj.OnChange(Obj);
End;

{...}

ComboBox1.ItemIndex := 512;
CallOnChange(ComboBox1);
pelsta
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 819
2

Możesz OnChange wywołać "ręcznie".

Kopiuj
  ComboBox1.ItemIndex := Random( 5 );
  ComboBox1Change(Sender);

W zdarzeniu OnChange odczytaj ComboBox1.ItemIndex.

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gorlice
1

Można też zmusić ComboBox aby wywołał to zdarzenie wysyłając odpowiedni komunikat:

Kopiuj
ComboBox1.Perform(WM_COMMAND, MakeWParam(0, CBN_EDITCHANGE), ComboBox1.Handle);
olesio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 4191
0

Wątek przenoszę do Newbie, bo raczej się ze mną zgodzicie, że dotyczy podstaw. A i trochę mnie @TLesiu zasmucił, bo myślałem ze człowiek z takim nickiem jest raczej klasą dziedziczącą po TObject niz typem rekordowym czy wyliczeniowym i taka tematyka jak wywoływanie metod powina mu być znana ;) Ale cóż wybaczam - ja też do niedawna wywoływałem funkcję obsługi wątku w WinAPI bez 'stdcall', dziwiąc się błędnemu przekazaniu do niej parametru. Także człowiek uczy się całe życie. I nikogo nie stygmatyzuje ze względu na nick, jak kiedyś, a może i nadal uważano mnie za osobe w młodym wieku ze względu na nick. Musiałem to btw napisać, bo chciałem wiedzieć jak się postuje z pod Androida i niestety osobie nieprzyzwyczajonej do dotykowej klawiatury trochę ciężko, a poza tym wygodniejsza klawiatura w pozycji horyzontalnej tabletu zasłania uzupełnianie nicków, ale jakoś trzeba z tym żyć :-)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.