![]() |
Komponente in Funktion verwenden -> Kompo nicht gefunden!
Ich möchte in meiner Funnktion 2 Komponenten verwenden:
Delphi-Quellcode:
function LongName(short: String): String;
var li: Integer; begin if long_names=True then begin for li := 0 to LbLehShort.Count - 1 do if ansipos(ansilowercase(short),ansilowercase(LbLehShort.Items.Strings[li])) = 1 then if long_direct=TRUE then Result:=LbLehLong.Items.Strings[li] else Result:='<font title="'+LbLehLong.Items.Strings[li]+'">'+short+'</font>'; end; end; Zitat:
|
Re: Komponente in Funktion verwenden -> Kompo nicht gefun
wo hast du sie deklariert und instanziiert?
oki |
Re: Komponente in Funktion verwenden -> Kompo nicht gefun
Da es eine freie Funktion und keine Methode ist, musst du die Form angeben oder eine Methode drauss machen
|
Re: Komponente in Funktion verwenden -> Kompo nicht gefun
und aus
Delphi-Quellcode:
würde ich noch
if long_direct=TRUE then
Delphi-Quellcode:
machen.
if long_direct then
da es sonst zu problemen führen kann. das wurde auch mal in einem thread ausgiebig diskutiert, allerdings finde ich ihn nicht mehr |
Re: Komponente in Funktion verwenden -> Kompo nicht gefun
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:
Getippt und nicht getestet.
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; Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz