Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.26;
Скачать: CL | DM;

Вниз

Как перетащить форму, если...   Найти похожие ветки 

 
SemFLY ©   (2002-09-12 10:18) [0]

Свойство BorderStyle := bsNONE, а то сделал форму без окантовки,
а теперь перетаскивать её не могу :(

Спасибо ! ;)


 
AFrolov ©   (2002-09-12 10:24) [1]

Почитай статьи как таскать форму не за шапку. Такая статья должна быть на http://www.sources.ru/


 
France   (2002-09-12 10:28) [2]

А вот так попробуйте:
Закиньте в MouseMove(попробовал для Panel и Image - работает)

if ssleft in shift then
begin
ReleaseCapture;
Form1.perform(WM_syscommand, $F012, 0);
end;


 
Игорь Шевченко ©   (2002-09-12 10:29) [3]

Окантовку не проще сделать ? :-)


 
Игорь Шевченко ©   (2002-09-12 10:30) [4]

http://www.delphikingdom.com/treasury/hsdialogs.htm
Там формы без окантовки, таскаются. Ключевое слово - WMNCHitTest


 
McSimm ©   (2002-09-12 10:31) [5]

у формы:
procedure WMNCHitTest(var Msg: TWMNCHitTest); message WM_NCHITTEST;

В этом обработчике надо оценить положение мыши и если надо перетаскивать - вернуть Msg.Result := htCaption;


 
Alibaba ©   (2002-09-12 10:33) [6]

Или MouseMove
Или сделать окантовку
Я больше решений не вижу...
Если найдутся еще мне было-бы интересно услышать. :)


 
Song ©   (2002-09-12 10:44) [7]

SC_DRAGMOVE конечно красиво, но подход ленивого программиста, а не хорошего :-)


 
SemFLY ©   (2002-09-12 16:59) [8]

Оки ,сейчас почитаю что и как ;))


 
zavdim   (2002-09-13 12:53) [9]

Только не в MouseMove, а в MouseDown.


 
alena.svt ©   (2002-09-13 19:43) [10]

А вот так еще и с рамочкой!

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
OldX,
OldY,
OldLeft,
OldTop : Integer;
ScreenDC : HDC;
MoveRect : TRect;
Dragging : Boolean;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
begin
ScreenDC := GetDC(0);
OldX := X;
OldY := Y;
OldLeft := X;
OldTop := Y;
MoveRect := BoundsRect;
DrawFocusRect(ScreenDC, MoveRect);
Dragging := True;
end;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Dragging then begin
DrawFocusRect(ScreenDC,MoveRect);
OldX := X;
OldY := Y;
MoveRect := Rect(Left+OldX-OldLeft,Top+OldY-OldTop,
Left+Width+OldX-OldLeft,Top+Height+OldY-OldTop);
DrawFocusRect(ScreenDC,MoveRect);
end;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then begin
DrawFocusRect(ScreenDC,MoveRect);
Left := Left+X-OldLeft;
Top := Top+Y-OldTop;
ReleaseDC(0,ScreenDC);
Dragging := False;
end;
end;

end.


 
alena.svt ©   (2002-09-13 19:53) [11]

А вообще чего то проблемы не вижу
первый пример просто посимпотичнее.
Ну а так как и надо.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
private
procedure WMNCHitTest(var M: TWMNCHitTest);
message wm_NCHitTest;

public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}
procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
begin
inherited;
if M.Result = htClient then
M.Result := htCaption;
end;

end.



 
SemFLY ©   (2002-09-13 23:41) [12]

Спасибо ! ;))



Страницы: 1 вся ветка

Текущий архив: 2002.09.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
1-85603
Immortal Deach
2002-09-14 21:19
2002.09.26
народ, помогите!!!!!!!!!


6-85629
Rammst
2002-07-25 17:43
2002.09.26
Mail


4-85751
stainer
2002-08-10 02:07
2002.09.26
как отследить создание диалога или wm_initdialog


1-85427
Максимка
2002-09-15 20:05
2002.09.26
Завершение процессов...


3-85321
RDA
2002-09-06 15:03
2002.09.26
И снова справочники