Fórum Capturar Name e Caption do Menu Pressionado #235938

03/06/2004

0

Olá

Estou montando uma rotina para tratamento de erro e estou tendo o seguinte problema:


Preciso capturar o nome (ou caption) do item do menu pressionado.

Lembrando que preciso de uma rotina genérica que sirva para capturar qualquer item que eu tenha pressionado.

Grato,

André Moliva


Moliva

Moliva

Responder

Posts

07/06/2004

Bacalhau

Tem várias maneiras. uma delas é assim:

with sender as TMenuitem do
begin
if name = ´um_nome´ then <faço uma coisa>
if name = ´outro_nome´ then <faço outra coisa>
etc
end;

Mas o melhor é deixar a aplicação resolver o assunto. É assim: no form principal (normalmente em FormCreate) colocas

Application.OnException:=RegistaAccao;

onde RegistaAccao pode ser um procedure como este:

// grava erro no aquivo de log

log.close;
log.tablename := ´PDG.DB´;
log.open;
log.append;
log.edit;

log.fieldbyname(´Data´).asstring := Datetostr(Date);
log.fieldbyname(´Hora´).asstring := TimeToStr(Time);
log.fieldbyname(´Tipo´).asstring := ´Erro´;
log.fieldbyname(´Form´).asstring := screen.activeform.name;
log.fieldbyname(´Controle´).asstring := screen.activecontrol.name;
log.fieldbyname(´Acção´).asstring := e.message;

log.post;
log.close;

// exibe mensagem para o utilizador

msg := e.message+#10;
msg := msg+´Form: ´+screen.activeform.name+10;
msg := msg+´Controle: ´+screen.activecontrol.name;
MessageDlg(msg,mtError,[mbOK],0);


Neste caso, para além de enviar uma mensagem ao utilizador, regista a ocorrência numa tabela. Assim, fica fácil verificar ao pormenor, TUDO o que aconteceu naquela máquina. Podemos até capturar a tabela via-Internet e fazer uma análise.

abraço
bacalhau


Responder

Gostei + 0

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

Aceitar