GARANTIR DESCONTO

Fórum Bloquear mudança de aba no PageControl #373015

01/08/2009

0

Olá,

gostaria de impedir que o usuário mude de aba no PageControl ao tentar cliclá-la, de acordo com uma determinada condição. Coloquei essa condição nos eventos OnChange e OnChanging do PageControl, mas não funcionou. Segue abaixo o procedimento inserido no evento OnChanging do PageControl:

if (Dados.TbClientes.FieldByName(´pessoa´).Value = ´J´) then
begin
PgcCadcli.Enabled := False;
ShowMessage(´Cadastro complementar somente para pessoa física!´);
end;

Apesar de conseguir desabiblitar o PageControl, o código não impede que, após o clique na aba e a exibição da mensagem, a aba seja mudada.
Alguém saberia dizer como impedir essa alteração pelo usuário?

Grata.


Sgrandini

Sgrandini

Responder

Posts

01/08/2009

Carlosrm

sgrandini,

um modo:

procedure Tform1.pagecontrol1Change(Sender: TObject);
begin
  if (Dados.TbClientes.FieldByName(´pessoa´).Value = ´J´) then begin 
       ShowMessage(´Cadastro complementar somente para pessoa física!´);
       pagecontrol1.TabIndex := 0;
       exit;
    end;


1º) Evento OnChange
2º) Depois do ShowMessage, forcei o pagecontrol exibir a primeira aba (...tabindex := 0)
3º) o comando EXIT só será necessário se você tiver outros comandos após o END.

Desse modo, a página não permitida será exibida, por baixo do quadro da ShowMessage, impedindo qualquer interação do usuário com a aba. E quando clicar no OK da ShowMessage, imediamente será enviado de volta para a aba de indíce zero (a primeira). Qualquer coisa, reclame. Abraco.
carlosrm


Responder

Gostei + 0

03/08/2009

Alanporto

if (Dados.TbClientes.FieldByName(´pessoa´).Value = ´J´) then begin PgcCadcli.Enabled := False; ShowMessage(´Cadastro complementar somente para pessoa física!´); end;


Use a variável AllowChange do evento OnChanging:
if (Dados.TbClientes.FieldByName(´pessoa´).Value = ´J´) then
begin
[b:6f248ce700] AllowChange := False;[/b:6f248ce700]
ShowMessage(´Cadastro complementar somente para pessoa física!´);
end;


Responder

Gostei + 0

03/08/2009

Sgrandini

alanporto,

era exatamente isso que eu queria.
Obrigada!


Responder

Gostei + 0

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

Aceitar