Ribbon und ActionManager



  • Hat von euch einer die im 2009/2010er enthaltene Ribbon Komponente im produktiven Einsatz?
    Weil so langsam glaub ich ich bin zu Doof das teil zu verwenden oder steckt die Komponente wirklich noch in der Betaphase?



  • VergissEs schrieb:

    Hat von euch einer die im 2009/2010er enthaltene Ribbon Komponente im produktiven Einsatz?

    Ja.

    VergissEs schrieb:

    Weil so langsam glaub ich ich bin zu Doof das teil zu verwenden

    Woran scheitert es denn? Die Grundzüge - Ribbon mit ActionManager verknüpfen, für jede RibbonGroup eine ActionBar erstellen und assoziieren, dann der ActionBar die gewünschten Items hinzufügen - sollten klar sein, oder?

    VergissEs schrieb:

    oder steckt die Komponente wirklich noch in der Betaphase?

    Ich muß zugeben, daß ich versucht bin, darauf mit einem nachdrücklichen "Ja" zu antworten 😡

    Die Ribbon-Komponenten sind im Grunde okay, die Komponentenarchitektur finde ich sogar durchaus gelungen, und zur Laufzeit tun sie auch das, was ich will - aber die Handhabung im VCL-Designer ist manchmal schwer erträglich. Ich habe auch öfters Probleme mit den ActionManager-typischen Eigenheiten (speziell mit ein paar AVs, die in diesem Zusammenhang immer wieder auftreten).



  • audacia schrieb:

    Woran scheitert es denn? Die Grundzüge - Ribbon mit ActionManager verknüpfen, für jede RibbonGroup eine ActionBar erstellen und assoziieren, dann der ActionBar die gewünschten Items hinzufügen - sollten klar sein, oder?

    Wie man den ActionManager mit den Ribbon verwendent ist klar.

    Ein Problem ist z.B.
    Habe eine CAD ähnliche Anwendung d.h. viele ToolButtons von denen immer nur einer gedrückt(ausgewählt) ist,
    also GroupIndex gesetzt und AutoCheck auf true, somit sollte eigentlich immer einer gedrückt sein, aber alle bisher gedrückten Button bleiben gedrückt dargestellt bzw. haben eine dunklere Auswahlfarbe.

    Dann habe ich ein RibbonGroup GroupAlign gaHorizontal der erste Button sollte ein großer sein (Auswahlpfeil) dann daneben jeweils 3 vertikal angeordnete Buttonlisten die mit gpStart, gpMiddle, gpEnd verschönert bzw. deren Zusammengehörigkeit darstellen soll.
    Also erste Reihe erstellt den nächsten Butten reingesetzt der in der zweiten Zeile sein soll (NewRow = true) und die neue Zeile beginnt im großen Button 😡

    Dann wollte ich vor einer bestehenden RibbonPage eine neue Einfügen,
    also eine neue RibbonPage erstellt dann in der Ribbonkomponente die Eigenschaft Tabs ausgewählt um den erstellten nach vorne zu bringen (macht er, aber zeichnet nicht neu) dann wollte ich den Caption ändern und es werden von allen RibbonPage die Captions geändert 😮. OK Fehler gefunden die Indexe werden nicht verändert also per Hand geändert damit es wieder geht.

    Dann wurden während ich mit den Ribbon "spielte" mir des öfteren Runtime Fehler um die Ohren geworfen und einmal wurde die .dfm Datei zerstört das per Texteditor wieder behoben werden konnte.

    Wie man das teil auf zahlenden Kunden los lassen kann ist mir Fraglich.



  • @audacia
    Hast du schon mal den CommandStyle=csGallery zum laufen gebracht?



  • VergissEs schrieb:

    Hast du schon mal den CommandStyle=csGallery zum laufen gebracht?

    Das habe ich noch nie gebraucht, aber in der mitgelieferten Demoanwendung funktioniert es gut, und es ist hier sogar dokumentiert.



  • Danke, hab mir mal die Demoanwendung genauer angesehen und csGallery gefunden.
    Hatte mir unter csGallery was anderes vorgestellt so alla ein im RibbonGroup angezeigte ListView/Listbox die Actions gruppiert darstellt.

    Die zwei docwiki Seiten über Ribbon hatte ich schon gelesen bzw.
    "csGallery = Command is a gallery or when selected, it displays a gallery."
    ist nicht grade Hilfreich wie man es verwendet.

    Wenn ich eine Stringgrid bzw. Editfelder in eine RibbonGroup reinsetzt
    wie kann man die Breite der RibbonGroup beeinflussen? damit man z.B. breitere
    Editfelder unter bringen kann.



  • VergissEs schrieb:

    Hatte mir unter csGallery was anderes vorgestellt so alla ein im RibbonGroup angezeigte ListView/Listbox die Actions gruppiert darstellt.

    Hast du für sowas ein Beispiel (Screenshot, etc.)?

    VergissEs schrieb:

    Die zwei docwiki Seiten über Ribbon hatte ich schon gelesen bzw.
    "csGallery = Command is a gallery or when selected, it displays a gallery."
    ist nicht grade Hilfreich wie man es verwendet.

    Weiter unten steht mehr dazu.

    VergissEs schrieb:

    Wenn ich eine Stringgrid bzw. Editfelder in eine RibbonGroup reinsetzt
    wie kann man die Breite der RibbonGroup beeinflussen? damit man z.B. breitere
    Editfelder unter bringen kann.

    Um beliebige Controls in RibbonGroups unterbringen zu können, mußt du sie ja auf ein TActionClientItem mit CommandStyle=csControl legen. Dieses TActionClientItem hat dann eine Eigenschaft namens CommandProperties::Width, die die Breite des Steuerelementes bestimmt.



  • audacia schrieb:

    VergissEs schrieb:

    Hatte mir unter csGallery was anderes vorgestellt so alla ein im RibbonGroup angezeigte ListView/Listbox die Actions gruppiert darstellt.

    Hast du für sowas ein Beispiel (Screenshot, etc.)?

    Ja unter http://www.magixsoft.de/Ribbon.png

    Hab auch noch einen Screenshot von dem GroupIndex Problem hochgeladen
    http://www.magixsoft.de/Ribbon2.png
    Das Dreick ist das momentan ausgewählte (ist heller orange) die anderen sind vorher angeklickt worden (dunkel orange) evtl kennst du ja eine Einstellungsmöglichkeit damit nur der ausgewählte dargestellt wird.

    audacia schrieb:

    VergissEs schrieb:

    Wenn ich eine Stringgrid bzw. Editfelder in eine RibbonGroup reinsetzt
    wie kann man die Breite der RibbonGroup beeinflussen? damit man z.B. breitere
    Editfelder unter bringen kann.

    Um beliebige Controls in RibbonGroups unterbringen zu können, mußt du sie ja auf ein TActionClientItem mit CommandStyle=csControl legen. Dieses TActionClientItem hat dann eine Eigenschaft namens CommandProperties::Width, die die Breite des Steuerelementes bestimmt.

    Super, dank dir, wieder ein Schritt weiter.

    Nun gibts ein neues Problem sobald ich die Ribbon Komponente auf meine bestehende Form lege kann ich bestehende TEdit Felder nicht mehr durch anklicken bearbeiten (Mauszeiger ändert sich bei MouseOver aber bekommt nach klick keinen focus 😞 )
    Lösche ich den Ribbon wieder von der Form klappt alles normal.
    Leider lässt sich dieser Fehler nicht durch ein erstellen eines neuen Projektes nachvollziehen.



  • Ein weiteres Folgeproblem ist aufgetreten.

    Scheinbar vertragen sich nicht die Actions des ActionManagers mit der ToolBar wenn diese DropDown Buttons besitzen.
    Die Buttons mit Dropdown werden in normaler Buttongröße gezeichnet mit enthaltenen Pfeil um in das DropDown Menü zu gelangen muss man neben den Button klicken.
    http://www.magixsoft.de/ToolBar.png



  • VergissEs schrieb:

    Nun gibts ein neues Problem sobald ich die Ribbon Komponente auf meine bestehende Form lege kann ich bestehende TEdit Felder nicht mehr durch anklicken bearbeiten (Mauszeiger ändert sich bei MouseOver aber bekommt nach klick keinen focus 😞 )
    Lösche ich den Ribbon wieder von der Form klappt alles normal.
    Leider lässt sich dieser Fehler nicht durch ein erstellen eines neuen Projektes nachvollziehen.

    OK kann diesen Fehler nun nachvollziehen.
    Wenn das Ribbon auf einen MDIChild Form plaziert wird,
    können TEdit Felder in der MDIForm nicht mehr durch klicken focusiert werden 😡
    Demo-Source http://www.magixsoft.de/MDIRibbon.zip



  • VergissEs schrieb:

    OK kann diesen Fehler nun nachvollziehen.
    Wenn das Ribbon auf einen MDIChild Form plaziert wird,
    können TEdit Felder in der MDIForm nicht mehr durch klicken focusiert werden 😡
    Demo-Source http://www.magixsoft.de/MDIRibbon.zip

    könnte evtl ein BCB 2010 Besitzer überprüfen ob dieser Fehler auch dort Nachvollziehbar ist? (habe nur dir 2009 Version)



  • UseCustomFrame=false behebt das Problem


Anmelden zum Antworten