Dann nimm dir noch ’nen Byte und steck ’ne Null rein, wenn die Maus hochgeht und ’ne eins, wenn sie runter geht (Boolean).Bauer321 hat geschrieben:ne das soll ja nur gehen wenn man die maustaste gedrückt hält
gelöst: Form verschieben
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Form verschieben
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 465
- Registriert: Sa 21. Aug 2010, 21:30
- OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
- CPU-Target: 64-Bit
- Wohnort: nahe Bremen
- Kontaktdaten:
Re: Form verschieben
hmm...
auch das hier geht nicht:
[/size]
auch das hier geht nicht:
Code: Alles auswählen
var
xc, yc : integer;
formmove : boolean;
procedure TFMain.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
xc := x;
yc := y;
label4.caption := (inttostr(xc) + ' | ' + inttostr(yc));
formmove := true;
end;
procedure TFMain.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if formmove then begin
FMain.Top := FMain.Top+x-xc;
FMain.Left := FMain.Left+y-yc;
mevent.lines.add(inttostr(FMain.Top+x-xc)+' | '+inttostr(FMain.Left+y-yc));
end;
end;
procedure TFMain.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
formmove := false;
end;
www.mcpatcher.net | www.hoeper.me
-
- Beiträge: 770
- Registriert: Sa 21. Feb 2009, 13:46
- OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
- CPU-Target: 32Bit
Re: Form verschieben
man mal bei onmousemove:
als bedingung wenn du nur willst das bei gedrückter linker maustaste ausgeführt wird...
onmousedown ist so richtig...
Code: Alles auswählen
if [ssleft] in shift then
onmousedown ist so richtig...
Code: Alles auswählen
Signatur := nil;
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Form verschieben
Mal davon abgesehen, dass du Variablen, die Daten zu einer Formularinstanz als globale Variablen anlegst (was als grob fahrlässig gelten könnte), kein meine Glasgoogle den Fehler leider nicht finden. Ganz grob gesehen, ist das auch der Code, den ich mir in fünf Minuten zum Testen in den PC gehämmert habe.Bauer321 hat geschrieben:auch das hier geht nicht:
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 320
- Registriert: Sa 21. Mär 2009, 17:31
- OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
- CPU-Target: 64 Bit
Re: Form verschieben
Unter Windows geht es am besten, wenn du einfach nur das in FormMouseDown packst: (mit uses windows;)
Code: Alles auswählen
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
-
- Beiträge: 465
- Registriert: Sa 21. Aug 2010, 21:30
- OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
- CPU-Target: 64-Bit
- Wohnort: nahe Bremen
- Kontaktdaten:
Re: Form verschieben
MAC hat geschrieben:man mal bei onmousemove:als bedingung wenn du nur willst das bei gedrückter linker maustaste ausgeführt wird...Code: Alles auswählen
if [ssleft] in shift then
onmousedown ist so richtig...
Code: Alles auswählen
procedure TFMain.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
//if formmove then begin
if [ssleft] in shift then begin
FMain.Top := FMain.Top+x-xc;
FMain.Left := FMain.Left+y-yc;
mevent.lines.add(inttostr(FMain.Top+x-xc)+' | '+inttostr(FMain.Left+y-yc));
end;
end;
//Fehler:
//umain.pas(126,6) Error: Incompatible types: got "Set Of TShiftStateEnum" expected "LongWord"
dann kommt identifier ht_caption not foundBeniBela hat geschrieben:Unter Windows geht es am besten, wenn du einfach nur das in FormMouseDown packst: (mit uses windows;)Code: Alles auswählen
ReleaseCapture(); SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
www.mcpatcher.net | www.hoeper.me
-
- Beiträge: 320
- Registriert: Sa 21. Mär 2009, 17:31
- OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
- CPU-Target: 64 Bit
Re: Form verschieben
Okay, es heißt HTCAPTION ohne Strich.Bauer321 hat geschrieben: dann kommt identifier ht_caption not found
(in dr lcltype unit und ist 2 )