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