AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Form mit der Maus ziehen...

Ein Thema von logo123 · begonnen am 17. Okt 2006 · letzter Beitrag vom 17. Okt 2006
Antwort Antwort
logo123

Registriert seit: 9. Okt 2006
42 Beiträge
 
Delphi 2005 Personal
 
#1

Form mit der Maus ziehen...

  Alt 17. Okt 2006, 16:55
Hallo,

ich möchte mir einen eigenen fenter-style machen.
Wenn man auf einer Image drauf klickt und mit der maus zieht, soll sich das ganze fenster mit bewegen.
Wie geht das?
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Form mit der Maus ziehen...

  Alt 17. Okt 2006, 16:57
du könntest im onmousedown die fensterposition hinterlegen und im onmousemove - falls linke maustaste gedrückt - die form entsprechend verschieben.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#3

Re: Form mit der Maus ziehen...

  Alt 17. Okt 2006, 17:06
Hi,

du musst dabei aber auch darauf achten, dass es zwei Varianten gibt. Du musst dem Benutzer allerdings unbedingt überlassen, welche er benutzen möchte, weil 1. beide Varianten systemweit arbeiten und 2. die erste Variante (SetFullWindowDrag) systembelastender ist. Die FullDragmethode ist allerdings nicht von mir, sondern von EWeiss und die Andere ist auch hier im Forum zu finden.
Delphi-Quellcode:
procedure TfrmMain.xiCaptionBarMouseDown(Sender: TObject; // das ist das MouseDown-Ereigniss deiner Titelleiste
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
   if frmSetting.FullDrag then // wenn der Benutzer für die systembelastendere Methode ist ; musst natürlich diese Zeile an dein Programm anpassen
   begin
     SetFullWindowDrag(frmOp.Handle, True);

     SetFullWindowDrag(frmOp.Handle, False);
   end else // wenn er für den Systemstandard ist
   begin
     ReleaseCapture;
     Perform(wm_syscommand,$f012, 0);
   end;
end;

function TfrmMain.SetFullWindowDrag(hwnd: DWORD; ShowFullWindow: Boolean): Boolean;
var lOldSetting: integer;
    lSuccess : boolean;
begin
  lSuccess := SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, @lOldSetting, 0);
  if lSuccess = False Then
    Exit;

  if Bool(lOldSetting) <> ShowFullWindow then
  begin
    lSuccess := SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, Abs(DWORD(ShowFullWindow)), 0, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE);
    if bool(lSuccess) = True then
    begin
      Result := True;
      ReleaseCapture;
      SendMessage(hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0);
    end;
  end
end;
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Form mit der Maus ziehen...

  Alt 17. Okt 2006, 17:19
Link
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:50 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