AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Mainmenue: untermenues verschwinden lassen
Thema durchsuchen
Ansicht
Themen-Optionen

Mainmenue: untermenues verschwinden lassen

Ein Thema von Hartfrid Krause · begonnen am 4. Jun 2012 · letzter Beitrag vom 5. Jun 2012
Antwort Antwort
Perlsau
(Gast)

n/a Beiträge
 
#1

AW: Mainmenue: untermenues verschwinden lassen

  Alt 4. Jun 2012, 10:37
Eine Abfrage nach Auswählen des Untermenus ist möglich, aber eigentlich zu umständlich.
Es gibt meines Wissenstandes nach keine einfache Schnell-Lösung für diese Aufgabe. Wenn ich z.B. in einer Datenbank-Anwendung gewisse Menüpunkte unzugänglich machen möchte, nachdem (oder bevor) der Anwender eine Tabelle in den Edit-Modus versetzt, dann muß ich dafür eine Procedure erstellen, die ich gewöhnlich ...SchreibenErlaubt bzw. ...SchreibenVerboten nenne. Und weil ich meist mit einer TActionList arbeite, manipuliere ich nicht die Menü-Einträge direkt, sondern die der Aktionsliste:
Delphi-Quellcode:
PROCEDURE TFormMain.Projekt_SchreibenErlaubt;
BEGIN
     AL_Projekt_Neu.Enabled := FALSE; //AktionsListen-Eintrag ProjektNeu deaktivieren
     AL_Projekt_Delete.Enabled := FALSE; //AktionsListen-Eintrag ProjektDelete deaktivieren
     AL_Projekt_Edit.Enabled := FALSE; //AktionsListen-Eintrag ProjektEdit deaktivieren

     AL_Projekt_Post.Enabled := TRUE; //AktionsListen-Eintrag ProjektPost aktivieren
     AL_Projekt_Cancel.Enabled := TRUE; //AktionsListen-Eintrag ProjektCancel aktivieren

     DBEd_ProjektTitel.ReadOnly := FALSE; //DB-Edit Titel auf Read & Write setzen
END;

PROCEDURE TFormMain.Projekt_SchreibenVerboten;
BEGIN
     AL_Projekt_Neu.Enabled := TRUE; //AktionsListen-Eintrag ProjektNeu aktivieren
     AL_Projekt_Delete.Enabled := TRUE; //AktionsListen-Eintrag ProjektDelete aktivieren
     AL_Projekt_Edit.Enabled := TRUE; //AktionsListen-Eintrag ProjektEdit aktivieren

     AL_Projekt_Post.Enabled := FALSE; //AktionsListen-Eintrag ProjektPost deaktivieren
     AL_Projekt_Cancel.Enabled := FALSE; //AktionsListen-Eintrag ProjektCancel deaktivieren

     DBEd_ProjektTitel.ReadOnly := TRUE; //DB-Edit Titel auf ReadOnly setzen
END;
Aufgerufen wird das dann, wenn der Anwender z.B. einen Eintrag ändern will bzw. wenn er die Änderung abgeschlossen hat:
Delphi-Quellcode:
procedure TFormMain.AL_Projekt_EditExecute(Sender: TObject);
begin
     Projekt_SchreibenErlaubt;
     DatMod.Dset_Projekte.Edit;
end;

procedure TFormMain.AL_Projekt_PostExecute(Sender: TObject);
begin
     DatMod.Dset_Projekte.Post;
     Projekt_SchreibenVerboten;
end;

// oder

procedure TFormMain.AL_Projekt_CancelExecute(Sender: TObject);
begin
     DatMod.Dset_Projekte.Cancel;
     Projekt_SchreibenVerboten;
end;

Willst du jedoch einen kompletten Menüpunkt deaktivieren, genügt ein Menüpunkt.Enabled := FALSE; , was natürlich auch für Untermenüpunkte gilt. Am besten, wie bereits empfohlen, machst du das in speziellen Proceduren, so daß du für verschiedene Fälle genau die richtigen Einträge ein- und ausschaltest.

Geändert von Perlsau ( 4. Jun 2012 um 10:42 Uhr) Grund: Ergänzung
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 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