Перемещение формы не за заголовок
Страница 2. Перетаскивание окна с содержимым


 

Перетаскивание окна с содержимым

После того, как я воспользовался вашим кодом, окно осталось на том же месте, таскался лишь его контур. Как изменить это так, чтобы при перетаскивании сохранялось содержимое окна (подобно win95 plus)?

Вот небольшой простой компонент, работающий по этому принципу...

Unit WinDrag;

interface

uses
windows, sysutils, classes, dsgnintf;

type

TWinDrag = class(TComponent)
private
{ Private Declarations }
protected
{ Protected Declarations }
public
{ Public Declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function GetDragFlag: boolean;
procedure SetDragFlag(Status: Boolean);
published
Property DragFlag: Boolean read GetDragFlag write SetDragFlag;
end;

procedure Register;

implementation

constructor
TWinDrag.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
DragFlag := GetDragFlag;
end;

destructor TWinDrag.Destroy;
begin
inherited Destroy;
end;

function TWinDrag.GetDragFlag: boolean; var Value : Boolean; begin
SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, @Value, 0);
Result := Value;
end;

procedure TWinDrag.SetDragFlag(Status: Boolean);
begin
SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, Integer(Status),
POINTER(0), 0);
end;

procedure Register;
begin
RegisterComponents('Samples', [TWinDrag]);
end;

end.

 
« Предыдущая статья   Следующая статья »