Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.26;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
3-85327
Gaber
2002-09-04 13:01
2002.09.26
SQL запрос


4-85738
_Александр_
2002-08-08 00:06
2002.09.26
Путь приложения по хендлу окна...


1-85522
Андрей Дмитриев
2002-09-13 12:11
2002.09.26
Потоки


3-85389
vlad40
2002-09-05 11:04
2002.09.26
Ошибка BDE для CGI application


3-85335
borg
2002-09-04 13:06
2002.09.26
bd





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский