![]() |
XP Style für ein Form abschaltbar?
Hallo,
ich habe ein Delphi 7 Programm, in das ich die XPManifest Komponente eingefügt habe. Dadurch wird die Unit XPMan eingebunden, die die Resourcedatei WindowsXP.res einbindet. Dadurch ist die Ganze Applikation im neuem WinXP Look. Gibt es eine Möglichkeit nur ein TForm von dem WinXP Look auszuschließen? (Alle Controls, Buttons, Panels, ... sollten das alte "nicht XP" Aussehen haben.) Für eine Antwort bedanke ich mich schon mal im Voraus. [edit]als offene Frage markiert[/edit] |
Re: XP Style für ein Form abschaltbar?
Hallo.
Ich schätze, nein, denn der XP-Style wird in der Resourcen-Datei festgelegt. Und die gilt für das ganze Programm. OT: Findest du den XP-Style so schlimm? :wink: |
Re: XP Style für ein Form abschaltbar?
Zitat:
Zitat:
Im schlimmsten Fall muss ich das Form als TBitmap ablegen und den Text auf das Canvas schreiben. Das möchte ich aber nach Möglichkeit vermeiden. ps: Herzlich Willkommen bei der DP :dp: |
Re: XP Style für ein Form abschaltbar?
Zitat:
|
Re: XP Style für ein Form abschaltbar?
Zitat:
Trotzdem Danke für die Antwort. |
Re: XP Style für ein Form abschaltbar?
Zitat:
Im ![]() |
Re: XP Style für ein Form abschaltbar?
Zitat:
Wurde zu dem Thema mal was im Entwickler geschrieben? |
Re: XP Style für ein Form abschaltbar?
Deaktivieren von Styles ist relativ einfach. Jedoch muss man das pro Control tun:
Delphi-Quellcode:
SetWindowTheme ist deklariert in der Unit UxTheme (zumindest in D2005); also das in die Uses rein.
SetWindowTheme(Button1.Handle, '', '');
Natürlich kann man sich eine Schleife für alle Controls der Formulars schreiben in der Art:
Delphi-Quellcode:
Gruß
for i := 0 to ControlCount-1 do begin
if Controls[i] is TWinControl then begin SetWindowTheme((Controls[i] as TWinControl).Handle, '', ''); end; end; Lemmy |
Re: XP Style für ein Form abschaltbar?
Zitat:
Danke ps: Frage als Beantwortet markiert. |
Re: XP Style für ein Form abschaltbar?
Zitat:
|
Re: XP Style für ein Form abschaltbar?
Zitat:
Delphi-Quellcode:
schlägt ja fehl.
SetWindowTheme((SpeedButton1 as TWinControl).Handle, '', '');
Der SpeedButton bekommt aber trotzdem ein XP Style :-( |
Re: XP Style für ein Form abschaltbar?
Zitat:
|
Re: XP Style für ein Form abschaltbar?
Zitat:
Delphi-Quellcode:
Aber da der Code sowas von gehackt würd ich die Finger von lassen :) Ne im Ernst...was hier passiert ist, dass ThemesAvailable auf False gesetzt wird. Da das aber eine ReadOnly property ist geht das nur mit dem bößen Pointer Umweg. Wenn das Formular geschlossen wird, solltest Du den Wert natürlich wiederherstellen. Use at your own risk :)
var
p: ^Boolean; begin p := @(Themes.ThemeServices.ThemesAvailable); p^ := False; end; |
Re: XP Style für ein Form abschaltbar?
Zitat:
|
Re: XP Style für ein Form abschaltbar?
Hallo Leute,
bei mir funktioniert es bspw. für einen Button, aber nicht für eine Coolbar und auch nicht für eine TListview :( Weiß hier jemand Rat? Außerdem erhalte ich eine Access Violation wenn ich den Code im OnShow oder OnCreate habe, es funktioniert nur bspw. in einem Buttonereignis. |
Re: XP Style für ein Form abschaltbar?
OK, es scheint für Coolbars zu funktionieren, allerdings zeichnet er dann nur die Coolbands im alten Stil, den Hintergrund der Coolbar kann man nicht dazu bewegen sich altmodisch zu geben :(
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 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 by Thomas Breitkreuz