OnClick ComboBoxa

dział ogólny

OnClick ComboBoxa

Nowy postprzez Corvis » piÄ…tek, 14 maja 2010, 11:25

Witam,

Potrzebuję zrobić taki manewer. Mam w comboboxie listę z 1 pozycją : "Wybierz..." która jest domyślnie ustawiona. Teraz chcę zrobić tak, że jak kliknę myszką w ComboBoxa to przed rozwinięciem się listy dodam doniej dodatkowe pozycje. Robię to w zdarzeniu OnClick ComboBoxa ale komponent nie reaguje na to zadarzenie tak jak chce. OnClick włącza się w chwili wybrania konkretnej pozycji ComboBoxa. Może ktoś wie jak to zrobic ??


Pozdrawiam,
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
PodziÄ™kowaÅ‚ : 80
OtrzymaÅ‚ podziÄ™kowaÅ„: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaSafari

Re: OnClick ComboBoxa

Nowy postprzez kurczez » piÄ…tek, 14 maja 2010, 12:06

Witaj,

Nie wiem czy to jest optymalny sposób, pewnie nie, ale ja sobie tak poradziłem.

bool a = false; // zmianna globalna

void __fastcall TForm1::ComboBox1Enter(TObject *Sender)
{
if (a == false)
ComboBox1->Items->Add("test");

a = true;
}
void __fastcall TForm4::ComboBox1MouseEnter(TObject *Sender)
{
if (a == false)
ComboBox1->Items->Add("test");

a = true;
}


Ten kod powoduje dodanie elementu po najechaniu myszką na kontrolkę. Jeśli chcesz aby za każdym razem po najechaniu wartość się dodawała/zmieniała to w zdarzeniu OnMouseMove kontrolki/formy, na której masz ComboBoxa dajesz kod a = false;
Avatar użytkownika
kurczez
Homos antropiczny
Homos antropiczny
 
Posty: 56
Dołączył(a): sobota, 10 października 2009, 18:58
PodziÄ™kowaÅ‚ : 4
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Vista
Kompilator: Turbo C++
Gadu Gadu: 0
    Windows VistaFirefox

Re: OnClick ComboBoxa

Nowy postprzez Corvis » piÄ…tek, 14 maja 2010, 13:00

Witam,

Dzięki, tak myślałem, żeby coś podobnego napisać. Ale sądziłęm, że dało się to obejść poprzez gotowe metody CBX :)

Dzieki
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
PodziÄ™kowaÅ‚ : 80
OtrzymaÅ‚ podziÄ™kowaÅ„: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaSafari

Re: OnClick ComboBoxa

Nowy postprzez Cyfrowy Baron » piÄ…tek, 14 maja 2010, 13:27

Obiekt typu TComboBox posiada zdarzenie OnDropDown. Jeżeli będziesz uzupełniał listę w tym zdarzeniu to elementy będą dodawane przed rozwinięciem listy:

Kod: Zaznacz cały

void __fastcall TForm1
::ComboBox1DropDown(TObject *Sender)
{
 ComboBox1->Items->Add("Element");
}
 

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
Corvis
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: OnClick ComboBoxa

Nowy postprzez Corvis » sobota, 15 maja 2010, 12:35

Dzięki !!! Kurde porąbało mi się te zdarzenie z mechanizmem DRAG-DROP i dlatego nawet go nie sprawdziłem :roll:
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
PodziÄ™kowaÅ‚ : 80
OtrzymaÅ‚ podziÄ™kowaÅ„: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome


Powrót do Ogólne problemy z programowaniem

Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 4 gości