ComboBox sieht komisch aus in Style List



  • Hallo. Ich habe das Rad Studio 2009. In einem Projekt ist die TComboBox total normal, in einem anderen Projekt verhält sich die TComboBox seltsam. Ich füge die TComboBox bei beiden ein:

    * Beide haben weißen Hintergrund mit schwarzen Pfeil

    Dann setze ich beide auf Style csDropDownList:

    * Projekt 1: Der Button rechts in der Combobox wird sichtbar, sprich grau.

    * Projekt 2: die KOMPLETTE Combobox wird grau.

    Das ist die Original TComboBox, wieso kann das in einem Projekt so sein und in einem anderen so komisch? Hat davon irgendwer mal gehört und weiss zu helfen? 😉

    Ich kann die ComboBox aus Projekt 2 in Projekt 1 kopieren und dann sieht sie auch wieder normal aus.

    Was mir auch auffällt. Ein Projekt hat Oldschool Style Combobox, das andere Projekt mit Web2 Effekt. Irgendwas übergeordnetes muss verstellt sein, aber was?



  • Screenshots sind bei sowas immer hilfreicher als viele Worte, aber in diesem Fall fehlt wohl einfach bei Projekt 1 das Häkchen in den Projektoptionen bei "Laufzeit-Themes aktivieren".



  • Kann leider kein Screen anbieten, da die Projekte nicht auf diesem Rechner sind, sondern bei einem Freund.

    "Laufzeit-Themes aktivieren" kann ich unter Projektoptionen bei RAD 2009 leider nicht finden. Wo genau soll das stehen?

    Abgesehen das Projekt2 den moderneren Look hat, hat es aber auch den Fehler. Denn die ComboBox ist dort komplett grau, was ja falsch ist. Es soll ja nur der DropDown-Button grau sein.



  • KKA schrieb:

    "Laufzeit-Themes aktivieren" kann ich unter Projektoptionen bei RAD 2009 leider nicht finden. Wo genau soll das stehen?

    Die Option heißt in C++Builder XE so. Kann sein, daß es die in C++Builder 2009 noch nicht gab; dann füge stattdessen deinem Hauptformular die Komponente "TXPManifest" hinzu.

    KKA schrieb:

    Abgesehen das Projekt2 den moderneren Look hat, hat es aber auch den Fehler. Denn die ComboBox ist dort komplett grau, was ja falsch ist.

    Das ist nicht falsch, das gehört so. Der Stil csDropDownList legt fest, daß die Combobox nur eine Auswahl aus vorgegebenen Elementen bietet, hingegen erlaubt der Stil csDropDown auch die Eingabe von beliebigem Text. Die üblichen Windows-Themes rendern ersteres eben als durchgehend in clBtnFace gefärbtes Steuerelement, letzteres als Edit-Steuerelement mit einem Dropdown-Pfeil rechts. Das ist in jeder anderen Windowsanwendung auch so, und da sollte man sich also dran halten.



  • audacia schrieb:

    KKA schrieb:

    "Laufzeit-Themes aktivieren" kann ich unter Projektoptionen bei RAD 2009 leider nicht finden. Wo genau soll das stehen?

    Die Option heißt in C++Builder XE so. Kann sein, daß es die in C++Builder 2009 noch nicht gab; dann füge stattdessen deinem Hauptformular die Komponente "TXPManifest" hinzu.

    In keinen meiner Projekte war jemals TXPManifest und es funktionierte bisher ^^

    audacia schrieb:

    KKA schrieb:

    Abgesehen das Projekt2 den moderneren Look hat, hat es aber auch den Fehler. Denn die ComboBox ist dort komplett grau, was ja falsch ist.

    Das ist nicht falsch, das gehört so. Der Stil csDropDownList legt fest, daß die Combobox nur eine Auswahl aus vorgegebenen Elementen bietet, hingegen erlaubt der Stil csDropDown auch die Eingabe von beliebigem Text. Die üblichen Windows-Themes rendern ersteres eben als durchgehend in clBtnFace gefärbtes Steuerelement, letzteres als Edit-Steuerelement mit einem Dropdown-Pfeil rechts. Das ist in jeder anderen Windowsanwendung auch so, und da sollte man sich also dran halten.

    Das kann so nicht stimmen. Niemals hat mir Windows 95-8.1 eine TComboBox angeboten die komplett grau war. Nach deiner Aussage wäre die ComboBox hier im Forum oben links also falsch? Denn ich sehe da sehr wohl eine weisse Fläche und es ist keine zum editieren.



  • KKA schrieb:

    In keinen meiner Projekte war jemals TXPManifest und es funktionierte bisher ^^

    Was weiß ich, dann heißt die Projektoption halt anders. TXPManifest ist ein Relikt aus Delphi 7, das aber dennoch funktioniert, wenngleich die Projektoption unbekannten Namens die bessere Lösung wäre.

    Dieser Post suggeriert übrigens, daß die Option durchaus in den Projektoptionen von C++Builder 2009 existiert und genauso heißt ("Enable runtime themes" auf Englisch). Vielleicht mußt du also nochmal genauer hinschauen.

    KKA schrieb:

    Das kann so nicht stimmen. Niemals hat mir Windows 95-8.1 eine TComboBox angeboten die komplett grau war.

    Ach was.

    Windows 7, 8 oder 8.1, ja? Öffne mal die Internetoptionen (Shortcut: Win + R, "inetcpl.cpl") und dort das Tab "Programme". Was siehst du da?
    Oder die Windows-Update-Einstellungen? Wie ist es da?

    KKA schrieb:

    Nach deiner Aussage wäre die ComboBox hier im Forum oben links also falsch?

    Ja. Die rendert ja auch der Browser, der wiederum nur das CSS der Website umsetzt, und das stammt halt wie der Rest des Forums aus der Zeit von Windows 2000. Die Windows-Themes spielen da überhaupt keine Rolle.



  • Oha! Ich entschuldige mich! Ich muss bestätigen, dass die System-ChomboBoxen in Windows 8.1 tatsächlich komplett grau sind. Das ist mir nie aufgefallen. Systemblind?! *krass*

    Vermutlich weil ich mehr im Browser arbeite und da sind in Chrome und Firefox die Comboboxen auf Webseiten wie zu Win95 Zeiten.

    Allerdings bin ich verwirrt.. ich habe unter Projektoptionen->Anwendungen den Haken stehen. Wenn ich aber ein neues Projekt anlege und dort eine ComboBox auf meinem Win8.1 Rechner einfüge sieht das wie zu win95 Zeiten aus. Ich habe XPManifest dann auch auf das Formular gelegt, geändert hat sich aber nichts. Ich finde aber in der ComboBox auch keine Eigenschaft wo ich das Manifest explizit auswählen müsste.



  • KKA schrieb:

    Allerdings bin ich verwirrt.. ich habe unter Projektoptionen->Anwendungen den Haken stehen. Wenn ich aber ein neues Projekt anlege und dort eine ComboBox auf meinem Win8.1 Rechner einfüge sieht das wie zu win95 Zeiten aus.

    Screenshot und Projektdateien bitte.



  • Ich habe rausgefunden warum das so komisch ist. Ich hatte DoubleBuffered auf TRUE für die Form. Wenn es FALSE ist, wird die ComboBox richtig(grau) angezeigt. Ich muss dann DoubleBuffered für die ComboBox bzw Form kurz auf FALSE setzen, damit korrigiert es sich und dann wenn ich auf TRUE setze, bleibt es auch korrekt. Bug in Rad 2009?



  • wird die ComboBox richtig(grau) angezeigt.

    ___________________________
    fifa 14 ultimate team coins


Anmelden zum Antworten