Flytte form

Tags:    delphi

User
Bruger #75 @ 09.01.02 21:44
Hejsa

Jeg har en form (form1] med BorderStyle sat til None. Nu er problemet at man ikke kan trække programmet rundt på skærmen, ligesom man kunne med bjælken for oven med en normal BorderStyle. Hvordan kan jeg lave en knap eller felt, som flytter form1 rundt på skærmen?


Med venlig hilsen

Mikkel Bøg Clemmensen
mt.clemmensen@vip.cybercity.dk



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
<quote>Hejsa

Jeg har en form (form1] med BorderStyle sat til None. Nu er problemet at man ikke kan trække programmet rundt på skærmen, ligesom man kunne med bjælken for oven med en normal BorderStyle. Hvordan kan jeg lave en knap eller felt, som flytter form1 rundt på skærmen?


Med venlig hilsen

Mikkel Bøg Clemmensen
mt.clemmensen@vip.cybercity.dk</quote>

En anden og noget lettere mulighed er at gøre noget i stil med dette. Du kan også sagtens sætte det ind i en anden control, såsom en TLabel, TImage, TPanel etc.

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Releasecapture;
if ssLeft in Shift then
Form1.perform(WM_syscommand, $F012, 0);
end;


Kim Jensen aka BOSH
http://www.hulubulu.dk



<quote>Hejsa

Jeg har en form (form1] med BorderStyle sat til None. Nu er problemet at man ikke kan trække programmet rundt på skærmen, ligesom man kunne med bjælken for oven med en normal BorderStyle. Hvordan kan jeg lave en knap eller felt, som flytter form1 rundt på skærmen?


Med venlig hilsen

Mikkel Bøg Clemmensen
mt.clemmensen@vip.cybercity.dk</quote>

Hej Mikkel.

Du kan gøre det med en label.
Lav en og sæt dens Align til alTop.

Indsæt denne kode:

procedure TForm1.HitTest(var Msg: TWmNcHitTest);
begin
inherited;
if (Msg.Result = htClient) and (Msg.YPos <
Label1.Height + Top + GetSystemMetrics (sm_cyFrame)) then
Msg.Result := htCaption;
end;

Og sæt denne del ind under Public:

procedure HitTest (var Msg: TWmNcHitTest);
message wm_NcHitTest;

Så burde du kunne flytte din form rundt ved at trække i Label1.

Emil Melgaard
<p><a href="mailto:emil.melgaard@private.dk">emil.melgaard@private.dk</a></p>



t