AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

enum und Strings

Ein Thema von oki · begonnen am 11. Mär 2008 · letzter Beitrag vom 11. Mär 2008
 
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#1

enum und Strings

  Alt 11. Mär 2008, 15:17
Sorry,

meine Suche ging ins leere und ein ordentlicher Titel ist mir auch nicht eingefallen. Ich erkläre erst mal wie ich es sonnst mache und dann die neue Aufgabenstellung. Es soll ja auch noch jemand durchsehen.

Ich habe eine Reihe von Fehlercodes die ich als Resourcestrings definiere. Dann einen Aufzählungstyp für meine Fehlercodes und zum Schluss ein Array mit den Strings.

Delphi-Quellcode:
resourcestring
  rs_Error1 = 'Error 1';
  rs_Error2 = 'Error 2';
  rs_Error3 = 'Error 3';
  rs_Error4 = 'Error 4';


type
  TMyErrors = (
  me_Error1,
  me_Error2,
  me_Error3,
  me_Error4
  );

const
  MyErrorStrings : Array[TMyErrors] of String = (
  rs_Error1,
  rs_Error2,
  rs_Error3,
  rs_Error4
  )
Taucht im Programmablauf ein Fehler auf und ich will diesen Anzeigen, so kann ich diesen wie folgt ausgeben:

Delphi-Quellcode:
procedure AddErrorString(Error : TMyError)
begin
  Memo.Lines.Add(MyErrorString[Error]);
end;
Das ist als Beispiel gedacht, sollte aber genügen.

Jetzt das Problem:
Ich bekomme Errors als Integer-Wert geliefert. Diese sind aber leider etwas aus der Reihe. Es gibt die Errors 1 und 2 und dann zum Bsp. 30 und 41(und ne Menge mehr). Mit dem Aufzählungstyp ist das ja noch hin zu bekommen:

Delphi-Quellcode:
type
  TMyErrors = (
  me_Error1,
  me_Error2,
  me_Error30 = 30,
  me_Error41 = 41
  );
aber dann ist bei mir Schluss. Muß ich jetzt wirklich eine eigene Function für meine Errorcodes schreiben wie:

Delphi-Quellcode:
function GetErrorString(Error : TMyError) : String;
begin
  case Error of
    me_Error1 : Result := rs_Error1;
    me_Error2 : Result := rs_Error2;
    me_Error30 : Result := rs_Error30;
    me_Error41 : Result := rs_Error40;
  end;
end;
oder gibt es einen Deklarationsweg wie oben?

Ich hoffe, ich hab mich jetzt nicht zu sehr geoutet, aber es gibt ja nur dumme Antworten und keine dummen Fragen.

Gruß oki
42
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:32 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