Announcement

Collapse
No announcement yet.

Messagedlg beim Ereignis PageControl.OnChanging

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

  • Messagedlg beim Ereignis PageControl.OnChanging

    Folgender Code liegt vor:

    <p>
    procedure TAdrGrpFrm.PageControl1Changing(Sender: TObject;
    var AllowChange: Boolean);
    begin
    Berechtigung;
    If HauptFrm.UserId = 'Administrator' then
    begin
    S_Verwalten := true;
    AllowChange := True;
    exit;
    end;
    Case PageControl1.Tag of
    0: begin
    If (S_Verwalten = true)
    or (S_Lesen = true)
    or (S_Aendern = true)
    or (S_Hinzufuegen = true)
    or (S_Loeschen = true) then
    begin
    AllowChange := True;
    StatusBar1.AutoHint := false;
    end
    else
    begin
    MessageDlg('Sie haben keine Zugriffsberechtigung',mtError, [mbOk], 0);
    AllowChange := false;
    end
    end;
    end;
    end;
    <PRE>

    Messagedlg wird dabei nicht angezeigt und das Programm damit blockiert.

    Weiß Jemand Rat ?

    Gruß

    Peter

  • #2
    Hallo Peter,
    ist dein case auf PAGECONTROL1.TAG gewollt? Dann würdest Du zur Laufzeit das Tag ändern?! Ich nehme an, du möchtest eigentlich abfragen, ob die erste Seite des Controls aktiv ist?! Wenn ja, dann wäre PAGECONTROL1.PAGEINDEX die richtige Wahl. Warum der ELSE-Zweig des IF (oder überhaupt CASE trifft) kannst Du nur selbst debuggen (TAG prüfen: Einsprung in CASE) und den Zustand der anderen BOOL.
    Ciao
    Fran

    Comment


    • #3
      Hallo Frank,

      Case und Tag ist OK. Die <b>ActivePage</b> wird bereits beim <b>PageControlChange</b> abgefragt und Tag entsprechend gesetzt.

      Das ganze funktioniert unter Delphi 7.1 einfwandfrei. Nur bei Delphi 2005 behindert scheinbar <b>PageControl</b> den Dialog <b>Messagedlg</b>.

      Gruß

      Pete

      Comment


      • #4
        Hi Peter,
        probier statt Messagedlg mal application.messagebox<br>cu Michae

        Comment


        • #5
          Hallo Michael,

          vielen Dank für deinen Tipp. So funktioniert die Meldung. Mir wäre die Meldung mit Bitmap <b>mtError</b> lieber gewesen.

          Aber seit Delphi 2005 muss man wohl bescheidener mit den Ansprüchen sein.

          Gruß

          Pete

          Comment

          Working...
          X