Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Komponente in Funktion verwenden -> Kompo nicht gefun

  Alt 17. Jun 2008, 21:22
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
  Mit Zitat antworten Zitat