AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Form zur Laufzeit verschieben bei BorderStyle: bsNone?
Thema durchsuchen
Ansicht
Themen-Optionen

Form zur Laufzeit verschieben bei BorderStyle: bsNone?

Ein Thema von mlspider · begonnen am 25. Jan 2005 · letzter Beitrag vom 4. Okt 2018
 
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Form zur Laufzeit verschieben bei BorderStyle: bsNone?

  Alt 4. Okt 2018, 13:43
Mit Windows Vcl mach ich es per "Non Client Hit - Abfrage"
Wie ein Fmx damit klar kommt ist mir unbekannt.

Delphi-Quellcode:
type
  TForm1 = class(TForm)
  private
  protected
    procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
  end;

..

procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
var
  Pt: TPoint;
begin
  Pt := ScreenToClient(SmallPointToPoint(Message.Pos));
  if Pt.Y < 30 then // hier legst du fest wie hoch eine selbstgemalte titelzeile hoch ist, entferne das wenn du alles als drag fläche willst
    Message.Result := HTCAPTION
  else
    inherited;
end;
Zweite Möglichkeit, ähnelt dem oben beschriebenen, mit einer OnMouse procedure
Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
const
  SC_DRAGMOVE = $F012;
begin
  if Button = mbLeft then
  begin
    ReleaseCapture;
    Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
  end;
end;
oder Non-Vcl
Delphi-Quellcode:
function DlgProc(hWin: HWND; uMsg: UINT; wp: WPARAM; lp: LPARAM): bool; stdcall;

...

   WM_LBUTTONDOWN:
    begin
     Result := BOOL(DefWindowProc(hWin, uMsg, wp, lp));
     PostMessage(hWin, WM_SYSCOMMAND, $f012, 0);
    end;
Gruß vom KodeZwerg

Geändert von KodeZwerg ( 4. Okt 2018 um 14:12 Uhr)
  Mit Zitat antworten Zitat
 


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 19:29 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