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

Вниз

Как перемещать форму удерживая за любое свободное на ней место?   Найти похожие ветки 

 
DimaLos ©   (2004-03-15 10:08) [0]

Подскажите как перемещать форму удерживая за любое свободное на ней место?


 
Serge ©   (2004-03-15 10:10) [1]

Пиши процедуру по обработке WM_NCHITTEST


 
DimaLos ©   (2004-03-15 10:12) [2]

Пожалуйста, можно подробнее?


 
ssk   (2004-03-15 10:17) [3]

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


 
serge ©   (2004-03-15 10:22) [4]

Либо

procedure WMNCHITTEST (var Msg : TWMNCHit); message WM_NCHITTEST;
...
procedure TForm1.WMNCHITTEST (var Msg : TWMNCHit);
Begin
inherited;
With Msg do
begin
if Msg.Result = htClient then
result:=htCaption;
end;
End;

Код писал на память, если что не так - старею значит :)
Удачи.


 
serge ©   (2004-03-15 10:25) [5]

var Msg : TWMNCHit --> var Msg: TWMNCHitTest


 
DimaLos ©   (2004-03-15 11:21) [6]

Огромное спасибо!


 
$tranger ©   (2004-03-15 14:11) [7]

Можно еще и так:
procedure TForm1.Form1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
const
 SC_DragMove = $F012;
 begin
 ReleaseCapture;
 Form1.perform(WM_SysCommand, SC_DragMove, 0);
end;


 
$tranger ©   (2004-03-15 14:13) [8]

Можно еще и так:
procedure TForm1.Form1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
const
 SC_DragMove = $F012;
 begin
 ReleaseCapture;
 Form1.perform(WM_SysCommand, SC_DragMove, 0);
end;


 
dr Tr0jan ©   (2004-03-15 14:14) [9]

Еще один способ есть. Механизм работы такой же.
var
 xm,ym:integer;

...

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
 if (ssleft in shift) then begin
   left:=left+(x-xm);
   top:=top+(y-ym);
 end;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 xm:=x;
 ym:=y;
end;



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

Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.042 c
3-1078235444
Masha Streltsova
2004-03-02 16:50
2004.04.04
Как узнать связанную через foreign key таблицу


8-1069732158
ss300
2003-11-25 06:49
2004.04.04
Инфо о мп-файле


1-1079507677
joper
2004-03-17 10:14
2004.04.04
Использование классов в делфи


1-1079425037
Miwa
2004-03-16 11:17
2004.04.04
Неужели и вправду код функции должен поместится в экран?


7-1073795944
Кен
2004-01-11 07:39
2004.04.04
Где Виндос хранит информацию о расположении файлов в папке ? А





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский