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

Može li se klasa kastovati u promenljivu klasu ?

[es] :: Pascal / Delphi / Kylix :: Može li se klasa kastovati u promenljivu klasu ?

[ Pregleda: 2358 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.beotel.net.



+19 Profil

icon Može li se klasa kastovati u promenljivu klasu ?10.02.2008. u 22:37 - pre 197 meseci
Zatrebalo mi je pre neki dan da uhvatim OnChange većem broju kontrola na formi da bih im promenio Color ako su prazne.

U igri je šarenilo: tEdit, tMaskEdit, tMemo, tComboBox, tCheckBox, pa neke TNT komponente, i nalteh na problem jer iako je osobina Color deklarisana u tControl nije publikovana sve do krajnje klase pa sam morao pisati:
if Sender is tEdit then (Sender as tEdit).Color:= x;
if Sender is tMaskEdit then (Sender as tMaskEdit).Color:= x;
if Sender is tMemo then (Sender as tMemo).Color:= x;
itd. desetak redova.

Može li nekako elegantnije, npr.
KASTUJ_U_KLASU(Sender, Sender.ClassName).Color:= x;

Znači pitanje je može li se objekat kastovati u klasu čije ime priložim kao string promenljiva.

Nije toliko bitno za ovaj konkretni problem, radi kako radi,
pitam uopšteno iz radoznalosti, kako kastovati promenljivom.
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Može li se klasa kastovati u promenljivu klasu ?10.02.2008. u 23:52 - pre 197 meseci
> U igri je šarenilo: tEdit, tMaskEdit, tMemo, tComboBox, tCheckBox, pa neke TNT komponente, i nalteh na problem jer iako je osobina Color
> deklarisana u tControl nije publikovana sve do krajnje klase pa sam morao pisati:
> if Sender is tEdit then (Sender as tEdit).Color:= x;

Deklariši helper klasu i nju iskoristi za dodelu.
type
TMyControl = class(TControl);

TMyControl(Sender).Color := clBlack;

Ili možeš koristiti RTTI, unit je TypInfo, a funkcije su SetxxxPropInfo.
 
Odgovor na temu

lan-mi
Lukic Milan
Zrenjanin

Član broj: 156359
Poruke: 140
*.dynamic.sbb.co.yu.

Sajt: https://lanmisoft.com


+1 Profil

icon Re: Može li se klasa kastovati u promenljivu klasu ?11.02.2008. u 11:35 - pre 197 meseci
Probaj ovako:

for i:=0 to Componentcount-1 do
if components[I] is TWinControl then begin
(Components[I] as TWinControl ).Brush.Style:=bssolid;
(Components[I] as TWinControl ).Brush.Color:=clyellow;
(Components[I] as TWinControl ).Refresh;
end;
end;

[Ovu poruku je menjao lan-mi dana 11.02.2008. u 14:08 GMT+1]
Arduino Control Center
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Može li se klasa kastovati u promenljivu klasu ?

[ Pregleda: 2358 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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