Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Вниз

Отображение содержимого окна при перетаскивании 


kioto   (2002-01-27 10:59) [0]

Что бы ТОЛЬКО для МОЕГО окна (формы) выполнялось то, что для всех окон : Cвойства:Экран -> Эффекты -> Отображать содержимое окна при перетаскивании (включено), вне зависимости, как эта опция стоит у пользователя в системе.

Подскажите, как правильнее это сделать (желательно на мыло - kioto@rambler.ru)



Almaz   (2002-02-01 00:36) [1]

Вот так:

unit move;

interface

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

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
Capture: HWND;
InMove: Boolean;
MouseOffset: TPoint;
procedure WMNCLButtonDown(var Message: TWMNCMouseMove); message WM_NCLBUTTONDOWN;
procedure WMMouseMove(var Message: TWMMouseMove); message WM_MOUSEMOVE;
procedure WMLButtonUp(var Message: TMessage); message WM_LBUTTONUP;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMMouseMove(var Message: TWMMouseMove);
var
MousePt: TPoint;
begin
if InMove then
begin
GetCursorPos(MousePt);
MousePt.x := MousePt.x - MouseOffset.x;
MousePt.y := MousePt.y - MouseOffset.y;
Left := MousePt.x;
Top := MousePt.y;
end else inherited;
end;

procedure TForm1.WMNCLButtonDown(var Message: TWMNCMouseMove);
begin
if Message.HitTest = HTCAPTION then
begin
Capture := GetCapture;
SetCapture(Handle);
GetCursorPos(MouseOffset);
MouseOffset.x := MouseOffset.x - Left;
MouseOffset.y := MouseOffset.y - Top;
InMove := True;
end else inherited;
end;

procedure TForm1.WMLButtonUp(var Message: TMessage);
begin
if InMove then
begin
if Capture = 0 then ReleaseCapture else SetCapture(Capture);
InMove := False;
end else inherited;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
InMove := False;
end;

end.


Удачи.




Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.033 c
7-94597           Chak                  2002-02-04 22:45  2002.04.29  
Формат системной дати!!!


4-94616           Deus                  2002-02-23 00:30  2002.04.29  
Кто-нибудь работал с GpSysHook?


6-94530           ctapik-net            2002-02-14 15:53  2002.04.29  
Определениие списка компьютеров в сети.


1-94355           besen-ok              2002-04-17 11:44  2002.04.29  
Как пробежаться по всем елементам на форме


7-94600           kioto                 2002-01-27 10:59  2002.04.29  
Отображение содержимого окна при перетаскивании