AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

variants in klasse zuweisen

Ein Thema von thomasch · begonnen am 30. Mai 2005 · letzter Beitrag vom 30. Mai 2005
Antwort Antwort
thomasch

Registriert seit: 7. Apr 2005
57 Beiträge
 
Delphi 2007 Architect
 
#1

variants in klasse zuweisen

  Alt 30. Mai 2005, 09:33
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: variants in klasse zuweisen

  Alt 30. Mai 2005, 10:54
Hallo thomasch,

wenn du beim Aufruf so vorgehst, dann dürfte es keine Probleme geben:

Delphi-Quellcode:
var
  st: cSetzTyp;
begin
  st := cSetzTyp.Create;
  st.SetTyp1;
  st.Free;
end;
Grüße vom marabu

PS: Für Delphi ungewöhnliche Namenskonvention...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz