Condição no Form
Boa tarde,
Eu quero por uma condição para aparecer alguns botões no form.
Eu tenho um grid no form e se esse Grid tiver 1 ou mais registro no grid que apareça os outros botões no form.
Eu fiz inicialmente um speed botão que au quando eu clico os outros botões aparecem.
´procedure TFpesquisausuario.SpeedButton5Click(Sender: TObject);
begin
SpeedButton1.Visible:=true;
SpeedButton2.Visible:=true;
SpeedButton3.Visible:=true;
SpeedButton4.Visible:=true;
Barra.Panels[1].Text:=IntToStr(Qusuario.RecordCount);´
end;
Obrigado
Gustavo Gomes
Eu quero por uma condição para aparecer alguns botões no form.
Eu tenho um grid no form e se esse Grid tiver 1 ou mais registro no grid que apareça os outros botões no form.
Eu fiz inicialmente um speed botão que au quando eu clico os outros botões aparecem.
´procedure TFpesquisausuario.SpeedButton5Click(Sender: TObject);
begin
SpeedButton1.Visible:=true;
SpeedButton2.Visible:=true;
SpeedButton3.Visible:=true;
SpeedButton4.Visible:=true;
Barra.Panels[1].Text:=IntToStr(Qusuario.RecordCount);´
end;
Obrigado
Gustavo Gomes
Gomes451
Curtidas 0
Respostas
Djfabioninja
23/08/2009
Boa tarde Gomes! Não sei se entendi muito bem o que vc quer, mas abaixo posto um exemplo pra exibir/ esconder speedbuttons de acordo com a condição de ´registro > 1´
//No evento onShow do form, busco a quantidade de registros na tabela //através de uma ADOQuery e a partir disso, disponibilizo ou não os botoes:
if ADOQuery1.recordcount>0 then
begin
speedbutton1.visible:= true;
speedbutton2.visible:= true;
speedbutton3.visible:= true;
speedbutton4.visible:= true;
end
else
begin
speedbutton1.visible:= false;
speedbutton2.visible:= false;
speedbutton3.visible:= false;
speedbutton4.visible:= false;
end;
Espero ter ajudado...
//No evento onShow do form, busco a quantidade de registros na tabela //através de uma ADOQuery e a partir disso, disponibilizo ou não os botoes:
if ADOQuery1.recordcount>0 then
begin
speedbutton1.visible:= true;
speedbutton2.visible:= true;
speedbutton3.visible:= true;
speedbutton4.visible:= true;
end
else
begin
speedbutton1.visible:= false;
speedbutton2.visible:= false;
speedbutton3.visible:= false;
speedbutton4.visible:= false;
end;
Espero ter ajudado...
GOSTEI 0
Osocram
23/08/2009
Eu uso o OnUpdate do ActionList para controlar esse tipo de evento.
GOSTEI 0
Gomes451
23/08/2009
Vlw djfabioninja
Deu muito certo a diga que voce mim passo, no final fico assim.
´begin
Barra.Panels[1].Text:=IntToStr(Qadv.RecordCount);
if Qadv.recordcount>0 then
begin
speedbutton2.visible:= true;
speedbutton3.visible:= true;
speedbutton4.visible:= true;
end
else
begin
speedbutton2.visible:= false;
speedbutton3.visible:= false;
speedbutton4.visible:= false;
end;
end;´
Osogram: Essa diga do OnUpdate não entendi muito não, se tiver como especificar mais eu agradeço.
Obrigado
Gustavo
Deu muito certo a diga que voce mim passo, no final fico assim.
´begin
Barra.Panels[1].Text:=IntToStr(Qadv.RecordCount);
if Qadv.recordcount>0 then
begin
speedbutton2.visible:= true;
speedbutton3.visible:= true;
speedbutton4.visible:= true;
end
else
begin
speedbutton2.visible:= false;
speedbutton3.visible:= false;
speedbutton4.visible:= false;
end;
end;´
Osogram: Essa diga do OnUpdate não entendi muito não, se tiver como especificar mais eu agradeço.
Obrigado
Gustavo
GOSTEI 0
Osocram
23/08/2009
É o seguinte amigo.
Pelo jeito vc não usa os componente ActionList.
Vou tentar explicar aqui depois vc testa.
Qdo vc usar o componente TActionList
Vc cria um action la dentro com o nome acFechar e da 2 cliques nele e adiciona isso no evento (execute)
Adiciona um botão TBitBtn e na prop Action dele vc liga essa action que vc criou.
Dae pronto... esse botão vai executar o Action qdo vc clicar.
-----------------------------------------
Tudo que expliquei ae em cima é p vc poder testar...
agora vem aqui o que eu disse.
no comp ActionList vai ter um evento OnUPdate, da 2 cliques nele
Esse evento vai ser disparado praticamente toda hora que acontecer qq coisa no form. Então é o local perfeito p fazer controles de tela.
Esse codigo vai fazer q a ação fique sempre desabilitada, repare que ligamos esta ação com um botão, esse botão vai ficar enable false tbm.
Espero ter conseguido explicar +- como utilizar este recurso... ele é mto util.
Outra dica, em vez de usar assim:
faça assim:
Pelo jeito vc não usa os componente ActionList.
Vou tentar explicar aqui depois vc testa.
Qdo vc usar o componente TActionList
Vc cria um action la dentro com o nome acFechar e da 2 cliques nele e adiciona isso no evento (execute)
close;
Adiciona um botão TBitBtn e na prop Action dele vc liga essa action que vc criou.
Dae pronto... esse botão vai executar o Action qdo vc clicar.
-----------------------------------------
Tudo que expliquei ae em cima é p vc poder testar...
agora vem aqui o que eu disse.
no comp ActionList vai ter um evento OnUPdate, da 2 cliques nele
Esse evento vai ser disparado praticamente toda hora que acontecer qq coisa no form. Então é o local perfeito p fazer controles de tela.
acFechar.Enable := false;
Esse codigo vai fazer q a ação fique sempre desabilitada, repare que ligamos esta ação com um botão, esse botão vai ficar enable false tbm.
Espero ter conseguido explicar +- como utilizar este recurso... ele é mto util.
Outra dica, em vez de usar assim:
if Qadv.recordcount>0 then begin speedbutton2.visible:= true; speedbutton3.visible:= true; speedbutton4.visible:= true; end else begin speedbutton2.visible:= false; speedbutton3.visible:= false; speedbutton4.visible:= false;
faça assim:
speedbutton2.visible:= Qadv.recordcount>0; speedbutton3.visible:= Qadv.recordcount>0; speedbutton4.visible:= Qadv.recordcount>0;
GOSTEI 0
Emerson Nascimento
23/08/2009
uma recomendação para os exemplos passados:
na solução, evite o uso de RecordCount. ele só é indicado se você quiser saber exatamente quantos registros há na tabela. para simplesmente saber se há registros - independente de quantos - utilize IsEmpty.
agora, todas aquelas linhas podem ser substituídas por:
na solução, evite o uso de RecordCount. ele só é indicado se você quiser saber exatamente quantos registros há na tabela. para simplesmente saber se há registros - independente de quantos - utilize IsEmpty.
Barra.Panels[1].Text := IntToStr(Qadv.RecordCount); // aqui, OK
agora, todas aquelas linhas podem ser substituídas por:
speedbutton2.visible := not Qadv.IsEmpty; // não use RecordCount speedbutton3.visible := speedbutton2.visible; // visibilidade igual ao speedbutton2 speedbutton4.visible := speedbutton2.visible; // visibilidade igual ao speedbutton2
GOSTEI 0
Gomes451
23/08/2009
Bom dia,
Obrigado pela dica de vocês eu não sabia que seria tão interessante entra em um fórum como esse.
Por isso que eu nunca usava.
Obrigado
Gustavo Gomes
:D
Obrigado pela dica de vocês eu não sabia que seria tão interessante entra em um fórum como esse.
Por isso que eu nunca usava.
Obrigado
Gustavo Gomes
:D
GOSTEI 0