GARANTIR DESCONTO

Fórum Botoes como ativar e desativar só uma vez??? #141345

26/02/2003

0

Estou construindo um programa e queria fazer os códigos de abilitar e desabilitar os botoes só uma vez.

Então criei uma UntBiblioteca, para armazenar os procedimentos,mas como existem vários formulários tive que usar uma váriavel do tipo string para armazenar o nome do formulário e depois anexar o código do botão:

var
Formulario,Comando1,botao : string;
begin
procedure botoes;
if botao = ´g´ then
comando1 := concat (formulario + ´.btbtnGravar.enable := false;´)

Comando1;
{ Como eu faço para executar este codigo dentro da variável
(Comando1) ??????}

end;
end;


Anonymous

Anonymous

Responder

Posts

26/02/2003

Anonymous

Colega naum complica simplifique....

neste caso monte um procedimento e chame-o a todo momento assim oh!

procedure HabilitaDesabilita;
begin
if table1.state in [dsinsert,dsedit] then
begin
button1.enabled := true;
button2.enabled := false;
end
else
begin
button1.enabled := false;
button2.enabled := true;
end;
end;

depois é só entrar no formulário referente e chamar este procedimento:

procedure Tform1.Button1Click(sender:Object);
begin
habilitaDesabilita;
end;

espero ter ajudado...


Responder

Gostei + 0

27/02/2003

Anonymous

Este Procedimento que vc criou (Saggitharius - Magnum) pode ser usado por todos os meus formulários de cadastro?

Desculpe mas acho que vc não entendeu o que eu quero.
Eu gostaria que todos os formularios de cadastro usasem o mesmo procedimento, e para isso eu tive que anexar o nome dos formulários em uma variavel, e depois concatenar esta variavel(que contem o nome do formulario) com o resto do codigo.
(comando1 := concat (formulario + ´.btbtnGravar.enable := false;´)

comando1 -- > Variavel que contera todo o codigo do botao.
formulario -- > Formulário que está sendo usado.
.btbtnGravar.enable := false; -- > Codigo que será concatenado ao nome do formulário ( através da variavel formulario).

A questão é:

Como vou executar uma linha de comando (neste caso que muda a propriedade enabled de um botao) que está armazenada dentro de uma variavel do tipo literal(string)???

Obrigado pela comprienção.


Responder

Gostei + 0

15/08/2004

Neto

:?: Eu também estou quebrando a cabeça pra fazer isso, mas não estou conseguindo.
Gostaria de ter uma procedure que tratasse os botões de forma global tendo apenas que passar como parametro o Form.
Obrigado
Neto


Responder

Gostei + 0

15/08/2004

Fórum Vini

Olá,
vê se é isto que você precisa:
Procedure HabilitaBotoes(Form: TForm);
var
  cont: Integer;
begin
  with Form do
    for cont:= 0 to ComponentCount - 1 do
      if Components[cont] is TButton then
        (Components[cont] as TButton).Enabled:= True; 
        //você pode usar not (Components[cont] as TButton).Enabled para inverter o estado dos botões
end;


Espero ter ajudado,
Vincius;


Responder

Gostei + 0

16/08/2004

Alexandremarcondes

Estou construindo um programa e queria fazer os códigos de abilitar e desabilitar os botoes só uma vez. Então criei uma UntBiblioteca, para armazenar os procedimentos,mas como existem vários formulários tive que usar uma váriavel do tipo string para armazenar o nome do formulário e depois anexar o código do botão: var Formulario,Comando1,botao : string; begin procedure botoes; if botao = ´g´ then comando1 := concat (formulario + ´.btbtnGravar.enable := false;´) Comando1; { Como eu faço para executar este codigo dentro da variável (Comando1) ??????} end; end;


Você está complicando demais ... se é para desabilitar mais de um botão por vez e todos eles têm a mesma ação ou um grupo de botões que estão ligados por categoria, usa o TActionList ou TActiionManager do Delphi 7 !!!!


Responder

Gostei + 0

16/08/2004

Ehvasc

Olá,


Se eu entedi direito sua pergunta, é simple a resposta, basta vc passar o form como parametro por referencia. Ex.:

na sua unit vc declara o método normalmente :

procedure Habilita(var frm : TForm, stastus : Boolean);



a implementação deste método seria a seguinte:

procedure Habilita(var frm : TForm, stastus : Boolean);
begin
frm.btnNovo := status;
frm.btnEditar := status;
frm.btnSalvar := not status;
frm.btnCancelar := not status;
end;

para isso, todos os botões devem ter o mesmo nome e caso alguma tela tenha um botão específico o tratamento do status (Enabled) deverá ser local (na mesma unit onde ele está declarado).

a chamada do método nos seus forms serão da seguinte forma:

Habilita (self, datasource1.dataset.state in [dsBrowse]);//Caso esteja cancelando ou salvando)


o que influenciará o status dos botões será o comando que vc enviar antes para o dataset do datasource (Edit, insert, cancel, post).

Boa Sorte...
Espero ter ajudado.


Responder

Gostei + 0

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

Aceitar