Einzelnen Beitrag anzeigen

Joe24

Registriert seit: 21. Dez 2004
Ort: Berlin
51 Beiträge
 
#3

Re: tForm ähnlich wie ein "Popup-Menü" verwenden

  Alt 30. Dez 2004, 03:04
Wenn du die Methode MouseMove des "PopupForm" der folgenden
überschreibst, schließt das "PopupForm" beim Klicken außerhalb
dessen Clientrect.
Das "PopupForm"(Form2) mit Form2.Show aufrufen.

Delphi-Quellcode:
procedure TForm2.MouseMove( Shift : TShiftState; X, Y : Integer);
begin
  if ( ( ssLeft in Shift) or
       ( ssRight in Shift) or
       ( ssMiddle in Shift) or
       ( ssDouble in Shift)) and
     not PtInRect( ClientRect, Point( X, Y)) then
    begin
      SetCaptureControl( nil);
      Close;
    end;
  inherited MouseMove( Shift, X, Y);
end;

procedure TForm2.MouseUp( Button : TMouseButton; Shift : TShiftState; X, Y : Integer);
begin
  if GetCaptureControl = nil then
    SetCaptureControl( self);
  inherited MouseUp( Button, Shift, X, Y);
end;

procedure TForm2.FormShow(Sender: TObject);
begin
  SetCaptureControl( self);
end;
  Mit Zitat antworten Zitat