AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem mit Variant

Ein Thema von ede57 · begonnen am 4. Nov 2008 · letzter Beitrag vom 12. Nov 2008
 
ede57

Registriert seit: 5. Apr 2008
Ort: Hamburg
46 Beiträge
 
Delphi XE Professional
 
#3

Re: Problem mit Variant

  Alt 4. Nov 2008, 19:10
Also ncoh mal die Frage Stellung

Probleme mit Korrekten Rückgabe werten eines Varianten Arrays
Delphi-Quellcode:
// Bohrungs Shape
// Setze Shape
procedure THoleShape.Set_BodyShape(Value:Variant);

Var
  FPosArray : OleVariant;
  FPosValues : Array[0..2] of Double;
  i : Integer;
  tta : tVarType;
  S : string;

begin
// Lokale Variant Variable im Object THoleShape
   FBodyShape := Value;
// Art der Bohrung
   BohrungsType := FBodyShape.Type; // Type ist in Interface so definiert
// Setze Durchmesser
   Diameter := FBodyShape.Diameter.Value; // Durchmesser der Bohrung im Unterobejct Diameter ist OK
                                          // wird auch Korrekt ausgelesen
//Variantes Array erzeugen
   FPosArray := VarArrayOf([FPosValues[ 0],FPosValues[ 1],FPosValues[ 2]]);
 // zeigt 5 an als Double alles OK weil Typen vom Array = varDouble - TTA ist nur zum Test
   TTA := vartype(FPosArray[0]);
   TTA := vartype(FPosArray[1]);
   TTA := vartype(FPosArray[2]);
// Abfrage - übergabe vom Array an
// procedure GetOrigin(ioOrigin: {??PSafeArray}OleVariant); dispid 1611071508; im Ole Server
// ioOrigion ist laut Hilfe als SafeArrayVariant mit 3 Doublewerten definiert
// Übergabe des Arrays und das Array sollte mit werten gefüllt werden
   FBodyShape.GetOrigin(FPosArray);
// noch mal Array prüfen
   TTA := vartype(FPosArray[0]); //TTA zeigt 5 an als varDouble alles OK
   TTA := vartype(FPosArray[1]);
   TTA := vartype(FPosArray[2]);
// S = Sollte eigentlich Double anzeigen - nur test
   S := varTypeAsString(FPosArray[0]); // zeigt $00Af an = 175

// Die 3 korrekten Bohrungs-Positionen der Bohrung sollten jetzt im Array sein
// sollte 175 - 275 - 0 rauskommen aber alle werte sind 0
   FXpos := FPosArray[0]; // keine Werte
   FYpos := FPosArray[1];
   FZpos := 0;
end;
Das problem liegt nur in Rückgabe von den Korrekten werten im Varianten ARRAY
Alle anderen werte können vom Automatisierung-Server (Catia V5) ausgelesen werden
  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 16:52 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