Hallo,
ich möchte verschiedene Werte als
OLE Variants verwenden.
Momtentan funktioniert das in etwa so:
Delphi-Quellcode:
Procedure setz_wert_a;
var
myTyp: Variant;
myData:Variant;
begin
myTyp:=VarArrayCreate([0,3],varSmallint);
myData:=VarArrayCreate([0,3],varVariant);
myTyp[0]:=1
myData[0]:='ein_text';
[...]
wert_a:=meineolefunktion(myTyp,myData);
[...]
end;
Procedure setz_wert_b;
var
myTyp: Variant;
myData:Variant;
begin
myTyp:=VarArrayCreate([0,5],varSmallint);
myData:=VarArrayCreate([0,5],varVariant);
myTyp[0]:=1
myData[0]:='ein_anderer_text';
[...]
wert_b:=meineolefunktion(myTyp,myData);
[...]
end;
Jetzt wollte ich die Zuweisungen von myTyp/myData in eine eigene Klasse auslagern und versuchte folgendes:
Delphi-Quellcode:
unit uSetzTyp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Comobj, AutoCAD_TLB, StdCtrls, oleCtnrs ;
Type
cSetzTyp=class
Public
myTyp:variant;
procedure setzTyp1;
end;
implementation
procedure cSetzTyp.setzTyp1;
begin
myTyp:=VarArrayCreate([0,3],varSmallint);
[...]
end;
end.
und im Hauptprogramm:
cSetzTyp.setzTyp1;
um dann später mit wert_b:=meineolefunktion(cSetzTyp.myTyp,cSetzData. myData); arbeiten zu können.
Leider bekomme ich in dem Moment, wo ich in cSetzTyp das Array zuweisen möchte eine Fehlermeldung "ungültiger Variant-typ";
Jetzt meine Fragen:
1. Was mach ich falsch?
2. Geht das ggf. eleganter?
Danke schonmal
Thomasch