Capturar Name e Caption do Menu Pressionado

Delphi

03/06/2004

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

Curtidas 0

Respostas

Bacalhau

Bacalhau

03/06/2004

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


GOSTEI 0
POSTAR