Botoes como ativar e desativar só uma vez???
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;
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
Curtidas 0
Respostas
Anonymous
26/02/2003
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...
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...
GOSTEI 0
Anonymous
26/02/2003
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.
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.
GOSTEI 0
Neto
26/02/2003
:?: 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
Gostaria de ter uma procedure que tratasse os botões de forma global tendo apenas que passar como parametro o Form.
Obrigado
Neto
GOSTEI 0
Fórum Vini
26/02/2003
Olá,
vê se é isto que você precisa:
Espero ter ajudado,
Vincius;
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;
GOSTEI 0
Alexandremarcondes
26/02/2003
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 !!!!
GOSTEI 0
Ehvasc
26/02/2003
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.
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.
GOSTEI 0