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/)
-   -   C# Verschieben der Form verhindern (https://www.delphipraxis.net/53290-verschieben-der-form-verhindern.html)

Sergej 13. Sep 2005 16:54


Verschieben der Form verhindern
 
Tag. Wie kann ich verhindern, dass eine Form verschoben wird. Ich habe es schon mit dem OnMove-Event versucht, und dort beim Verschieben einfach wieder die gewünschte Position eingestellt. Allerdings ist dies keine zufriedenstellende Lösung, da sie ein unschönes Flackern verursacht.

Greetz Sergej

faux 13. Sep 2005 16:57

Re: Verschieben der Form verhindern
 
Die Eigenschaft Locked sperrt IMHO das Verschieben und das Größeverändern der Form.

Grüße
Faux

NACHTRAG:
OK, anscheinend doch nicht.
In der Beschreibung der Eigenschaft steht jedoch: "The locked property determines if we can move or resize the control". Daraus habe ich die Behauptung angenommen....

Sergej 13. Sep 2005 17:01

Re: Verschieben der Form verhindern
 
;-) Locked funktioniert nur zur Designzeit in der IDE

Greetz Sergej

faux 13. Sep 2005 17:02

Re: Verschieben der Form verhindern
 
Zitat:

Zitat von Sergej
;-) Locked funktioniert nur zur Designzeit in der IDE

Greetz Sergej

LOL, wo liegt dann der Sinn dieser Eigenschaft? :gruebel:

Matze 13. Sep 2005 17:03

Re: Verschieben der Form verhindern
 
:hi: Hallo

Align auf alCustom setzen, sollte diesen Zweck erfüllen. Doch ich glaube, die Größe des Formulars lässt sich dann auch nicht mehr ändern.

Nachtrag: Doch, die Größe kann man weiterhin verändern.


Ach ich Depp, ich war wieder bei Delphi :wall: Sorry, ich hätte wissen müssen, dass du mit C# hantierst.

faux 13. Sep 2005 17:04

Re: Verschieben der Form verhindern
 
Ich hab nichtmal ein Align bei einer WinForm... :?

Sergej 13. Sep 2005 17:05

Re: Verschieben der Form verhindern
 
Zitat:

Zitat von faux
LOL, wo liegt dann der Sinn dieser Eigenschaft? :gruebel:

Na damit du z.B. deine mühsam zusammengebröselten Controls nicht mehr verschieben kannst. Find ich ganz praktisch, denn ich hab mich früher ( :mrgreen: ) in Delphi öfters mal verklickt, und schon war das label nicht mehr da wo es sein sollte...Naja ist halt ne Spielerei, aber zurück zum Problem....

@Matze : Kein Problem :)


Greetz Sergej

kiar 13. Sep 2005 17:18

Re: Verschieben der Form verhindern
 
hallo Sergej,

Delphi-Quellcode:
Borderstyle := None
kann mann machen.
ist aber nicht die schönste Lösung

raik

Sergej 13. Sep 2005 17:29

Re: Verschieben der Form verhindern
 
Ja hab ich mir auch schon überlegt, nur hätte ich gerne eine Titelleiste. Trotzdem danke.


Greetz Sergej

Sergej 14. Sep 2005 00:01

Re: Verschieben der Form verhindern
 
Hier kommt die Lösung:


Zitat:

Zitat von George Shepherd's Windows Forms FAQ

protected override void WndProc(ref Message m)
{
const int WM_NCLBUTTONDOWN = 161;
const int WM_SYSCOMMAND = 274;
const int HTCAPTION = 2;
const int SC_MOVE = 61456;

if ( (m.Msg == WM_SYSCOMMAND) && (m.WParam.ToInt32() == SC_MOVE) )
return;
if ( (m.Msg == WM_NCLBUTTONDOWN) && (m.WParam.ToInt32() == HTCAPTION) )
return;

base.WndProc (ref m);
}

Man muss einfach die WndProc Methode der Formklasse überschreiben...hat mich ja nur schlappe 6 Stunden gekostet :)


Greetz Sergej


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 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