![]() |
Eine Action für alle Forms
Guten Tag,
Ich habe folgende Ausgangslage: Ein Datenmodul namens actions in diesem habe ich eine Actions-List draufgeknallt und eine Action namens "Schliessen" definiert. Ein Formular namens Main Ein Formular namens Mitarbeiter Nun möchte ich mit der Action "Schliessen" sowohl das Formular Mitarbeiter als auch das Formular Main schliessen können. Lässt sich dies Bewerkstelligen ? Wenn ja wie ? Ist dies auch mit einem Create möglich ? Wenn ja wie ? Ich muss ja den Formularnamen dem Close voranstellen somit müsste ich für jeden Button eine einzelne Routine machen die genau das selbe ausführen. Das Ziel ist es eine Close Action zu haben aber diese für alle Buttons benutzen zu können.
Delphi-Quellcode:
Gruss,
mitarbeiter.close;
VARIABLE.close; Int3g3r |
AW: Eine Action für alle Forms
Versuch mal
Delphi-Quellcode:
Was meinst du mit Screen.ActiveForm.Close; Zitat:
|
AW: Eine Action für alle Forms
Was meinst du mit
Zitat:
Einen solchen Block unabhänging vom "frm_Mitarbeiter" machen.
Delphi-Quellcode:
Des weiteren wäre sowas auch für Qrys Hilfreich.
frm_Mitarbeiter := Tfrm_Mitarbeiter.create(self);
try frm_Mitarbeiter.ShowModal; finally frm_Mitarbeiter.Free; end; Ich möchte folgendes auch unabhänig vom frm_Mitarbeiter.
Delphi-Quellcode:
procedure Tdm_actions.dbMitarbeiterBearbeitenExecute(Sender: TObject);
begin frm_Mitarbeiter.qryMitarbeiter.Edit; end; Besten Dank Zitat:
|
AW: Eine Action für alle Forms
Zitat:
Keine Ahnung, ob das in deinem Fall passt, aber so könnte es gehen:
Delphi-Quellcode:
Bei den Buttons oder MenuItems, die mit der Action verknüpft sind, setzt du einfach den Tag entsprechend auf 1, 2 oder 3.
procedure TForm369.Action1Execute(Sender: TObject);
var cmp: TComponent; frm: TForm; frmClass: TFormClass; mode: Integer; begin mode := 0; cmp := (Sender as TBasicAction).ActionComponent; if cmp <> nil then begin mode := cmp.Tag; end; case mode of 1: frmClass := Tfrm_Mitarbeiter; 2: frmClass := Tfrm_ABCD; 3: frmClass := Tfrm_ABDEFF; else raise Exception.Create('kein Mode gesetzt!'); end; frm := frmClass.Create(Application); try frm.ShowModal; finally frm.Free; end; end; Zusätzlich würde ich noch die case-Anweisung auslagern und durch eine FormClass Registrierung ersetzen um das ganze etwas zu entkoppeln. Das ist aber ein separates Thema. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz