Halo nochmal...
Das Problem stellt sich noch besser/schlechter da...
Delphi-Quellcode:
procedure TMainform.SpeedButton14Click(Sender: TObject);
var
ValOut : OLEVariant;
Val : PSafeArray;
sBuffer: WideString;
T : TVarType;
i,
iMin,
iMax: integer;
begin
Combobox1.Items.Clear;
TVariantArg(ValOUT).VT := VT_BYREF
or VT_ARRAY;
TVariantArg(ValOUT).ppArray :=
nil;
TargetCommando(2233,EmptyParam,ValOut);
// IDM_GETBLOCKFMTS
Val := PSafeArray(TVariantArg(ValOUT).ppArray);
// Die Anzahl der Elemente im Array bestimmen
ActiveX.SafeArrayGetLBound(Val, 1, iMin);
ActiveX.SafeArrayGetUBound(Val, 1, iMax);
// Die einzelnen Strings auslesen
for i := iMin
to iMax
do
begin
ActiveX.SafeArrayGetElement(Val, i, sBuffer);
Combobox1.Items.Add(SBuffer);
end;
Caption := '
Cool';
// <- Auch hier gibt es den gleichen Fehler...
// Vorsicht, Leak...
//a-> ActiveX.SafeArrayDestroyData(Val); // EVariantBadVarTypeError
//b-> ActiveX.SafeArrayDestroy(Val); // EVariantBadVarTypeError
end;
jetzt verstehe ich gar nix mehr....
Hat den keiner eine Idee?
Frank