AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zurück geliefertes Objekt "halten"

Ein Thema von LaNtHaN · begonnen am 2. Mär 2006 · letzter Beitrag vom 10. Mär 2006
 
LaNtHaN

Registriert seit: 29. Sep 2004
Ort: Wettingen
50 Beiträge
 
Delphi 2006 Professional
 
#1

Zurück geliefertes Objekt "halten"

  Alt 2. Mär 2006, 11:26
Hallo zusammen...

Im Moment versuche ich mich an einem dll, mit welchem ich auf einem DXS-Server bestimmte Tags(Variablen) auslesen oder erstellen kann.
Beim erstellen eines neuen Tags liefert es mir Anscheinend ein Objekt zurück, welches ich halten muss, da ansonsten die erstellte Variable wieder stirbt.

Das DLL ist in etwa wie folgt aufgebaut:
DXSTAGSLib
->ITagsEvents(DispInterface)
->ITagEvents(DispInterface)
->Tags(CoClass)
->ITags(Interface)
-->Item(property)
-->CreateBool(method)
-->usw.
->Tag(CoClass)
->ITag(Interface)
-->Value(property lesen)
-->Value(property setzen)

Der Text, welcher hinter CreateBool steht sieht so aus:
Delphi-Quellcode:
[
id(0x00000001),
helpstring("method CreateBool")
]
HRESULT _stdcall CreateBool([in] VARIANT tagName, [out, retval] VARIANT * pTag );
Dies ist der Code, welcher solch ein Tag mit dem Namen "DXSTest" erstellt. Das erstellte Tag verschwindet jedoch gleich wieder.
Delphi-Quellcode:
var
  Form1: TForm1;
  dxs: Variant;

implementation

{$R *.DFM}


procedure TForm1.FormCreate(Sender: TObject);
begin
     dxs := CreateOleObject('MicroInnovation.DXS.Tags');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  dxs.CreateBool('DXSTEST');
end;
Noch ein Kommentar vom Support, welche mir jedoch nicht ganz klar macht wie ich sowas in Delphi nun lösen kann.

Zitat:
Wenn du ein CreateBool machst, kriegst du ein Objekt zurück. Das Objekt "stirbt" aber gleich wieder wenn es nicht verwendet wird. Die Annahme ist nun, dass du das Objekt nicht hälst und dieses Bool objekt somit nur sehr kurzlebig sprich im monitor schon gar nicht sichtbar ist.
Wir haben ja da im Excel diese Collection von Objekten gemacht, die ständig existierte, also die Objekte hielt und somit diese im DXS angemeldet blieben.
Weitere Frage die aufgetaucht ist:

Die CoClass Tag ist kein direkt erzeugbares Objekt.
Wie greife ich auf solch eine CoClass zu?

Der Text, welcher hinter CoClass Tag steckt:

Delphi-Quellcode:
[
  uuid(BE55C0E2-F111-4B5D-84BC-73DDCFFFE484),
  helpstring("MicroInnovation.DXS.Tag Class"),
  noncreatable
]
coclass Tag
{
  [default] interface ITag;
  [default, source] dispinterface _ITagEvents;
}
;
Vielen Dank für eure Hilfe.
  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 02:07 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 by Thomas Breitkreuz