Variant & Arrays



  • Hallo Leute,

    ich bin mir zwar nicht sicher ob dieses Thema hier her gehört, aber
    da ich mit dem c++Builder arbeite versuch ichs einfach mal.
    Aaaaalso. Ich habe mir ein Variant Array dynamisch erzeugt und möchte
    nun die unterschiedlichsten Variants in diesem Array ablegen. Mit eindimensionalen Variants fnktioniert das auch prima, aber sobald ein
    Array aus doubles oder dergleichen in dem Variant Array abgelegt werden soll
    tritt ein "_Assert" mit der Meldung:
    "vt=rhs.vt @VARIANT.cpp/421
    Press [Y]...."
    auf.?! Hä wat is los?!?!

    Variant *DataChangeValues;
      DataChangeValues = new Variant[Global.StringGridCount];
      ...
    
      Variant value = Item->get_Value(); // irgend ein Variant wird übergeben
    
      for(int i=0;i<Global.StringGridCount;i++)
      {
        // Überprüfen um was für ein Variant Typ es sich handelt..
        if(value.VType == (VT_BYREF | VT_ARRAY | VT_R4))   // float Array
        {
          DataChangeValues[i].VType = value.VType;  
          DataChangeValues[i] = value;  // Schlägt fehl
     :confused:     }
        else if(value.VType == (VT_BYREF | VT_ARRAY | VT_R8))   // double Array
        {
          DataChangeValues[i].VType = value.VType;
          DataChangeValues[i] = value;     // Schlägt fehl
     :confused:     }
        ..
        else if(1)
        {
          DataChangeValues[i].VType = value.VType;           // eindim. Variable    
          DataChangeValues[i] = value;    // Funktioniert 
     :)     }
        ....
    

    Oder gibt es eine Andere Möglichkeit diese Variants zwischenzuspeichern?!

    Danke im Vorraus für jegliche Anregungen
    🙂 Schubidubi


Anmelden zum Antworten