GARANTIR DESCONTO

Fórum Condição no Form #373992

23/08/2009

0

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


Gomes451

Gomes451

Responder

Posts

23/08/2009

Djfabioninja

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


Responder

Gostei + 0

24/08/2009

Osocram

Eu uso o OnUpdate do ActionList para controlar esse tipo de evento.


Responder

Gostei + 0

24/08/2009

Gomes451

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


Responder

Gostei + 0

24/08/2009

Osocram

É 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)
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;
 



Responder

Gostei + 0

25/08/2009

Emerson Nascimento

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.

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



Responder

Gostei + 0

27/08/2009

Gomes451

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


Responder

Gostei + 0

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

Aceitar