Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Fehlerliste in Eigener Unit (https://www.delphipraxis.net/112256-fehlerliste-eigener-unit.html)

MCOP2001DE 17. Apr 2008 17:09


Fehlerliste in Eigener Unit
 
Hallo
Ich möchte zur Übersichtlichkeit eine Unit für die Fehler Meldungen in mein Programm einarbeiten.
jetzt ich habe folgendes Problem

ich habe eine Unit Fehlerverarbeitung angelegt Folgender Code

Delphi-Quellcode:
unit Fehlerverarbeitung;

interface

uses
  Classes, Windows, Messages, SysUtils, Variants, Controls,
  Dialogs;

type
  Fehlerliste = class(TThread)
  TFehler1501: TTimer;

  private

  public
    procedure Fehler1501();
    procedure Fehler1502(Sender: TObject);
    procedure Fehlermeldung1501();
    procedure Fehlermeldung1502();
    var
     Fehler15010 : String;
     Fehler15011 : String;
     Fehler15012 : String;
     Fehler15013 : String;
     Fehler15014 : String;
     Fehler15015 : String;
     Fehler15016 : String;
     Fehler15017 : String;
     Fehler15018 : String;
     Fehler15019 : String;
     Fehler15020 : String;
     Fehler15021 : String;
     Fehler15022 : String;
     Fehler15023 : String;
     Fehler15024 : String;
     Fehler15025 : String;
     Fehler15026 : String;
     Fehler15027 : String;
     Fehler15028 : String;
     Fehler15029 : String;
  end;

implementation


// Fehlerliste 1501
procedure Fehlerliste.Fehler1501 ();
begin
  if Fehler15010 = '1' then
   begin
     Fehlermeldung1501;
   end;

...

procedure Fehlerliste.Fehlermeldung1501;
begin
  if Fehler15010 = '1' then
   begin
     Showmessage('Fehler 15010 ');
   end;
und möchte nun z.B. ob eine Datenbank verbindung hergestellt ist das wollte ich so abfragen klappt aber nicht

Delphi-Quellcode:
if Fileexists (Grunddaten) then
       begin
         Verbindung.Grunddaten.LoginPrompt                     := False;
         Verbindung.Grunddaten.Connected                       := True;
          if Verbindung.Grunddaten.Connected = False then
           begin
           Fehlerverarbeitung.Fehler15010   := '1'; // Datenbank Grundlagen fehlt
           end;
          end
Kann mir jemand Helfen?

Mirko

sirius 17. Apr 2008 17:24

Re: Fehlerliste in Eigener Unit
 
Was ist denn das für ein Konzept? Wieso einen Thread?

Man könnte es so machen
Delphi-Quellcode:
Unit Fehlermeldungen;
//hier stehen nur die Fehlerstrings drin.

interface

const
   Fehler01='Du Idiot, kannst du nicht aufpassen?';
   Fehler02='Komm mir nicht zu nahe!';
   ...

//Jetzt könnte man noch in der Fehlerunit eigene Exceptions deklarieren.
  type myException=class(Exception);

implementation

end;

Auf jeden Fall könnte man es dann so weiter machen:
Delphi-Quellcode:
procedure Connect;
begin
  if Fileexists (Grunddaten) then  //FileExists? Bist du dir sicher?
       begin
         Verbindung.Grunddaten.LoginPrompt                     := False;
         Verbindung.Grunddaten.Connected                       := True;
          if Verbindung.Grunddaten.Connected = False then
           raise myOwnException.Create(Fehler01);
end;
Aber ich habe das Gefühl, du hast noch mehr vor, als ich dir jetzt beschreiben konnte.

MCOP2001DE 20. Apr 2008 08:15

Re: Fehlerliste in Eigener Unit
 
Hallo Sirius

Danke erstmal für deine schnelle Antword.
ich habe den Code mal ausprobiert er funktioniert soweit auch aber
er sit nicht genz das was ich gesucht habe.
den ich möchte alle Fehler und auch Meldungen von Fehleingaben über diese Unit ausgeben lassen.
und das ist damit zwar möglich aber der Code wird in der Zeile der Meldung ja abgebrochen und nicht weiter verarbeitet.
Gibt es nicht eine möglichkeit von einer anderen Unit variabelen auszufüllen und dan Fehlerunit aufzurufen.
Denn teilweise sind es ja keine Programmfehler sondern nur Meldungen über Falscheingaben.
Ich habe das bis jetzt immer eine TForm benutzt auf der ich TLabels abgelegt habe und über einen Timer die Proceduren aufgerufen habe aber ich finde das nicht wirklich einen schönen Programierstil.
Das müsste denke ich doch auch über den aufruf von Units funktionieren habe leider noch nichts gefunden wie mann sowas Realisieren kann.

ne Idee?

Mirko


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz