Announcement

Collapse
No announcement yet.

MessageDlgPos-Befehl mit Vorgabe "Nein" bei Enter

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

  • MessageDlgPos-Befehl mit Vorgabe "Nein" bei Enter

    Hallo,

    ich benutze den o.a. Befehl, um eine bestimmte Aktion durchzuführen:

    <PRE>
    MessageDlgPos(sFehler, mtCustom, [mbYes, mbNo], 0, 100, 100);
    </PRE>

    Bei Klicken auf die Enter-Taste wird leider die "Ja"-Vorgabe bestätigt, obwohl ich gerne nur bei "Ja"-Mausklick die Aktion durchgeführt haben würde.

    Gibt es eine Möglichkeit, die Vorgabe auf "Nein" zu stellen, so daß die Enter-Taste quasi die "Nein"-Vorgabe bestätigen würde ?

    Grüsse,
    Carsten

  • #2
    Hallo Leute,

    das Problem ist noch nicht gelöst. Hat vielleicht nicht doch einer noch nen guten Tip parat ?

    Oder einen Workaround ?

    Grüsse,
    Carste

    Comment


    • #3
      Nimm statt "MessageDlg" die Methode "Application.MessageBox" oder gleich die gleichnamige Windows-Funktion. Beide haben leider etwas andere Parameter...

      Beispiel:

      <PRE>
      Application.MessageBox('Dies ist ein schlimmer Fehler. Abbrechen?', 'Fehlermeldung', MB_YESNO+MB_ICONERROR+MB_DEFBUTTON2);
      </PRE>

      MB_DEFBUTTON2 macht den 2. Button zum Default.

      Gruß, Werne

      Comment


      • #4
        Hallo Werner,

        danke für Deinen Workaround. Das mit dem Default-Button funktioniert mit dieser Methode wunderbar.

        Bei meiner Anwendung brauche ich jedoch noch die Positionsangabe der Bildschirmmeldung. In meinem Beispiel vom 1. Posting beträgt die x,y-Position (100, 100).

        Wie bekomme ich nun beides geregelt, sowohl Positionsangabe als auch Default-Button ?

        Grüsse,
        Carste

        Comment


        • #5
          Hallo Carsten,

          ich habe gestern in der Online-Hilfe zu MessageBox-Windowsfunktion nachgesehen, aber keine Möglichkeit gefunden, die Positionierung zu verändern. Aber vielleicht suchtst Du mal selbst.

          Falls Du den Quelltext von Delphi hast, wäre eine Alternative, den Quellcode für die MessageDlg-Varianten (in dialogs.pas) in eine neue Unit zu kopieren und den Default-Wert zu ändern. Dessen Zuweisung erfolgt in der Routine "CreateMessageDialog" in dem folgenden Abschnitt

          <PRE>
          if mbOk in Buttons then DefaultButton := mbOk else
          if mbYes in Buttons then DefaultButton := mbYes else
          DefaultButton := mbRetry;
          if mbCancel in Buttons then CancelButton := mbCancel else
          if mbNo in Buttons then CancelButton := mbNo else
          CancelButton := mbOk;
          </PRE>

          Gruß, Werne

          Comment

          Working...
          X