ciao, questa è la soluzione che ho trovato.....

procedure setobjlayout(cmpdst: TComponent;rights: string);
var
visib: boolean;
enab: boolean;
begin
if (rights='E') or (rights='W') then
begin
visib:=true;
enab:=true;
end
else if rights='R' then
begin
visib:=true;
enab:=false;
end
else if rights='N' then
visib:=false;

if cmpdst.ClassNameis('TComboBox') then
begin
TComboBox(cmpdst).Visible:=visib;
TComboBox(cmpdst).Enabled:=enab;
end
else if cmpdst.ClassNameIs('TLabel') then
begin
TLabel(cmpdst).Visible:=visib;
TLabel(cmpdst).Enabled:=enab;
end
[.....]

e fa schifo!!!!!


dato che i componenti possono essere N e non li conosco ho provato a risolvere così (nella stessa funzione):

var
classappo: TCLass;
begin
classappo:=cmpdst.classtype;
classappo(cmpdst).enabled:=enab;
classappo(cmpdst).visible:=visib;

eccetera eccetera, ma delphi mi da errore prima di arrivare a compilare, vuole la classe come costante.


e ora????
Giorgino