![]() |
XP Style mit Delphi 6
Hallo,
habe seit heute Delphi 6 (unter WinXP) und dachte eigentlich, daß meine Programme bereits im XP-Style laufen würden. War nich so..... Weiß jemand, was ich machen kann, daß meine Programme mit den hübschen WinXP Buttons usw. arbeiten?? Danke und Gruß |
Re: XP Style mit Delphi 6
Schau Dich mal bei
![]() |
Re: XP Style mit Delphi 6
Oder wenn du keine Komponente haben willst, dann such hier mal nach
![]() |
Re: XP Style mit Delphi 6
So wie ich das von Chakotay gehört habe, soll der ThemeManager wohl auch gleich noch die Probleme mit älteren Delphi-Versionen beheben (u.a. das List-View-Problem im vsReport-Modus). Wenn das so ist (ich weiß es nicht, ich habe meine Unit gepatcht), dann wäre der ThemeManager die bessere Wahl. :)
|
Re: XP Style mit Delphi 6
Das stimmt, Matthias, die Lösung von Mike Lischke bettet nicht nur das Manifest ein sondern patcht darüber hinaus viele VCL-Komponenten (ListView, TabSheet, GroupBox, SpeedButton,...).
@alexander: Es ist keine Komponente auf der Form notwendig: Das Einbinden der Unit ThemeMgr reicht aus. Edit: Fieser Rechtschraibfehler. |
Re: XP Style mit Delphi 6
Hi,
nein. Das stimmt nicht. Ich habe dir, Mathias, in einer Mail auch gesagt, dass es nicht funktioniert hat. Der ThemeManager patcht die Komponenten nicht, sondern subclasst sie. Das ist ein Unterscheid! Chris |
Re: XP Style mit Delphi 6
Zitat:
@Matthias: Der ListView-Bug wird selbstverständlich durch SubClassing (hui, ich wusste nicht, dass ihr's so genau nehmt...) bei Mikes Lösung behoben:
Delphi-Quellcode:
@Bechti: Dank dieser Technik musst Du nicht im Besitzt der VCL-Quellen sein und hast gegenüber der einfachen Variante mit der Manifest-Datei Controls im "hübschen" XP-Look, die sonst immer noch "hässlich" aussehen würden.
procedure TThemeManager.ListviewWindowProc(Control: TControl;
var Message: TMessage); begin if not DoControlMessage(Control, Message) then begin // In opposition to the other window procedures we should // always apply the fix for TListView, regardless of whether // themes are enabled or not. if (Message.Msg = LVM_SETCOLUMN) or (Message.Msg = LVM_INSERTCOLUMN) then begin with PLVColumn(Message.LParam)^ do begin // Fix TListView report mode bug. if iImage = - 1 then Mask := Mask and not LVCF_IMAGE; end; end; FListViewList.DispatchMessage(Control, Message); end; end; |
Re: XP Style mit Delphi 6
Hi,
mag sein. Ich habe noch nie in die Sourcen reingesehen. Allerdings behebt der ThemeManager keineswegs das Problem. Ich habe hier sowohl Source als auch Software (die langsam mal veröffentlicht werden will, @Mathias :mrgreen:) mit der ich das beweisen könnte. ;) Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 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