ColorBox1->Style - zugreifen ??



  • wer lesen kann ist klar im Vorteil !
    Ich denke es ist sehr wichtig bzw. unerläßlich sich mal mit der Hilfe und deren Umgang zu beschäftigen !

    VCL-Referenz
    TCustomComboBox::Style
    
    Mit der Eigenschaft Style können Sie festlegen, wie das Kombinationsfeld angezeigt wird.
    
    __property TComboBoxStyle Style = {read=FStyle, write=SetStyle, default=0};
    
    Beschreibung
    
    Mit der Eigenschaft Style können Sie festlegen, wie der Eingabe- und der Listenbereich des Kombinationsfeldes angezeigt werden. 
    
    Folgende Werte stehen für den Typ TComboBoxStyle zur Verfügung:
    
    Wert	       Bedeutung
    
    - csDropDown    Erzeugt eine Dropdown-Liste mit einem Eingabefeld zur manuellen Eingabe von Text. Alle Einträge sind Strings mit derselben Höhe.
    - csSimple    Erzeugt ein Eingabefeld und darunter eine feste Liste (Listenfeld). Die Länge der Liste wird durch die Eigenschaft Height des Kombinationsfeldes festgelegt.
    - csDropDownList    Erzeugt eine Dropdown-Liste ohne Eingabefeld. Der Benutzer kann keine manuellen Eingaben vornehmen. Alle Einträge sind Strings mit derselben Höhe.
    - csOwnerDrawFixed    Erzeugt eine vom Eigentümer gezeichnete Dropdown-Liste ohne Eingabefeld. Die Höhe der Einträge in der Liste wird durch den jeweiligen Wert der Eigenschaft ItemHeight festgelegt.
    
    csOwnerDrawVariable    Erzeugt eine vom Eigentümer gezeichnete Dropdown-Liste ohne Eingabefeld. Die Höhe der Einträge in der Liste kann variieren.
    
    Wenn Style den Wert csOwnerDrawFixed oder csOwnerDrawVariable hat, tritt das Ereignis OnDrawItem ein. Wenn Style den Wert csOwnerDrawVariable hat, tritt zusätzlich das Ereignis OnMeasureItem ein.
    


  • Hallo,

    ich weiß nicht ob ich zu blöd bin, aber ich bin immer noch nicht schlauer, wie ich jetzt nun z.B. auf csSimple style zugreife...

    mfg



  • Hallo

    Du bringst da etwas durcheinander. TComboBoxStyle ist kein Set sondern ein enum. Das bedeutet das die Eigenschaft Style genau einen Wert aus der geposteten Liste annehmen kann, aber nicht eine Kombination von diesen.
    Deshalb kannst du ganz einfach so vergleiche

    if (ColorBox1->Style == csSimple)
    

    bis bald
    akari



  • Hallo,

    so ich habe es jetzt so versucht, kommt aber eine Fehlermeldung:

    [C++ Fehler] Unit6.cpp(57): E2094 'operator==' ist im Typ 'TColorBoxStyle' für Argumente des Typs 'TComboBoxStyle' nicht implementiert
    

    Ich will einfach nur ein Button machen, der auf Knopfdruck verschiedene Styles (Farben) freischaltet bzw. sie dann wieder deaktiviert....

    mfg



  • __property TComboBoxStyle Style =

    Wert:
    csDropDown
    csSimple
    csDropDownList
    .
    .
    .

    vielleicht doch mal mit der Hilfe beschäftigen.
    Übrigens gibt es da hier im Forum, soweit ich mich erinnere, eine Anleitung wie man mit der Hilfe umgeht. Ohne Hilfe und dann noch Anfänger bist Du erschossen und mußt immer irgendwo nachfragen.

    Edit: sehe gerade, daß Du von Farben sprichst und nicht von ComboBox Style, aber da wäre es schon wichtig zu wissen was Du mit 'darauf zugreifen' , also was genau Du machen willst, meinst.
    Aber nichts desto Trotz gilt das Gleiche .



  • Hallo,

    also ich will ein Button machen der bei Knopfdruck Eine gewisse "Farbenpalette" freischaltet sowie bei nochmaligen Drücken wieder deaktiviert..

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      ColorBox1->Style /* ka wie es jetzt weiter geht */ = !ColorBox1->Style //ka..
    }
    

    Das ist eigtl. das einfachste der Welt, wenn man auf diese ver****** Styles zugreifen kann....

    mfg
    fischbacke



  • Vorneweg: bitte auf den Unterschied zwischen TComboBox und TColorBox achten, bei letzterer ist Style tatsächlich ein Set.

    TColorBoxStyle cbs = ColorBox1->Style; // zwischenspeichern
      ...
      ColorBox1->Style = ColorBox1->Style << cbCustomColor; // ändern
      ...
      ColorBox1->Style = cbs; // auf alte Werte zurücksetzen
    


  • ok, ich weiß jetzt was Du möchtest und bei dieser Sache ist die Hilfe etwas schwieriger. versuchs mal auf diese Art

    ColorBox1->Style = TColorBoxStyle() << cbExtendedColors;
    

    edit: war etwas zu spät 🙂



  • Hallo,

    eine Frage hätt`ich da noch und zwar wie kann ich die "Farbpalette" wieder deaktivieren, wenn ich erneut auf den Button drücke ??

    mfg



  • ... Hab schon alles versucht aber irgendwie komm ich net weiter....



    1. Nochmal lesen (und analysieren), was ich weiter oben geschrieben hatte.

    2. Den FAQ-Eintrag "Verschiedenes - Umgang mit Set" studieren.



  • Jansen schrieb:

    Vorneweg: bitte auf den Unterschied zwischen TComboBox und TColorBox achten, bei letzterer ist Style tatsächlich ein Set.

    TColorBoxStyle cbs = ColorBox1->Style; // zwischenspeichern
      ...
      ColorBox1->Style = ColorBox1->Style << cbCustomColor; // ändern
      ...
      ColorBox1->Style = cbs; // auf alte Werte zurücksetzen
    

    Das funktioniert ja nicht, dass ist ja das Problem....

    mfg



  • warum sollte das nicht funktionieren ? Außerdem was heißt: '"Farbpalette" wieder deaktivieren' ? deaktivieren ist normalerweise Enable false.



  • Hallo,

    Fabrpallttet deaktivieren heisst, dass die hinzugefügten Farben, bei erneuten Drücken des Button, wieder "verschwinden".

    mfg


Anmelden zum Antworten