Fehlermeldung Global abfangen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
dw40u
Beiträge: 8
Registriert: Di 5. Aug 2008, 18:54

Fehlermeldung Global abfangen

Beitrag von dw40u »

Hallo, vielecht hat ja jemand eine idee, warum folgender Code nicht geht...

Ich möchte gerne global evtl. Fehler in einem Logbuch schreiben

Code: Alles auswählen

...
  private
    procedure OnError(Sender: TObject; E: Exception);
...
 
procedure TForm1.OnError(Sender: TObject; E: Exception);
begin
  form1.logbuch(E.Message);
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  application.OnException := @OnError;
end;
 
...

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

... Code geht nicht ...

:roll:

... korrigier ihn halt ...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

dw, verwendest du try except?

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Was heißt hier code geht nicht ? Was geht denn nicht ?
OnException wird auch nur aufgerufen wenn so ein Dialog kommt. mit zwei buttons drauf *G*.... sonst nicht.

Mir sagt der erste Beitrag nicht viel. Es müsste eigentlich gehen. im Code sind keine Fehler drin... auf den ersten Blick.

Wird denn TForm1.OnError aufgerufen ?
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

LOL, OnException kommt wenn ein Dialog kommt mit 2 Buttons Drauf. Genau.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Pluto meint den Fehlerdialog, der sonst kommt ;)

Aber um mal beim Thema zu bleiben, was geht denn nun eigentlich nicht? Vielleicht kannst du das mal eingrenzen. Ansonsten dient Application.OnException ja zum Anwendungsweiten abfangen (http://www.freepascal.org/docs-html/fcl ... ption.html" onclick="window.open(this.href);return false;) Nebenbei gibts noch HandleEvent/HandleException usw...

Code: Alles auswählen

unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  StdCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
    procedure OnError(Sender: TObject; E: Exception);
  public
    { public declarations }
  end; 
 
var
  Form1: TForm1; 
 
implementation
 
procedure TForm1.OnError(Sender: TObject; E: Exception);
begin
  ShowMessage(E.Message);
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnException := @OnError;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var test: TStringList;
begin
  test.Add('dg');
end;
 
initialization
  {$I unit1.lrs}
 
end.
Der Code geht wunderbar, und es gibt die entsprechende Showmessage, also irgendwie hab ich das Problem nicht verstanden.
Johannes

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Genau Monta, So habe ich es auch gemeint. es gibt ja unterschiedliche Fehler Meldungen. Aber alle im gleichen Dialog.
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Fehlermeldung Global abfangen

Beitrag von Christian »

ja der dialog wird nunmal bei ner exception ausgelöst...
as ereignis komt aber nicht wenn der dialog kommt sondern wenn ne exception ausgelöst wird.
ist halt schon manchmal n bissl lustig von jemandem der jury bei programmierwettbewerben spielen will.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Fehlermeldung Global abfangen

Beitrag von pluto »

Du hast mich Falsch verstanden. Das Event wird ausgelöst sobald eine Fehler Meldung kommt. klar, was folgt meistens danach ? Ein Dialog.
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Fehlermeldung Global abfangen

Beitrag von Christian »

pluto hat geschrieben:Du hast mich Falsch verstanden. Das Event wird ausgelöst sobald eine Fehler Meldung kommt. klar, was folgt meistens danach ? Ein Dialog.
OnException wird auch nur aufgerufen wenn so ein Dialog kommt. mit zwei buttons drauf *G*.... sonst nicht.
Nö, du hast dich falsch ausgedrückt.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Fehlermeldung Global abfangen

Beitrag von pluto »

Du wusstest aber was ich meine !
MFG
Michael Springwald

Antworten