Announcement

Collapse
No announcement yet.

TPopupmenu.....

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

  • TPopupmenu.....

    Hallo, Folgendes Problem : Standardmäßig haben TEdit und TMemo ja ein Popupmenü (Einfügen,Ausschneiden.....). An meine Formulare ist ein Popupmenü für andere
    Programmfunktionen gebunden. Dadurch lassen sich die Popups der oben genannten Felder nicht mehr nutzen. Über welchen Weg kommt man an diese
    Popupmenüs(Einfügen,Ausschneiden...) wieder ran, ohne das formulargebundene Popupmenü zu entfernen??
    Wer kann helfen? Gruß Torsten Schuhr

  • #2
    Moin Torsten,<br>probiers mal damit:
    <pre>
    procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
    begin
    If Button=mbRight then
    Form1.PopupMenu:=Nil;
    end;

    procedure TForm1.Memo1MouseUp(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
    begin
    If Button=mbRight then
    Form1.PopupMenu:=PopupMenu1;
    end;
    </pre&gt

    Comment


    • #3
      Hallo Jens,
      Danke für die Antwort

      Comment


      • #4
        Ich habe das gleiche Probleme etwas aufwendiger gelöst:
        <pre>
        <code>
        type
        TMyFrame = class(TMyBaseFrame)
        //...
        protected
        FPopupFromEdit: Boolean;
        //...
        end;
        <br>
        procedure TMyFrame.ScrollBoxContextPopup(Sender: TObject; MousePos: TPoint;
        var Handled: Boolean);
        begin
        // Das Gepfriemel mit "FPopupFromEdit" und "Handled" in den beiden
        // OnContextPopup-Handlern ist nötig, um bei einem Rechtsklick in eins der
        // Editfelder das Windows-übliche Editboxkontextmenü
        // nicht durch unser Wirken zu verhindern:
        if FPopupFromEdit then
        Handled := false
        else
        begin
        with ScrollBox.ClientToScreen(MousePos) do
        KonstrPopupMenu.Popup(x, y);
        Handled := true;
        end;
        FPopupFromEdit := false;
        end;
        <br>
        procedure TMyFrame.EditXYContextPopup(Sender: TObject;
        MousePos: TPoint; var Handled: Boolean);
        begin
        FPopupFromEdit := true;
        end;
        </code>
        </pre>
        Bei solchen "Tricksereien" bin ich aber immer etwas mißtrauisch und warte nur auf irgendwelche Problemchen. Kannst ja mal schauen, bei welcher der beiden Varianten weniger davon auftreten. :-)
        <br>Ciao, Uli

        Comment


        • #5
          (Bei obigem Bsp. hat EditXY SctrollBox als Parent.

          Comment

          Working...
          X