PDA

View Full Version : Flytta en form utan ram...


trasher
2001-08-02, 22:23
Går det att flytta en form som inte har en ram?

------------------

/Trasher a.k.a Kristian
Söderholm

jt
2001-08-03, 08:20
type
TForm1 = class(TForm)
private
{ Private declarations }
Procedure WMNCHitTest( Var msg: TWMNCHitTest );
message WM_NCHITTEST;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMNCHitTest(var Msg: TWMNCHitTest);
begin
inherited;
if Msg.Result = HTCLIENT then
Msg.Result := HTCAPTION;
end;
end.

Nu ska du kunna flytta formuläret utan att använda ramen.

trasher
2001-08-03, 14:00
Det funkar ju men det ända problemet
då är ju att formen's knappar och dylikt
blir oanvändbara...
Du vet inte hur man kan göra samma sak
fast bara med den översta delen av rutan?

------------------

/Trasher a.k.a Kristian
Söderholm

jt
2001-08-03, 15:02
Använd t.e.x en panel som "översta del" och använd följande i panelens OnMouseDown event.

procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
If Button = mbLeft then
begin
ReleaseCapture;
SendMessage(hwnd(self.Handle), WM_NCLBUTTONDOWN, HTCAPTION, 0);
end;
end;

trasher
2001-08-03, 20:07
Tackar...
Nu fungerar det mkt bra.
Fast jag gjorde det på bilden som
föreställer en mac ram.

------------------

/Trasher a.k.a Kristian
Söderholm