Also ich habs jetzt mal überprüft.
Der Aufruf in der TLB_Unit sieht so aus:
procedure set_(const address: WideString; const attrName: WideString; value: OleVariant); safecall;
Sprich ich übergebe den Namen des Objektes, dann den Typ (text) und dann den Inhalt des Objektes.
Der Aufruf dieser Procedure in meiner Komponente läuft so ab:
Delphi-Quellcode:
//AUSSCHNITT
//hier werden die texte aus der TWideStringlist einzeln übergeben
for i := 0 to TextString.Count - 1 do
loc_AkiTitle.set_(TextString.Names[i],'Text',TextString.Values[TextString.Names[i]]);
//hier werden die logos aus der TWideStringlist einzeln übergeben
for i := 0 to LogoString.Count - 1 do
loc_AkiTitle.set_(LogoString.Names[i],'FileName',LogoString.Values[LogoString.Names[i]]);
//hier werden zusätzliche Eigenschaften aus einer TWideStringlist einzeln übergeben
for i := 0 to PropList.Count - 1 do
loc_AkiTitle.set_(PropList.Items[i].str_Name,PropList.Items[i].str_Type,PropList.Items[i].str_Value);
TextString, LogoString sind vom Typ her TWideStringlist
Also sollte das doch so passen.
Oder?
Obwohl, ich sehe gerade, dass der eigentliche Inhalt vom Typ her value: OleVariant ist. Kann hier die Ursache für das Problem liegen?
Inhalte, die ich aus Edits hole, kommen ausschließlich von TTntEdits.
Die TWideStringlist habe ich mir fertig von der JCL geborgt.
Ich hoffe, dass das eventuell etwas hilft, mir bei meinem Problem zu helfen?