Hallo,
die Prüfung auf long_names gehört nicht in die Funktion. Der Test boolVar = True ist abgesehen von Implementierungsproblemen so elegant wie das Multiplizieren mit 1 (für Kenner). Eine Methode fände ich nicht so gut, den Zugriff über die Formvariable noch weniger. Wenn man die kurzen und langen "Namen" als Name-Value-Paare in einer StringList (ValueListEditor) hält, dann benötigt man noch nicht mal eine Funktion. Nebenbei entfällt das Risiko nicht synchronisierter ListBoxen. Den Einbau in ein
HTML-Tag würde ich auch nicht unbedingt mit der Übersetzung short -> long in einen Topf werfen.
Delphi-Quellcode:
var
dict: TStrings;
sFont, shortName, s: string;
begin
// ...
shortName := 'RTFM';
dict.Values[shortName] := 'read the fabulous manual';
s := dict.Values[shortName];
// ...
end;
function LongName(const shortName: string; sShort, sLong: TStrings): string;
var
i: Integer;
begin
i := sLong.IndexOf(shortName);
if (i > -1) and (i < sLong.Count)
then Result := sLong[i]
else Result := shortName;
end;
begin
sFont := Format('<font title="%s">%s</font>', [LongName(shortName), shortName]);
end;
Getippt und nicht getestet.
Grüße vom marabu