Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   XE10 Projektoptionen - Laufzeit-Themes aktivieren - Bug? (https://www.delphipraxis.net/191734-xe10-projektoptionen-laufzeit-themes-aktivieren-bug.html)

mm1256 15. Feb 2017 10:28

XE10 Projektoptionen - Laufzeit-Themes aktivieren - Bug?
 
Hallo,

wenn man in den Projektoptionen bei der Einstellung "Manifestdatei" in der ComboBox die Option "Automatisch erzeugen" einstellt, und dann bei den einzuschließenden Tags [ ] Laufzeit-Themes aktivieren NICHT aktiviert, wird die Einstellung nicht übernommen. Man kann zwar die Option abhaken, aber beim erneuten Aufruf der Optionen ist sie wieder aktiviert. Ist das normal so, oder mache ich was falsch (was kann man da schon falsch machen) oder ist das ein Bug?

himitsu 15. Feb 2017 10:36

AW: XE10 Projektoptionen - Laufzeit-Themes aktivieren - Bug?
 
Hast du ein altes Projekt? (z.B. aus Delphi 7)

Schau mal nach, ob sich noch irgendwo die Unit XPMan in deinen Uses versteckt.



Aber wer will das schon freiwillig abschalten und warum?

Uwe Raabe 15. Feb 2017 11:42

AW: XE10 Projektoptionen - Laufzeit-Themes aktivieren - Bug?
 
Du kannst innerhalb der Vererbungshierarchie der verschiedenen Build-Konfigurationen diese Optionen nur einschalten, aber nicht in einer darunterliegenden Konfiguration ausschalten.

Also z.B: für Win32: "Alle Konfigurationen - 32-Bit-Windows Plattform anwählen" und Option ausschalten. Dann kann man in Debug- Win32 und Release-Win32 gezielt an- und abschalten. Sobald aber ein Haken unter Alle-Win32 gesetzt ist, kann man das in Debug-Win32 und Release-Win32 nicht mehr abschalten.

Siehe auch: Enable High DPI cannot be disabled while enabled in higher build configuration

mm1256 15. Feb 2017 11:44

AW: XE10 Projektoptionen - Laufzeit-Themes aktivieren - Bug?
 
Hallo,

nein, das ist ein aktuelles Projekt. "XPMan" habe ich noch nie verwendet.

Hintergrund der Aktion ist: Ich habe mit einigen Controls Darstellungsprobleme, wenn die Laufzeit-Themen aktiviert sind. Beispielsweise wird die Caption eines Label erst richtig dargestellt, wenn man mit der Maus drüber fährt. Dieses Problem wurde auch hier schon in anderen Threads geschildert. Eine der möglichen (Teil-)Lösungen wäre z.B. ein Repaint. Aber, das kann's doch eigentlich nicht sein. Es gibt aber auch noch andere teilweise unerklärliche Darstellungsprobleme. Darum suche ich nach einer einfachen Möglichkeit, die Laufzeit-Themes zu Testzewecken ab- und anzuschalten. Leider habe ich in den Beschreibungen zu den Manifestdateien darüber auch nichts gefunden, denn standardmäßig binde ich die Manifestdatei über die Projektoptionen über eine benutzerdefinierte Manifestdatei ein.

Alternativ zur Beantwortung meiner Frage würde mir also auch ein Hinweis genügen, wie man die Laufzeit-Themes im Manifest deaktiviert.

[Edit] Die rote Box war schneller ;-) Vielen Dank Uwe, werde mir das mal ansehen!

Sherlock 15. Feb 2017 12:03

AW: XE10 Projektoptionen - Laufzeit-Themes aktivieren - Bug?
 
Falls es schon ein Ticket bei Emba zu diesem Thema gibt, gebe ich gerne meine Stimme dafür.

Sherlock

himitsu 15. Feb 2017 12:16

AW: XE10 Projektoptionen - Laufzeit-Themes aktivieren - Bug?
 
Oder Andreas fragen.
Er könnte bestimmt eine Abfrage einbauen.

Sie haben "das" deaktiviert, soll es in den übergeordneten Profilen auch deaktiviert werden, sonst aktiviert es sich selbst wieder, oder so. :roll:

Das geht bestimmt schneller, selbst wenn er 'nen Jahr braucht. :oops:

Sherlock 15. Feb 2017 12:28

AW: XE10 Projektoptionen - Laufzeit-Themes aktivieren - Bug?
 
Ich meinte eigentlich das seltsame Label-Verhalten, das überhaupt erst zum Versuch führt die Laufzeithemes zu deaktivieren... ;)

Sherlock

Uwe Raabe 15. Feb 2017 12:39

AW: XE10 Projektoptionen - Laufzeit-Themes aktivieren - Bug?
 
Zitat:

Zitat von Sherlock (Beitrag 1361638)
Falls es schon ein Ticket bei Emba zu diesem Thema gibt, gebe ich gerne meine Stimme dafür.

Klick doch einfach mal auf den Link in meinem Post.

Sherlock 15. Feb 2017 13:26

AW: XE10 Projektoptionen - Laufzeit-Themes aktivieren - Bug?
 
Ich schreibe heute undeutlich, sorry. Aber Dein Link, Uwe, bezieht sich doch auf HighDPI, Build-Konfigurationen und so weiter. Das hier als Ursache für die Frage genannte Problem ist:
Zitat:

Zitat von mm1256 (Beitrag 1361634)
Hintergrund der Aktion ist: Ich habe mit einigen Controls Darstellungsprobleme, wenn die Laufzeit-Themen aktiviert sind. Beispielsweise wird die Caption eines Label erst richtig dargestellt, wenn man mit der Maus drüber fährt. Dieses Problem wurde auch hier schon in anderen Threads geschildert.

Dazu wüsste ich gerne das Ticket, damit ich meine Stimme abgeben kann, das gehört nämlich schnell behoben, wenn es denn wirklich ein Bug ist.

Sherlock

himitsu 15. Feb 2017 13:45

AW: XE10 Projektoptionen - Laufzeit-Themes aktivieren - Bug?
 
Zitat:

Beschreibung

When High DPI is enabled in "All configurations - Win32" it cannot be disabled in "Debug configuration - Win32" or "Release configuration - Win32". The same applies to "Enable Runtime Themes" and "Enable Administrator Privileges" as well.
:zwinker:


Zitat:

Ich habe mit einigen Controls Darstellungsprobleme, wenn die Laufzeit-Themen aktiviert sind.
Man kann das Theming für bestimmte Controls auch einzeln deaktiveren, ohne gleich alles abzuschalten. (irgendwo im ThemeManager)

Whookie 15. Feb 2017 13:50

AW: XE10 Projektoptionen - Laufzeit-Themes aktivieren - Bug?
 
Hast du eine kleine Demo mit dem Problem? Ich habe mit und ohne Styles schon einige Anwendungen hinter mir und bin bisher nicht auf so ein Problem gestoßen....
Das einzige was ich sagen kann ist, dass das deaktivieren der Laufzeitthemen durchaus Probleme mit sich bringt, etwa wenn man mit transparenten 32bit Imagelisten arbeitet.

mm1256 15. Feb 2017 14:49

AW: XE10 Projektoptionen - Laufzeit-Themes aktivieren - Bug?
 
Hallo zusammen,

erst mal vielen Dank für die rege Beteiligung und die Vorschläge. Das Theming für einzelne Komponenten/Controls abzuschalten wäre natürlich eine Möglichkeit, wenn man darauf angewiesen ist, dass ansonsten Theming eingeschaltet ist. Da es mir aber darum geht, Laufzeit-Themes komplett (testweise) an- und abzuschalten ist das leider nicht so richtig zielführend. In der Zwischenzeit habe ich natürlich weiter probiert und habe tatsächlich eine Lösung gefunden. Man muss im Manifest einfach das Tag "dependency" komplett raus nehmen:

Code:
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
Zitat:

Das einzige was ich sagen kann ist, dass das deaktivieren der Laufzeitthemen durchaus Probleme mit sich bringt...
So ist es, ich habe schon viel Zeit investiert um diese "Gemeinheiten" alle herauszufinden. Die ersten Gehversuche mit dem Theming habe ich mit XE-2 gemacht. Das war katastrophal. Mit XE-8 ging es dann schon viel besser, aber jetzt mit XE-10 traue ich mich, meine Anwendung mit aktiviertem Theming erstmals bei Kunden produktiv einzusetzen. Bin schon fast auf der Zielgeraden...die karierte Flagge ist nicht mehr weit :thumb:

Whookie 15. Feb 2017 16:52

AW: XE10 Projektoptionen - Laufzeit-Themes aktivieren - Bug?
 
Da ich selber auch einige Komponenten habe und gerne zur Laufzweit zwischen gestyled und ungestyled umschalte verwende ich die Unit PatchUxTheme, die ich mal auf Stackoverflow gefunden habe.

Damit kann man ganz einfach zuerst aufs Windows-Theme schalten und dann Styling komplett deaktivieren.

Frickler 15. Feb 2017 17:24

AW: XE10 Projektoptionen - Laufzeit-Themes aktivieren - Bug?
 
Das Problem mit den Labels kann man lösen, indem man sie durch StaticText ersetzt.

himitsu 15. Feb 2017 19:35

AW: XE10 Projektoptionen - Laufzeit-Themes aktivieren - Bug?
 
Nur hat TStaticText eventuell andere Probleme, aber das vorallem nur, wenn man Hintergrundbilder oder Frabverläufe hat, denn TStaticText ist nicht durchsichtig, was auch der Grund dafür ist, dass sie sich auf den Parent malen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:28 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