Frage

Auf meinem Haupt-Form habe ich eine TPanel Schaltflächen enthält, die als Symbolleiste wirken. Ich mag diese Symbolleiste klonen / kopieren und die Tasten und ihre Funktionalität zu einer zweiten Form.

das Menü Klonen war einfach newmenu.merge (mainmenu) verwendet wird. Das war eine ausgezeichnete Verknüpfung zu einem TMainMenu duplizieren.

Aber ich bin ratlos, wie leicht meine Symbolleiste duplizieren, ohne manuell die Ereignisse zuweisen und einen Timer halten zu vergleichen und verfolgen, welche Tasten aktiviert und deaktiviert im Vergleich zum realen mainmenu auf dem Hauptformular. Je nachdem, was die Anwendung der wichtigsten Schaltflächen der Symbolleiste tun wird zu verschiedenen Zeiten aktiviert und deaktiviert werden.

Irgendwelche Ideen hier? Vielen Dank für alle Anregungen oder Tipps dies erleichtern.

War es hilfreich?

Lösung

  • Duplizieren Sie die Bedienelemente

    In dem Formulardesigner, wählen Sie das Panel und drücken Sie Strg + C , es zu kopieren und alle seine Kinder in die Zwischenablage. Gehen Sie auf die zweite Form und drücken Sie Strg + V einzufügen.

    Wenn Sie immer noch auf die Gestaltung zu arbeiten und wollen, dass es konsistent halten zwischen den beiden Formen, dann erstellen Sie ein TFrame und gestalten Sie Ihre Symbolleiste Layout gibt. Dann legen Sie eine Instanz dieses Rahmens auf beide Formulare. Änderungen an der Rahmenkonstruktion wird in den Formen berücksichtigt werden.

    Siehe mit Frames Arbeiten in der Hilfe.

  • Sicherstellen, dass beide Sätze von Tasten sind durchweg

    aktiviert

    Erstellen Sie ein Datenmodul. Setzen Sie einen TActionList darauf. Fügen Sie eine Aktion, um es für jede Taste auf dem Hauptformular. Event-Handler die Aktionen der OnUpdate Ereignisse zuordnen. In ihnen, stellen Sie die Aktionen Enabled Eigenschaften. Schließlich weisen Sie jede Action Eigenschaft der Schaltfläche in dem entsprechenden Aktionsobjekt zu verweisen. Die Tasten automatisch erhalten aktiviert und deaktiviert mit den Aktionen. Kein Timer erforderlich.

    Darüber hinaus können Sie die Aktionen der OnExecute Ereignisse behandeln. Klare jeder OnClick Eigenschaft der Schaltfläche, und dann bewegen sich die OnClick Code der Schaltfläche in die OnExecute Handler entsprechende Aktion. Es wird automatisch aufgerufen, wenn Sie auf die Schaltfläche klicken, obwohl die OnClick Eigenschaft ist leer.

    Wenn Sie die Caption oder Hint Eigenschaft eines TAction zuweisen, die entsprechenden Eigenschaften aller zugehörigen Steuerungen ändern auch. Das gleiche gilt für Bilder, wenn die Steuerung unterstützt sie. Aktionen können Menüpunkte zugeordnet werden, auch.

    Siehe Verwenden von Aktionslisten in der Hilfe.

  • wie eine Symbolleiste Acting

    Verwenden Sie einfach TToolbar . Das ist, was es ist für.

    Oder wenn Sie auf Aktionen gewöhnt sind, stellen eine TActionManager in Ihrem Projekt und verwenden sie es mit TActionToolbar und TActionMainMenuBar . Siehe Organisation von Aktionen für Symbolleisten und Menüs in der Hilfe.

Andere Tipps

Sind die Tasten zu Aktionen angebracht? Wenn ja, können Sie das OnUpdate Ereignis des TActionList verwenden, um festzulegen, was sollte und sollte nicht aktiviert werden. Wenn nicht, es ist nicht zu viel Arbeit mit Aktionen zu konvertieren.

Wenn Sie diesen Weg gehen, um mit einer Action zu konvertieren, sollten Sie die Action in einem Datenmodul setzen, wo verschiedene Einheiten und Formen auf sie verweisen können.

  
    

Sie können Clipboard-Objekt Für Kopie Ihres Feld verwenden.

  

Clipboard.SetComponent (Panel1);
Clipboard.GetComponent (Form2, GroupBox1);

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top