Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi] Перемещение формы


Автор: Demonix 20.3.2008, 04:33
Нужно осуществить перемещение формы, но заголовок у формы отсутствует.
В DRKB был представлен код

Код

unit DragMain;

interface

uses
SysUtils, WinTypes, WinProcs,  Messages,
Classes, Graphics, Controls, Forms, Dialogs, StdCrtls;
 
type
TForm1 = class(TForm)
   Button1: TButton;
   procedure ButtonClick(Sender: TObject);
private        
   procedure WMNCHitTest(var M: TWMNCHitTest);
                message wm_NCCHitTest;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}


procedure TForm1. WMNCHitTest(var M: TWMNCHitTest); 

begin
inherited;
if M.Result = htClient then
   M.Result := htCaption;
end;


procedure TForm1.Button1Click(Sender: TObject);

begin
Close;
end;

end.


но у меня постоянно возникает ошибка в строке
Код

 message wm_NCCHitTest;


если эту строку выкинуть, то ошибка пропадает, но и перемещение за поверхность не происходит. Я с Дельфи не так уж давно, так что в коде ничего не понял. Может есть другие варианты осуществления данного действия?

Автор: THandle 20.3.2008, 08:58
Код

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  Perform(WM_SYSCOMMAND, $F012, 0);
end;

Автор: Rrader 20.3.2008, 13:08
Код

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

Автор: ama_kid 20.3.2008, 13:32
Цитата(Demonix @  20.3.2008,  04:33 Найти цитируемый пост)
но у меня постоянно возникает ошибка в строке
Код
message wm_NCCHitTest;
Ошибка в написании... Пишется так WM_NCHITTEST (одна буква C)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)