Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Fenster an Screen (rechts oder Links) andocken (https://www.delphipraxis.net/87555-fenster-screen-rechts-oder-links-andocken.html)

kingflo 2. Mär 2007 08:57


Fenster an Screen (rechts oder Links) andocken
 
Hallo...

Ich habe schon sehr vieles versucht aber nichts hat gut funktioniert.

Und zwar will ich mein Fenster, wenn man es z.B rechts an den Bildschirmrand schiebt so andocken, wie es z.B ICQ oder Trillian auch machen. Leider bekomme ich das einfach nicht richtig hin.

z.B hatte ich folgendes versucht

Delphi-Quellcode:
procedure TForm1.WMMoving(var Message: TWMMoving);
var
  rec: ^TRect;
  wrk: TRect;
begin
  SystemParametersInfo(spi_getworkarea, 0, @wrk, 0);
  rec := Pointer(Message.DragRect);
  if rec^.Left < wrk.Left then
  begin
    form.top:=0;
    form.height:=screen.height;
  end
  else if rec^.Right > wrk.Right then
  begin
    form.top:=0;
    form.height:=screen.height;
  end;

end;
Aber das geht alles nicht so richtig es flakert nur blöd wenn man es dann nach rechts schiebt, hat da zufällig jemand eine gute

kingflo 2. Mär 2007 09:34

Re: Fenster an Screen (rechts oder Links) andocken
 
Also so geht es zwar

Delphi-Quellcode:
procedure TLoginForm.WMExitSizeMove(var Msg: TMessage);
begin
 if LoginForm.Left + LoginForm.Width >= screen.Width then begin
    LoginForm.Top:=0;
    oldFormHeight:=LoginForm.Height;
    LoginForm.Height:=screen.Height;
    LoginForm.Left:=screen.Width - LoginForm.Width;
    isDocked:=true;
 end
 else begin
    if isDocked then begin
      LoginForm.Height:=oldFormHeight;
      isDocked:=false;
    end;
 end;
end;
aber nur im WMExitSizeMove aber ich möchte es so haben wie ICQ also direkt im WMMoving.

SebE 2. Mär 2007 09:34

Re: Fenster an Screen (rechts oder Links) andocken
 
TForm besitzt die Eigenschaft "ScreenSnap" in verbindung mit "SnapBuffer".
Probier das am Besten einfach mal aus.

Meflin 2. Mär 2007 16:25

Re: Fenster an Screen (rechts oder Links) andocken
 
Zitat:

Zitat von SebE
TForm besitzt die Eigenschaft "ScreenSnap" in verbindung mit "SnapBuffer".
Probier das am Besten einfach mal aus.

Glaube die gibt es erst ab D7...


Daniel G 2. Mär 2007 16:33

Re: Fenster an Screen (rechts oder Links) andocken
 
Ansonsten gibt es auch in den JEDIs eine Komponente (TMagnetirgendwas), die eben dieses kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz