Luis, agora funcionou certinho é que sou meio cabação ainda, faz pouco tempo que estou utilizando Delphi, nunca tinha sonhado em declarar a unit TypInfo e alterar a funcao GetUnitName como vc fez.
Mas valeu, aprendi mais uma. Esta solução do Walter foi muito legal, o cara sabe muito heim, e pelo jeito vc tambem, mas ainda chego lá, eu vim do cobol, clipper e agora vou apanhando do D7, mas um dia eu bato nele. hehehe. obrigado Paulo ----- Original Message ----- From: "Luis Lopes" <[EMAIL PROTECTED]> To: "plucaslazaro" <[EMAIL PROTECTED]> Sent: Friday, October 07, 2005 4:42 PM Subject: Re: [delphi-br] Re: try...except > Paulo, > > O código completo eh aquele mesmo que o colega Wagner > postou... só tem que renomear a função e criar 1 ou 2 > variáveis... eu uso no Delhpi 2K5 Win32. Tenho quase > certeza que funcionará corretamente no Delphi 7, > porque os comandos e funções utilizados são bem > básicos. > > de qq forma, ae está. > > > function GetUnitName(argObject: TObject): string; > var > ptrTypeData: PTypeData; > begin > if (argObject.ClassInfo <> nil) then > begin > ptrTypeData := GetTypeData(argObject.ClassInfo); > Result := ptrTypeData.UnitName; > end; > end; > > { > Parametros: > > AFormError -> Nome do form que tava ativo quando > ocorreu o erro > AControlError -> Nome do controle (Button, form, > Checkbox, etc) que foi clicado > quando ocorreu o erro > ALineError -> Nº da linha com o erro (voce deve > coloca-la na mão mesmo na > implementação) > AUnitError -> Nome da Unit com o erro (voce deve > coloca-la na mão mesmo na > implementação) > ASimbolError -> Nome da rotina com o erro (voce deve > coloca-la na mão mesmo > na implementação) > ADescription -> Descrição do erro (Use E.Message) > ATypeError -> Tipo do erro (Use E.Class) > AInsError -> Instrução (código) com erro > (Descreva-o manualmente; > ATableError -> Tabela em uso quando ocorreu o erro. > } > function CreateDataException(Const AFormError, > AControlError, ALineError, AUnitError, > ASimbolError, ADescription, ATypeError, > AInsError, ATableError: string): Longint; > var > VMemory: TMemoryStatus; > VLogFile: TextFile; > VLogFileName: string; > begin > VMemory.dwLength := SizeOf(TMemoryStatus); > GlobalMemoryStatus(VMemory); > VLogFileName := ExtractFilePath(paramstr(0)) + > '\errorsys.log'; > try > AssignFile(VLogFile,VLogFileName); > if FileExists(VLogFileName) then > begin > Append(VLogFile); > // Writeln(VLogFile,''); > Writeln(VLogFile,StringOfChar('-', 62)); > > // Writeln(VLogFile,''); > end else > begin > Rewrite(VLogFile); > Writeln(VLogFile,'TELEMONT - Engenharia de > Telecomunicações S/A'); > Writeln(VLogFile,'DGE - Diretoria de Gestão > Empresarial/Matriz'); > Writeln(VLogFile,StringOfChar('-', 62)); > Writeln(VLogFile,''); > end; > > Writeln(VLogFile,format('DATE/TIME............: > %s',[DateTimeToStr(Now)])); > Writeln(VLogFile,format('Version Number.......: > %s',['sVersion'])); > Writeln(VLogFile,format('Active Form..........: > %s',[AFormError])); > Writeln(VLogFile,format('Active Control.......: > %s',[AControlError])); > Writeln(VLogFile,format('Unit Error...........: > %s',[AUnitError])); > Writeln(VLogFile,format('Call Symbol..........: > %s',[ASimbolError])); > Writeln(VLogFile,format('Exception type.......: > %s',[ATypeError])); > Writeln(VLogFile,format('Exception Message....: > %s',[ADescription])); > Writeln(VLogFile,format('Instruction error....: > %s',[AInsError])); > Writeln(VLogFile,format('Line error...........: > %s',[ALineError])); > Writeln(VLogFile,format('Table Error..........: > %s',[ATableError])); > > CloseFile(VLogFile); > result := IOResult; > except > result := -1; > end; > end; > > // Use-a assim: > try > except > on E: Exception do > CreateDataException(Screen.ActiveForm.Name, > Screen.ActiveControl.Name, > '84', GetUnitName(Self), > 'procedure > TfDlgRelatorioInspecoes.BitBtn2Click(Sender: > TObject);', > E.Message, > E.ClassName, > > 'DMFrot.dsListaInspecoesPendentes.Dataset.Open;', > 'SErrorTableOpen'); > end; > > > []´s > > Luis Alberto. > > > --- plucaslazaro <[EMAIL PROTECTED]> escreveu: > >> Boa Tarde Luis >> >> Eu não tenho o codigo completo, por isso nao consigo >> executar o programa, dá >> erro, na compilação, falta variáveis que eu declarei >> mas mesmo assim não >> vai. >> >> Se não for te pedir demais, vc poderia me enviar o >> codigo completo? Eu uso >> Delphi7, será que não foi feito pra Delphi 2005 ? >> >> Obrigado >> >> Paulo >> ----- Original Message ----- >> From: "luisalbertolopes" >> <[EMAIL PROTECTED]> >> To: <delphi-br@yahoogrupos.com.br> >> Sent: Friday, October 07, 2005 9:51 AM >> Subject: [delphi-br] Re: try...except >> >> >> Paulo, >> >> Essa função tá declarada no início do código com >> outro nome... vc tem >> que renomeá-la... >> >> Tem também que criar uma varíavel na função que pega >> o nome da unit... >> >> Funciona blzinha! >> >> []´s >> >> Luis Alberto. >> >> --- Em delphi-br@yahoogrupos.com.br, "plucaslazaro" >> <[EMAIL PROTECTED]> escreveu >> > Luis, tbem estou com este código mas nao consegui >> fazer o programa >> de testes >> > funcionar, ou melhor nao sai da compilacao dá erro >> justamente no >> > >> CreateDataException(Screen.ActiveForm.Name,........ >> > >> > Paulo _______________________________________________________ Promoção Yahoo! Acesso Grátis: a cada hora navegada você acumula cupons e concorre a mais de 500 prêmios! Participe! http://yahoo.fbiz.com.br/ -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html