CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - RadioGroup - Enable/Disablepozycji

RadioGroup - Enable/Disablepozycji

dział ogólny

RadioGroup - Enable/Disablepozycji

Postprzez oneiro » czwartek, 23 maja 2013, 23:16

Witam,

Mam RadioGroupa na formularzu, który ma 5 pozycji.

Chciałbym teraz, aby pozycja 2 i 4 z ItemListy była wyszarzona (nie dostępna, ale widoczna) - da się jakoś to ustawić?

Pozdrawiam, Krzysiek
Avatar użytkownika
oneiro
Homos antropiczny
Homos antropiczny
 
Posty: 96
Dołączył(a): niedziela, 17 czerwca 2012, 23:19
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: brak systemu
Kompilator: C++ Builder v6
Gadu Gadu: 0
    Windows XPChrome

Re: RadioGroup - Enable/Disablepozycji

Postprzez Corvis » czwartek, 23 maja 2013, 23:21

KOD cpp:     UKRYJ  
RadioGroup1->Buttons[1]->Enabled = false;
RadioGroup1->Buttons[3]->Enabled = false;
 
"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 7Chrome

Re: RadioGroup - Enable/Disablepozycji

Postprzez oneiro » czwartek, 23 maja 2013, 23:26


Unit1.cpp(6769): E2316 'Buttons' is not a member of 'TRadioGroup'
Full parser context
Unit1.cpp(6762): parsing: void _fastcall TForm1::CheckBox1KeyUp(TObject *,unsigned short &,TShiftState)



Dodam, że RadioGroup składa się z CheckBoxów
Avatar użytkownika
oneiro
Homos antropiczny
Homos antropiczny
 
Posty: 96
Dołączył(a): niedziela, 17 czerwca 2012, 23:19
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: brak systemu
Kompilator: C++ Builder v6
Gadu Gadu: 0
    Windows XPChrome

Re: RadioGroup - Enable/Disablepozycji

Postprzez Corvis » czwartek, 23 maja 2013, 23:36

Co to znaczy, że RadioGroup składa się z CheckBoxów ???
"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 7Chrome

Re: RadioGroup - Enable/Disablepozycji

Postprzez oneiro » piątek, 24 maja 2013, 00:01

Wydaje mi się, że pisząc w kodzie słówko "Buttons[]" myślałeś o przyciskach, a RadioGroup (jeśli dodasz itemy) składa się z Check..... o ku*wa, przepraszam, zagalopowałem się :) , składa się oczywiście z RadioButtonów.

Co nie zmienia faktu, że nie chce mi przejść :/
Avatar użytkownika
oneiro
Homos antropiczny
Homos antropiczny
 
Posty: 96
Dołączył(a): niedziela, 17 czerwca 2012, 23:19
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: brak systemu
Kompilator: C++ Builder v6
Gadu Gadu: 0
    Windows XPChrome

Re: RadioGroup - Enable/Disablepozycji

Postprzez Cyfrowy Baron » piątek, 24 maja 2013, 05:14

To działa, tylko ty coś robisz nieprawidłowo! Czy podajesz numer indeksu: Buttons[ Index ]?

Z Twojego profilu wynika, że używasz środowiska C++Builder 6. Może w tym środowisku nie nazywa się to Buttons tylko jakoś inaczej - sprawdź!
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: RadioGroup - Enable/Disablepozycji

Postprzez Mironas » piątek, 24 maja 2013, 09:24

W BCB6 komponent TRadioGroup nie ma właściwości Buttons. Nie widzę też żadnego odpowiednika.

Jedyne rozwiązanie - umieścić zwykły TGroupBox a na nim TRadioButton-y. Wtedy można je wyłączyć zwykłym Enabled.
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 427
Dołączył(a): poniedziałek, 2 stycznia 2012, 19:02
Podziękował : 17
Otrzymał podziękowań: 61
System operacyjny: Windows 10
Kompilator: C++Builder 10.3 Rio
TMS Components Pack
Gadu Gadu: 0
    Windows XPChrome

Re: RadioGroup - Enable/Disablepozycji

Postprzez Cyfrowy Baron » piątek, 24 maja 2013, 12:12

Jeśli nie ma odpowiednika Buttons to jak kodem sterujesz właściwością Checked, bo w C++Builder XE2 jest to tak:

KOD cpp:     UKRYJ  
RadioGroup1->Buttons[1]->Checked = false;


więc w BCB 6 musi być jakiś odpowiednik.

Jeżeli naprawdę nic takiego nie ma to proponuję posłużyć się zwykłymi komponentami RadioButton umieszczając je na GroupBox. Będzie to działać jak RadioGropu, z tą różnicą, że trzeba się odwoływać do każdego RadioButton'a oddzielnie, a nie przez GroupBox.
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: RadioGroup - Enable/Disablepozycji

Postprzez Mironas » piątek, 24 maja 2013, 12:24

Cyfrowy Baron napisał(a):Jeśli nie ma odpowiednika Buttons to jak kodem sterujesz właściwością Checked

W BCB6 tak:
KOD cpp:     UKRYJ  
RadioGroup1->ItemIndex = 2;

Bo i tak w przypadku 'Radio' wybrana może być jednocześnie tylko jedna opcja.
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 427
Dołączył(a): poniedziałek, 2 stycznia 2012, 19:02
Podziękował : 17
Otrzymał podziękowań: 61
System operacyjny: Windows 10
Kompilator: C++Builder 10.3 Rio
TMS Components Pack
Gadu Gadu: 0
    Windows XPChrome

Re: RadioGroup - Enable/Disablepozycji

Postprzez Cyfrowy Baron » piątek, 24 maja 2013, 13:05

Ja też tak mogę, ale dodatkowo mam właściwość Buttons.

Pozostaje więc chyba użyć GroupBox i RadioButton.
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: RadioGroup - Enable/Disablepozycji

Postprzez oneiro » wtorek, 28 maja 2013, 23:47

Dziękuję bardzo za odpowiedzi,

Zrobiłem GroupBox i RadioButtony, działa tak jak chciałem, ale pytanko:
KOD cpp:     UKRYJ  
GroupBox1->ItemIndex = 4;
 


coś w ten deseń da się zrobić, bo jak zauważał @Mironas, i tak może być zaznaczony tylko jeden RadioButton (oczywiście w BCB6 powyższy kod nie działa).
Chodzi mi po prostu o łatwiejsze odwołanie się do RadioButton'ów :)
Avatar użytkownika
oneiro
Homos antropiczny
Homos antropiczny
 
Posty: 96
Dołączył(a): niedziela, 17 czerwca 2012, 23:19
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: brak systemu
Kompilator: C++ Builder v6
Gadu Gadu: 0
    Windows XPFirefox

Re: RadioGroup - Enable/Disablepozycji

Postprzez Mironas » środa, 29 maja 2013, 10:01

Np tak:
Przypisz dla każdego RadioButton-a (RB) inną wartość właściwości Tag (np. 1, 2, 3).
Do każdego RB przypnij tą samo zdarzenie OnClick:
KOD cpp:     UKRYJ  
void __fastcall TForm1::RadioButtonX_OnClick(TObject *Sender)
{
  int numer = dynamic_cast<TRadioButton*>(Sender)->Tag;
  ShowMessage(numer);
}
 

Trochę trudniej w druga stronę. Najlepiej utwórz funkcję która będzie miała parametr numer określający który RB ma być ustawiony. Funkcja musi po kolei wszystkie RB i właściwemu ustawić Checked na true.
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 427
Dołączył(a): poniedziałek, 2 stycznia 2012, 19:02
Podziękował : 17
Otrzymał podziękowań: 61
System operacyjny: Windows 10
Kompilator: C++Builder 10.3 Rio
TMS Components Pack
Gadu Gadu: 0
    Windows XPChrome


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

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 5 gości