ComboBox (AddObject)



  • Hallo

    ich kann mit dieser Methode einen Eintrag erzeugen und dem Eintrag etwas anhängen

    ich greif dann mit

    Combobox->Items->Object[ComboBox->ItemIndex] drauf zu und würd das angehängte nun in nen string umwandeln machter jedoch nicht.

    Warum geht das nicht oder verstehe ich da was falsch

    cya



  • Hi,
    ich behaupte mal, es ist nicht gerade leicht verständlich was
    Du machen möchstest.

    Lies Dir den Text nochmal durch und versetz Dich bitte in die Lage einer
    anderen Person.

    epidemic



  • Object ist nur eine Referenz(ein Zeiger) auf das, was Du einem Listeneintrag anhängen willst; und einen Zeiger kann mann nicht in einen String umwandeln. Schau Dir in der Doku 'mal die Themen zum "casting" an, z.B. <dynamic_cast>



  • Hallo,

    Casting ist schon richtig. Da das Object aber vom Typ TObject ist wird hier nur ein reinterpret_cast helfen (oder ein einfacher c-cast).



  • TListItem *pItem;
      TListColumn *pColumn;
      // Einen ListView-Eintrag für jedes Bild in ImageList erzeugen
      ListView1->SmallImages = ImageList1;
      ListView1->LargeImages = ImageList1;
      for (int i = 0; i < ImageList1->Count; i++)
      {
        pItem = ListView1->Items->Add();
        pItem->Caption = "Image" + IntToStr(i);
        pItem->ImageIndex = i;
    
      }
      // Zwei Spalten für die Anzeige im Modus vsReport erzeugen
      pColumn = ListView1->Columns->Add();
      pColumn->Caption = "Column 1";
      pColumn = ListView1->Columns->Add();
      pColumn->Caption = "Column 2";
      // Ansichtsstile und Konstanten in das Kombinationsfeld einfügen
      ComboBox1->Items->AddObject("vsIcon", (TObject *)vsIcon);
      ComboBox1->Items->AddObject("vsList", (TObject *)vsList);
    
      ComboBox1->Items->AddObject("vsReport", (TObject *)vsReport);
      ComboBox1->Items->AddObject("vsSmallIcon", (TObject *)vsSmallIcon);
      // Erstes Element im Kombinationsfeld anzeigen
      ComboBox1->ItemIndex = 0;
    
    //bei formCreate
    
      ListView1->ViewStyle = (TViewStyle) ComboBox1->Items->Objects[ComboBox1->ItemIndex];
       Label1->Caption = (String) ComboBox1->Items->Objects[ComboBox1->ItemIndex];
    
    //wenn man jetzt etwas in der ComboBox markiert, wird der Style verändert
    

    aber wie kann ich mir nun diese Object z.b. in einem Label anzeigen lassen, der akzeptiert keine konvertierung , was mach ich falsch wie kann ichs anders machen ( das ich an einen eintrag etwas anhänge) oder verstehe ich das komplett falsch?

    ich hoff das is so besser

    [ Dieser Beitrag wurde am 01.02.2003 um 11:30 Uhr von Voodookiller editiert. ]



  • Original erstellt von Braunstein:
    (oder ein einfacher c-cast).

    C-Cast ist böse! C++-Casts sind übersichtlicher, dokumentieren besser was man macht und man muss eher wissen was man macht.

    Ausserdem erinnern sie einem immer wieder durch ihre umständliche schreibweise daran, dass Casts allgemein böse sind. Vor Allem Reinterpret-Casts...

    -junix


Anmelden zum Antworten