Hi zusammen
Die Lösung bahnte sich an, als ich versuchte, die Prozedur von der Mainform aus aufzurufen:
Delphi-Quellcode:
procedure TPDFOfficerMain.FormCreate(Sender: TObject);
var LFTextSelection : String;
begin
// DoTextSelectionEvent := PathFinderFrame1.OnTextSelectionEvent;
FAppDataPath := 'C:\PDFOfficerAppdata';
PathFinderFrame1.OnTextSelectionEvent := DoTextSelectionEvent;
// PathFinderFrame1.FileMaskInit; //<== Aufruf von hier
if Fileexists(FAppDataPath+'\TVNameitems.txt') then
begin
FSettingDefault := False;
TVName.LoadFromFile(FAppDataPath+'\TVNameitems.txt');
end
else
begin
FSettingDefault := true;
FillTVName;
end;
end;
Das war erstmal nicht möglich, da ich die Prozedur im Basisframe gewohnheitsmässig private deklariert hatte. Also änderte ich das und verschob die Deklaration in den Puplic-Abschnitt.
Dabei vergass ich, den Aufruf von FileMaskInit aus dem Constructor des Basisframes zu entfernen.
Resultat: Die Items der Combobox waren jetzt doppelt vorhanden.
Fazit: der Basisframe vererbt an seine Instanzen nur das, was public deklariert ist - was ich eigentlich wissen müsste.
AddItem ist hier wirklich komplett falsch. Du musst schon Items.Add nehmen. Dann sollte es auch gehen.
Leider hast du meinen Eingangsthread etwas flüchtig gelesen - ich hatte beides versucht, und beides ging schief. Ich bin übrzeugt: public deklariert würde auch beides funktionieren.
Die Hilfe führt AddItem als Methode von TCustomCombo auf.
Gruss
Delbor