unit WinAnimation;
interface
uses
Windows, Messages;
function GetWinAnimation: Boolean;
procedure SetWinAnimation(AValue: Boolean);
function GetFullDragWindow: Boolean;
procedure SetFullDragWindow(hwnd: DWORD; ShowFullWindow: Boolean);
implementation
////////////////////////////////////////////////////////////////////////////////
// Gibt True zurück, falls Fensteranimationen aktiviert sind.
function GetWinAnimation: Boolean;
var
Info: TAnimationInfo;
begin
Info.cbSize := SizeOf(TAnimationInfo);
if SystemParametersInfo(SPI_GETANIMATION, SizeOf(Info), @Info, 0)
then Result := Info.iMinAnimate <> 0
else Result := false;
end;
// Aktiviert/Deaktiviert Fensteranimationen.
procedure SetWinAnimation(AValue: Boolean);
var
Info: TAnimationInfo;
begin
Info.cbSize := SizeOf(TAnimationInfo);
Info.iMinAnimate := Integer(AValue);
SystemParametersInfo(SPI_SETANIMATION, SizeOf(Info), @Info, 0);
end;
////////////////////////////////////////////////////////////////////////////////
// True = Fenster Schieben mit Anzeige des Fensterinhaltes
// False = Fenster Schieben mit Anzeige eines Rahmens
function GetFullDragWindow: Boolean;
var
ok : boolean;
begin
if SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, @ok, 0)
then Result := ok
else Result := false;
end;
// Aktiviert/Deaktiviert Fensterinhalt/Fensterrahmen
procedure SetFullDragWindow(hwnd: DWORD; ShowFullWindow: Boolean);
begin
if SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, Abs(DWORD(ShowFullWindow)), 0, SPIF_UPDATEINIFILE
or SPIF_SENDWININICHANGE)
then begin
ReleaseCapture;
SendMessage(hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0);
end;
end;
{ Benötigt einen OnMouseDown-Event-Handler, wie diesen :
======================================================
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
// Springe in die Function SetFullWindowDrag
// Weise dieser das Handle meiner Anwendung zu = Main.Handle
// Und teile ihr mit das ich nun meine Form verschiebe.
SetFullDragWindow(Form1.Handle, true );
// Springe in die Function SetFullWindowDrag
// Weise dieser das Handle meiner Anwendung zu = Main.Handle
// Und teile ihr mit das ich mit dem verschieben fertig bin und das Event CaptionBarMouseDown verlasse.
SetFullDragWindow(Form1.Handle, Fenster);
end;
}
end.