![]() |
variants in klasse zuweisen
Hallo,
ich möchte verschiedene Werte als OLE Variants verwenden. Momtentan funktioniert das in etwa so:
Delphi-Quellcode:
Jetzt wollte ich die Zuweisungen von myTyp/myData in eine eigene Klasse auslagern und versuchte folgendes: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;
Delphi-Quellcode:
und im Hauptprogramm:
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.
Delphi-Quellcode:
um dann später mit wert_b:=meineolefunktion(cSetzTyp.myTyp,cSetzData. myData); arbeiten zu können.
cSetzTyp.setzTyp1;
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 |
Re: variants in klasse zuweisen
Hallo thomasch,
wenn du beim Aufruf so vorgehst, dann dürfte es keine Probleme geben:
Delphi-Quellcode:
Grüße vom marabu
var
st: cSetzTyp; begin st := cSetzTyp.Create; st.SetTyp1; st.Free; end; PS: Für Delphi ungewöhnliche Namenskonvention... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 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