AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Variant

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

Registriert seit: 15. Nov 2007
195 Beiträge
 
#2

Re: Problem mit Variant

  Alt 4. Nov 2008, 17:19
Sorry, aber ich fuerchte Du musst die Frage noch einmal stellen. Und zwar ausfuehrlicher, denn aus Deinem code geht nicht hervor was er machen soll und somit auch nicht, was schief laeuft. Ich gehe trotzdem mal darauf ein:




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
   FBodyShape := Value; // nicht deklariert. Was ist das?
// Art der Bohrung
   BohrungsType := FBodyShape.Type; // Auch nicht deklariert... und dann eine property namens 'type' Aua!
// Setze Durchmesser
   Diameter := FBodyShape.Diameter.Value; // -"-

//Variantes Array erzeugen
   FPosArray := VarArrayOf([FPosValues[ 0],FPosValues[ 1],FPosValues[ 2]]); //Da steht jetzt erst mal Muell drin oder?
   TTA := vartype(FPosArray[0]); // zeigt 5 an als Double alles OK //warum sollte es 5 anzeigen?
   TTA := vartype(FPosArray[1]); //Dann war die erste Zuweisung auf TTA umsonst, wenn Du das hier wieder ueberschreibst
   TTA := vartype(FPosArray[2]); //-"-
// Abfrage
   FBodyShape.GetOrigin(FPosArray); //Was macht die Anweisung?
//
   TTA := vartype(FPosArray[0]); // zeigt 5 an als Double alles OK //s.o.
   TTA := vartype(FPosArray[1]);
   TTA := vartype(FPosArray[2]);
//
   S := varTypeAsString(FPosArray[0]); // zeigt $00Af an = 175 //hab ich was nicht mitbekommen? wi sollen die 175 herkommen

// Positionen
// sollte 175 - 275 - 0 rauskommen
   FXpos := FPosArray[0]; // keine Werte
   FYpos := FPosArray[1];
   FZpos := 0;
end;
die Funktion in der TLB ist folgend
Delphi-Quellcode:
  
  HoleDisp = dispinterface
   ...
   ....
  procedure GetOrigin(ioOrigin: {??PSafeArray}OleVariant); dispid 1611071508;
   ...
   ....
ioOrigion ist als SafeArrayVariant als Double definiert

Es werden nur unsinnige werte oder nur 0 werte zurückgegeben
Vielleicht hat ja jemand eine lösung[/quote]
Frage: wo werden denn die Deiner Meinung nach unsinnigen Werte zurueckgegeben?
Oder anders herum wo macht welche Funktion etwas, das sinnvolle WErte zurueckgeben koennte?

Ich kapiers einfach nicht.
utu

if it was hard to write it should be hard to read
  Mit Zitat antworten Zitat
 


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 10: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 by Thomas Breitkreuz