Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ActionManager, Toolbox, sauberes Design (https://www.delphipraxis.net/116572-actionmanager-toolbox-sauberes-design.html)

cltom 2. Jul 2008 11:35


ActionManager, Toolbox, sauberes Design
 
Hallo DPler,

eine Grundsatz-Frage: ich möchte eine Toolbox machen (á la Photoshop), also ein extra Window ohne Form-Buttons und fsAlways on Top. In diesem Toolwindow sollen (nicht überraschend) ein paar wesentliche Funktionen rein. Diese sind via Action Manager organisiert (zur Zeit, nicht notwendigerweise). Die Actions wiederum sollen natürlich auch vom main-Form abrufbar sein (dort etwa in einem MainMenu).

Wie löst man das elegant auf?

a) die Actions stehen in einem Datamodule, das sowohl das mainform als auch das toolform haben können. Wie kriege ich da aber die actions gelöst, die auf das mainform zugreifen?
b) ich lege die Actions im toolform an mit diversen Nachteilen, vorrangig aber: wie kann ich dann auf das mainform zugreifen ohne Zirkelbezug (mainform <-> toolform)
c) ich lasse die Actions im mainform und löse aus dem toolform nur "etwas" aus, das die action ausführt. wieder: wie ohne zirkelbezug?

Ich finde da keine saubere Lösung, um nicht actions doppelt anzulegen aber auch keine zirkelbezüge zu kreieren.

danke für tipps.

gruß
tom

angos 2. Jul 2008 13:18

Re: ActionManager, Toolbox, sauberes Design
 
Hi,

wie meinst du das:
Zitat:

Wie kriege ich da aber die actions gelöst, die auf das mainform zugreifen?

NickelM 4. Jul 2008 15:54

Re: ActionManager, Toolbox, sauberes Design
 
Du willst also, das bei beiden Fentsern Mainform und Tollwindow die gleichen Funtionen ausgeführt werden???

1. Versuch mal ob du die Prozedure von dem Ereigniss auch dem OnClick Ereignis vom MainMenu zuweisen kannst.
2. Oder du schreibst für die Anweisungen Prozeduren oder/und Funktionen und rufst sie bei beiden Events auf.
Delphi-Quellcode:
procedure Tuwas;
begin
//hier deine Anweisungen
end;


// bei Beiden Events folgendes
begin
Tuwas
end;
Du musst aber die Prozedure in der Unit machen also nicht
Delphi-Quellcode:
procedure TForm1.Tuwas;

//sondern

procedure Tuwas;
Dann in dem Mainfrom (also Prozedure in der Unit des Toolforms anlegen)
unter implementation:

uses (Name der Toolform Unit)

dann müsste es eigentlich klappen

Gruß NickelM


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz