Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ActiveRadioButon komponenta

[es] :: Pascal / Delphi / Kylix :: ActiveRadioButon komponenta

[ Pregleda: 2490 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Aleksandar Milcevic
Beograd

Član broj: 8076
Poruke: 18
*.beg.sezampro.yu



Profil

icon ActiveRadioButon komponenta19.02.2003. u 10:19 - pre 256 meseci
Zdravo. Evo jednog pitanja u vezi sa pravljenjem komponenata. Nista specijalno, zelim da uradim RadioButton koji ima tri dodatna svojstva ActiveColor, NonActiveColor, CheckedColor. Prva boja treba da e aktuelna kada je mis iznad komponente, treca kad je komponenta checked i druga inace. Sad za ovo sa misem iznad mi je lako samo obradjujem poruke cm_MouseEnter i cmMouseLeave, nego ne bih znao sta cu sa ovim kad je checked. Na primer kod CheckBox-a bih mogao jednostavno da zaobidjem metod Click i da tu napisem:
Code:
 inherited;
if Checked then
 Font.Color:=fCheckedColor
else  Font.Color:=fNonActiveColor;
To radi, ali ne moze da se primeni da RadioButton jer to nije jedini nacin da se ono selektuje odnosno deselektuje. Pa eto, ako mozda neko se bavi ovakvim zafrkancijama mogao bi da napise neku zanimljivu ideju.
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.InfoSky.Net

Sajt: localhost


+5 Profil

icon Re: ActiveRadioButon komponenta19.02.2003. u 16:23 - pre 256 meseci
bolje da overridujesh paint metodu za tRadioButton (ili dodaj onpaint, ili nesto trece izmenjaj).

e, onda kad god se promeni stanje, ti pozovi repaint() (valjda tako bese metoda), a u paint metodi proveri stanje, i na osnovu njega crtaj...

(znaci kada hendlujesh cm_mouseEnter i exit, samo setuj fMouseOver:=true/false i pozovi repaint(). a za onclick ce on sam valjda da pozove)


 
Odgovor na temu

Aleksandar Milcevic
Beograd

Član broj: 8076
Poruke: 18
*.beg.sezampro.yu



Profil

icon Re: ActiveRadioButon komponenta21.02.2003. u 09:15 - pre 256 meseci
Nije meni problem sa MouseEnter i Exit, vec samo kad je chekirano, a kad ne. Uopste nisam siguran da sam razumeo tvoju ideju. Kazes "e onda kad god se promeni stanje, ti pozovi repaint()...". Problem je u tome sto ne znam kada se menja stanje (ako mislimo na isto stanje:- Checked). Kad bih to znao mogao bih odmah tu da kazem nesto poput Font.Color:=..., a ne da pozivam repaint, ako sam dobro to uocio?!
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.rcub.bg.ac.yu

Sajt: localhost


+5 Profil

icon Re: ActiveRadioButon komponenta21.02.2003. u 16:54 - pre 256 meseci
sorry. nisam dobro sKvatio sta je tvoj problem.

elem, probaj da overridujesh setChecked(aValue: boolean) u tvojoj novoj klasi. to se pozove svaki put kada se promeni checked. znaci nesto tipa:

Code:

tActiveRadioButton = class(tRadioButton)
    //...
protected
    procedure setChecked(aValue: boolean); override;
    //...
end;


sto bi trebalo da izgleda otprilike ovako:

Code:

procedure tActiveRadioButton.setChecked(aValue: boolean);
begin
    inherited;
    if Checked then begin
        //...
    end else begin
        //...
    end;
end;



za ovakve stvari, najbolje se uci iz samog koda raznih vcl (clx) kontrola. pogledaj po kodu. samo drzi ctrl i klikni na tRadioButton, i videces kako se sve radi. najbolji nacin za ucenje..

poz.
 
Odgovor na temu

Aleksandar Milcevic
Beograd

Član broj: 8076
Poruke: 18
*.beg.sezampro.yu



Profil

icon Re: ActiveRadioButon komponenta22.02.2003. u 18:22 - pre 256 meseci
E da, upravo sam na tako nesto mislio. Nazalost trenutno nemam tu mogucnost da to i na delu isprobam jer mi Delphi ne funkcionise bas najbolje (o cemu sam takodje postavio temu na forumu), tako da ...
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: ActiveRadioButon komponenta

[ Pregleda: 2490 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.