AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Fensteranimation deaktivieren bei TStyleManager.TrySetStyle(sStyleName)

Fensteranimation deaktivieren bei TStyleManager.TrySetStyle(sStyleName)

Ein Thema von Codehunter · begonnen am 12. Apr 2018 · letzter Beitrag vom 12. Apr 2018
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Fensteranimation deaktivieren bei TStyleManager.TrySetStyle(sStyleName)

  Alt 12. Apr 2018, 13:45
@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?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: Fensteranimation deaktivieren bei TStyleManager.TrySetStyle(sStyleName)

  Alt 12. Apr 2018, 14:05
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.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 19:41 Uhr.
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