Desabilitar controles TDBLookupComboBox
Ola amigos
Preciso desabilitar os controles do formulario e não estou conseguido desabilitar o ´TDBLookupComboBox´ . me ajudem pois não consigo desabilitar todos os controles de uma só vez.
Utilizo o seguinte comando:
procedure TFormPadrao1.DesabilitaControles ;
var
i,ii : Integer;
begin
for i := 0 to ComponentCount - 1 do
if (Components[i] is TCustomEdit) then
(Components[i] as TCustomEdit).enabled:=false;
for ii := 0 to ComponentCount - 1 do
if (Components[ii] is [b:84e9f7f4ff]TcustomCombobox[/b:84e9f7f4ff]) then
[b:84e9f7f4ff](Components[ii] as TcustomCombobox).enabled:=false;[/b:84e9f7f4ff]
edtValorCampo.Enabled:=true;
end;
Preciso desabilitar os controles do formulario e não estou conseguido desabilitar o ´TDBLookupComboBox´ . me ajudem pois não consigo desabilitar todos os controles de uma só vez.
Utilizo o seguinte comando:
procedure TFormPadrao1.DesabilitaControles ;
var
i,ii : Integer;
begin
for i := 0 to ComponentCount - 1 do
if (Components[i] is TCustomEdit) then
(Components[i] as TCustomEdit).enabled:=false;
for ii := 0 to ComponentCount - 1 do
if (Components[ii] is [b:84e9f7f4ff]TcustomCombobox[/b:84e9f7f4ff]) then
[b:84e9f7f4ff](Components[ii] as TcustomCombobox).enabled:=false;[/b:84e9f7f4ff]
edtValorCampo.Enabled:=true;
end;
Siro
Curtidas 0
Respostas
Rafael Heise
08/02/2003
Seguinte, são todos componentes DB, onde tem uma DataSource setado associado a uma tabela certo ? você poderia fazer o seguinte, Table.DisableControls;. Isso iria solucionar o seu problema, mas desabilitaria a grid tb, e tb não conseguiria mover os registros na grid. E pode ser que isso vc não queira certo ? mas você pode usar o seu método, mas fazer de forma diferente. Ao Invés de usar as TCustomEdit, Você pode usar TControl. Mas se não me engano a propriedade Enabled é protegida na classe TControl. Então o que você faz ?? Faz o seguinte, cria uma procedure onde vc passa como parâmetro o Componente do tipo TControl e o que vc quer fazer Habilitar : boolean;
(procedure HabDesComp(Componente : TControl;Habilitar : Boolean);)
e declara também la em cima da unit um tipo type THackControl = class(TControl). Mas pq isso ? Porque as propriedades Protegidas são liberadas nas classes derivadas. E na procedure vc faz assim
THackControl(Componente).Enabled := Habilitar; e pronto, chama isso na Form , ali no form, ao invés de (Componente as TCustomEdit).Enabled := False; chama a procedure HabDesComp(..Controls[cont],False);. Assim você resolve seu problema....
(procedure HabDesComp(Componente : TControl;Habilitar : Boolean);)
e declara também la em cima da unit um tipo type THackControl = class(TControl). Mas pq isso ? Porque as propriedades Protegidas são liberadas nas classes derivadas. E na procedure vc faz assim
THackControl(Componente).Enabled := Habilitar; e pronto, chama isso na Form , ali no form, ao invés de (Componente as TCustomEdit).Enabled := False; chama a procedure HabDesComp(..Controls[cont],False);. Assim você resolve seu problema....
GOSTEI 0
Anonymous
08/02/2003
Para desabilitar todos os controle de uma só vez faça:
MeuDataSource.Enabled := False;
MeuDataSource.Enabled := False;
GOSTEI 0