AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi MDIChild soll bei OnCreate keine "window animation" benutzen
Thema durchsuchen
Ansicht
Themen-Optionen

MDIChild soll bei OnCreate keine "window animation" benutzen

Offene Frage von "anse"
Ein Thema von anse · begonnen am 24. Apr 2007 · letzter Beitrag vom 25. Apr 2007
 
kalmi01
(Gast)

n/a Beiträge
 
#5

Re: MDIChild soll bei OnCreate keine "window animation&

  Alt 25. Apr 2007, 09:14
Delphi-Quellcode:
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.
im Prog dann mit GetWinAnimation: Boolean;
den aktuellen Status holen.
Mit SetWinAnimation(AValue: Boolean);
den gewünschten Status setzen, Deine Fenster öffnen und dann den Originalstand wieder herstellen.
Die Fensteranimation lässt sich leider nur systemweit ein/ausschalten.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz