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

 




Responder a