Autor Zpráva
Aberon
Profil
Ahoj,

Vim ze je tenhle prispevek trochu mimo tema, ale tenhle web mi vytanul na mysli prvni :-).
Jde o jazyk Delphi, tudiz ti co ho neznaji ani nemuseji cist dal.

Takze, presneji jde o komponentu RadioGroup. Mam v ni nadefinovany tri odrazky, pricemz vzdy mohu vybrat pouze jednu z nich. Jak ale udelat, aby byla jedna z nich Enabled:=false? Myslim ted pouze jednu odrazku, ne cely RadioGroup? Enabled=false znamena ze se to neda zmacknout, zesedivy to a nejde s tim hnout :), az do chvile kdy je Enabled=true.

Snad jsem to vysvetlil srozumitelne, pomerne dlouho jsem to na netu hledal, ale bez vysledku.

Diky za kazdy rozumny prispevek.
SwimX
Profil
Aberon
Vybereš konkrétní RadioButton a nastavíš mu hodnotu Enabled na false. Buď myší ve fomruláři nebo někde v programu jako RadioButton1.Enabled := false;
Aberon
Profil
Oh, diky za bleskovou odpoved.

Problem - Jak mam ale najet na konkretni RadioButton? Zkousel sis to? Je rozdil kdyz mas odrazky v RadioGroup a kdyz je mas mimo.
Nevim jak mam pristoupit k ty KONKRETNI odrazce. Mysi rozhodne ne.
SwimX
Profil
Aberon
Už je to dávno co sem dělal s Delphi. Ale RButtony sem cpal do GroupBoxu. Musí být v RadioBoxu? :)

edit: našel jsem kůli tobě Delphi :) a zjistil jsem, že nevím jak dostat RButton do Rboxu :) - tak to bychom už měli

Každopádně si myslím že pokud to chceš nastavit jednou - při spuštění programu, tak bych události Oncreate Form1 přidal RButton1.Enabled:= false; A pokud s tim chceš dynamicky hýbat tak stejně budeš nucet k tomuto použití. - to zase mefunguje s tim RBoxem.
Aberon
Profil
Do GroupBoxu, vazne? Hele tam se ale cpou jen Edity a Labely... RadioButton tam nema co delat, od ceho je zavedeny pole pro RadioButtony :d.

Ano musí (pro muj pripad) to být v RadioBoxu. Prece musi existovat cesta jak pristoupit k danymu prvku (odrazce), nerikej ze ne.
Aberon
Profil
jj dynamicky v zavislosti na promeny. Takze ty rikas ze RadioGroup ano ci ne? :)
SwimX
Profil
Aberon
Já sem ted zjistil co a k čemu je RGroup. V něm fyzicky neexistují jednotlivé RadioButtony, má jenom Items a ty jsou Tstringy takže si myslím, že Enabled možnost mít nebudou. Na druhou stranu chovají se jako radia takže by enabled možnost mít měli, ale já nevím kde.

Když vezmeš rádia a dáš je do GroupBpoxu tak to pojede. Dá se k nim totiž dál normálně přistupovat. Ale asi to není správné :)


To sem zase jednou nepomoh :))
Aberon
Profil
Hele, ale to je zajimavy. Zkusim to, jak si to popsal a zachvili vyhodim vysledek :D. Mimojine, Diky.
SwimX
Profil
Aberon
Ááá mám to :)))
Tak teď mám opravdu radost a spokojeně usnu.

Přistupuje se k nim pomocí pole Controls - je indexováno od nuly
RadioGroup2.Controls[1].Enabled := false;
Aberon
Profil
Teda, Diky Moc. RadioButtony v GroupBoxu :). Docela vochcavacka, ale funguje to - a to je hlavni. Diky
Aberon
Profil
Aberon
Ááá mám to :)))
Tak teď mám opravdu radost a spokojeně usnu.
Přistupuje se k nim pomocí pole Controls - je indexováno od nuly
RadioGroup2.Controls[1].Enabled := false;

Dokonce, jeste jednou diky - tohle vypada elegantneji :D
SwimX
Profil
Aberon
tohle vypada elegantneji :D
Jn, asi je to tak i myšlený :) ale proč to takle schovali to teda nevím..
joe
Profil
Nevím jak je to v Delphi, ale znám VB, který je hodně podobný. Tenhle způsob se mi nezdá příliš šikovný a to z toho důvodu, že se někdy rozhodneš přidat další Radio, tak budeš muset přepočítávat v kódu indexy? To snad nemůžeš přistupovat k jednotlivým komponentám podle jména?

RadioButton.enabled := false

A nebo alespoň podle nějakých klíčů, pokud se to tam vytváří dynamicky.

Tím chci říct, že daleko lepší je přidat si na formulář jednotlivé Radio Buttony a ty pak dát do nějakého kontejneru, který by tvořil jejich skupinu, než to takhle blbě psát.
SwimX
Profil
joe
Tím chci říct, že daleko lepší je přidat si na formulář jednotlivé Radio Buttony a ty pak dát do nějakého kontejneru, který by tvořil jejich skupinu, než to takhle blbě psát.
Tak to je přesně řešení -> dávat Buttony do GroupBoxu, jak jsem to vždycky dělal. Jak ale tvrdí Aberon (a asi má právdu), proč jinak by vznikl RadioGr

o snad nemůžeš přistupovat k jednotlivým komponentám podle jména?
RadioButton.enabled := false

Takle to opravdu nejde. Nevím proč.

Aberon
joe mě však navedl na zajímavou myšlenku. V Items jsou totiž jejich názvy, takže se k nim přes ně dá dostat.

for i := 0 to radioGroup1.Items.Count-1 do
   begin
     if radioGroup1.Items[i] = "hledaný popisek RButtonu" then
     begin
       index := i;
       break;
     end;
   end;

RadioGroup1.Controls[index].Enabled := false;


hodilo by se to dát do funkce s parametrem CAPTION která by vrace index.

Vaše odpověď

Mohlo by se hodit

Zvažte, zda se neobrátit na specializované fórum, toto se zabývá především webovou problematikou.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: