Announcement

Collapse
No announcement yet.

Toolbar - Coolbar - Hauptmenü und co.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Toolbar - Coolbar - Hauptmenü und co.

    Moin,

    Ich will in meinem Project eine frei konfigurierbare Benutzeroberfläche erschaffen, was mir mit der oben erwähnten Kombination natürlich gelingt. Die Toolbars sind teilweise herauslösbar und werden bei Neustart auch wieder so gestartet. Jetzt habe ich aber 2 Probleme:

    1. Die Toolbar ist so organisiert daß sie nur 2 sinnvolle Kombinationen der Größenänderung zuläßt. Diese sind einzeilig und dreizeilig. Zweizeilig macht keinen Sinn und soll aus diesem Grunde automatisch übersprungen werden. Wenn ich dies bei dem OnResize-Event mache habe ich ein unangenehmes Flackern, wenn ich eine andere Toolbar im angedocktem Modus durch die selbe Coolbar schiebe. Wenn ich die Größenänderung dem Anwender überlasse und er die nicht sinnvollen Daten einstellen kann habe ich das Problem, daß die Toolbar beim andocken selbstständig vom 3-zeilgen Zustand in den 2-zeiligen Zustand wechselt. Leider bietet mir die TToolbar kein Event, welches in etwa so aussehen müßte : OnCanResize(var NewHeight, NewWidth: Integer; var Accept: Boolean)

    2. Das nächste Problem habe ich mit dem Hauptmenü als verschiebbare Toolbar. Ich habe den normalen TToolButton an welchem eine Dropdown-menü (TPopupmenu) hängt. Leider ist das Klick-Verhalten nicht ganz Hauptmenü-konform. Man kann nicht Auf Datei klicken, die Maus gedrückt halten und auf Beenden loßlassen um das OnExecute-Event der Action auszulösen. Dazu ist es nötig, das ich einen vollständigen Einzelklick auf Datei mache und einen weiteren auf Beenden.

    ich hoffe mene Fragen können innerhalb des "reorganisiertem" Forums zügig beantworted werden.

    MfG

    Falk Wachholz

  • #2
    Zu Frage 2: Damit eine Toolbar sich "menüähnlich" verhält, musst du zumindest mal den Toolbuttons jeweils einen GroupIndex <> 0 verpassen. (Bei mir tritt dein konkretes Problem jedenfalls nicht auf, und ich hab's so gemacht :-))
    <br>Uli

    Comment


    • #3
      Hi,

      Auch deine Antwort ist so nicht ganz richtig, auch wenn sie mich auf den richtigen Weg gebracht hat. Das Problem bei deiner Lösung ist, daß es weder in Delphi5, noch in Delphi6 für den TToolbutton die property GroupIndex gibt. Die property Grouped bewirkte lediglich, daß die "Hauptmenüitems" sich Hauptmenüähnlich verhielten, daß angehängte Dropdownmenü behielt sein Fehlverhalten, wie in meiner Frage beschrieben. Die Lösung liegt darin, das man dem TToolbutton nur die Eigenschaft MenuItem setzt, und das DropDownmenü lehr läßt. Das angehangene MenüItem darf dabei keiner Action entsprechen, falls es ein Untermenü haben soll. Dies darf auch nicht für die Beschriftung geschehen. Das Untermenü erledigt man dabei so, das man dies in dem TPopupmenu macht, indem man die Untereinträge setzt. Diese dürfen dann auch wieder normalen Aktionen entsprechen.

      Meine erste Frage bleibt aber weiter im Raum stehen, wobei zu erwähnen ist, daß die Anwendung in Delphi5 auf NT4 geschrieben wird. Es kann sein, das mein Problem bei den anderen Umgebungen nicht mehr auftritt.

      MfG

      Falk Wachhol

      Comment


      • #4
        Sorry, ich hab natürlich bei dem einzigen SpeedButton weit und breit in meiner Anwendung nachgesehen, wie die Eigenschaft heißt. :-)
        Hier hab ich mal das relevante Codefragment rausgekramt:
        <pre><code>
        Button := TToolButton.Create(GetParentForm(self));
        Button.Parent := self;
        Button.MenuItem := MenuItem;
        Button.Grouped := true;
        Button.AutoSize := true;
        </code></pre>
        Das "MenuItem" ist dabei aber kein eigenständiges Popupmenu, sondern nur eine Referenz auf einen Hauptmenüpunkt eines TMainMenu's (d.h. <pre>Menu.Items[i]</pre>, wobei Menu das Mainmenu ist)
        <p>Ciao, Uli

        Comment

        Working...
        X