Verschwindende Captions einer MainMenu Komponente nach dem der Style geändert wurde

    Verschwindende Captions einer MainMenu Komponente nach dem der Style geändert wurde

    Hallo Leute,

    in meinem Projekt habe ich:

    - Eine Menubar
    - Eine MainMenu Komponente
    - Mehrere dazu gehörige Captions

    Jetzt zu meinem Problem.
    Und zwar kann man in der IDE über Projekt-> Optionen -> [unter Anwendung] Erscheinungsbild , einen Standardstil für sein Projekt auswählen.

    Als ich dies das erste mal ausprobiert habe, wurden mir nur die Captions meiner Menubar angezeigt, aber keinerlei Captions der damit verbundenen MainMenu Komponente. Das konnte ich zu 80% lösen in dem ich diese Bibliothek (github.com/RRUZ/vcl-styles-utils) einband, und die uses Vcl.Styles.Utils.Menus,Vcl.Styles.Utils.Forms und Vcl.Styles.Ext nutzte.

    Jedoch habe ich immer noch das Problem das ich bei einem Untermenü keine Captions habe...


    Noch ein paar Details:

    - Alle betroffenen Captions wurden zur Designzeit vergeben.
    - Im Windows-Standardstil funzt alles wunderbar

    Im Anhang ist noch ein Screenshot.

    Ich hoffe ihr könnt mir helfen.

    Gruß
    Fragger93
    Bilder
    • Anzeige-Bug (bearbeitet).png

      13,84 kB, 559×384, 103 mal angesehen
    Hi Fragger

    Ein Auszug aus der Help:
    Setzen Sie OwnerDraw auf false, um das Standard-Zeichnen zu übernehmen. Wenn OwnerDraw auf false gesetzt ist, zeigen
    Menüeinträge den Text und optional links daneben ein Bild (wenn die Eigenschaften Images und ImageIndex gesetzt sind) an.


    Selbst habe ich noch nicht mit Styles gearbeitet, aber ich bin mir sicher, dass OwnerDraw true sein muss, wenn das Standard-Zeichnen nicht übernommen werden soll.
    Und Styles entsprechen nicht dem Standard.
    Ownerdraw gibts, soweit ich gesehen habe, nur beim Mainmenue. Das heisst ganz einfach, dass dadurch alle Untermenues den Ownerdraw-Einstellung des Mainmenues erben.

    Gruss
    Delbor
    roase.ch/

    Was wirklich zählt, ist Intuition. Albert Einstein

    ________________

    Delbor alias Zoran
    Hi Fragger

    Fragger93 schrieb:

    Aber OwnerDraw bringt leider nichts


    Da Delphi nur jeweils die Units neu compiliert, die geändert wurden - geh mal auf Projekt => Alle Projekte erzeugen. Damit werden auch die Units, die nicht geändert wurden, neu compiliert. Vielleicht hift ja das. Ansonsten könntest du es auch mal mit und ohne die eingebundenen Fremdunit versuchen.

    Gruss
    Delbor
    roase.ch/

    Was wirklich zählt, ist Intuition. Albert Einstein

    ________________

    Delbor alias Zoran
    Ich habe alle Projekte jetzt mal neu erzeugen lassen. Aber das hat leider auch nichts gebracht. :(

    Ohne die Fremdunit geht GAR NICHT, da dann noch nicht mal EIN EINZIGES Caption (der MainMenu Komponente) angezeigt wird. Die Captions der Menubar werden allerdings angezeigt...

    Ich greife nirgends auf die Caption zu. Ich habe Sie nur zur Design-Zeit festgelegt.Trotzdem wird mir nichts angezeigt... Ist das ein Bug von Delphi?

    Komisch ist auch das wenn ich schreibe:


    //...

    Einstellungsmenüpunkt1.Caption := 'Einstellung1';
    if(Einstellungsmenüpunkt1.Caption = 'Einstellung1') then
    begin
    ShowMessage('Vorhanden');
    end;

    Er keine Messagebox ausgibt...


    EDIT: Hab den falschen Mainmenu Eintrag abgefragt. peinlich :/ . Aber jetzt weiß ich zumindest das die Caption da ist, ich sie aber nicht sehen kann :/

    FINAL EDIT: Ich hab den Fehler gefunden. In meinem Projekt habe ich unter anderem auch Images in die MainMenu-Komponente eingebunden. Wenn man nun einen anderen Style benutzt, hängt sich das Programm daran auf. Die dahinterliegende Caption ist zwar da, aber man sieht sie nicht! Ich deaktiviere nun die Imagelist sobald ich einen anderen Style benutze und das Problem ist gelöst! :thumbup:

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Fragger93“ ()