Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi XP Style mit Delphi 6 (https://www.delphipraxis.net/11775-xp-style-mit-delphi-6-a.html)

Bechti 13. Nov 2003 14:05


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ß

choose 13. Nov 2003 14:07

Re: XP Style mit Delphi 6
 
Schau Dich mal bei Mike Lischke und seiner Lösung XP Theme Manager um...

Alexander 13. Nov 2003 16:42

Re: XP Style mit Delphi 6
 
Oder wenn du keine Komponente haben willst, dann such hier mal nach Hier im Forum suchenManifest

MathiasSimmack 13. Nov 2003 17:27

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. :)

choose 13. Nov 2003 18:01

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.

CalganX 13. Nov 2003 18:10

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

choose 13. Nov 2003 18:23

Re: XP Style mit Delphi 6
 
Zitat:

Zitat von Chakotay1308
Der ThemeManager patcht die Komponenten nicht, sondern subclasst sie. Das ist ein Unterscheid!

Doppelt richtig ;)

@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:
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;
@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.

CalganX 13. Nov 2003 18:29

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 13:40 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