Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Fensteranimation deaktivieren bei TStyleManager.TrySetStyle(sStyleName) (https://www.delphipraxis.net/195976-fensteranimation-deaktivieren-bei-tstylemanager-trysetstyle-sstylename.html)

KodeZwerg 12. Apr 2018 12:45

AW: Fensteranimation deaktivieren bei TStyleManager.TrySetStyle(sStyleName)
 
@Codehunter: Ich habe mir nochmal alles von Dir durchgelesen, ich wäre zwar mit dem abfangen der Message bestimmt auf dem richtigen Pfad um das Animations-Dingens zu umgehen aber Du wolltest ja nichts globales, da happert es bei mir noch das umzusetzen. Eine Message wäre glaube ich global, oder zumindest Form-bezogen global.
Also weitermachen ohne Rücksicht auf den Global Faktor oder an dieser Stelle aufhören und umdenken?

Codehunter 12. Apr 2018 13:05

AW: Fensteranimation deaktivieren bei TStyleManager.TrySetStyle(sStyleName)
 
Ich bin da nun einen halben Schritt weiter. Aus dem doppelten Fade-Effekt ist ein einfacher Fade-Effekt geworden. Das Fade-Out vor dem Stylewechsel ist mit folgender Variante weg:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure CreateParams(var Params: TCreateParams); override;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses
  Vcl.Themes;

procedure TForm1.Button1Click(Sender: TObject);
var
  Style: Longint;
begin
  Style := GetWindowLong(Handle, GWL_STYLE);
  SetWindowLong(Handle, GWL_STYLE, Style and (not WS_BORDER));
  TStyleManager.TrySetStyle('Carbon');
end;

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.Style := Params.Style and (not WS_BORDER) ;
end;

end.
Allerdings scheint das CreateParams überhaupt nichts zu bewirken, das wäre nämlich das zweite Fade. Bzw. würde es funktionieren, bräuchte ich gar kein SetWindowLong vor dem Stylewechsel mehr machen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:24 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz