Desabilitar controles TDBLookupComboBox

08/02/2003

0

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;


Siro

Siro

Responder

Posts

08/02/2003

Rafael Heise

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....


Responder

08/02/2003

Anonymous

Para desabilitar todos os controle de uma só vez faça:

MeuDataSource.Enabled := False;


Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar