Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi XP-Style in DLL (https://www.delphipraxis.net/59767-xp-style-dll.html)

c113plpbr 29. Dez 2005 21:51

Re: XP-Style in DLL
 
Zitat:

Zitat von faux
Ist die DLL von dir, also hast du den Code?

Ja, es ist meine DLL
Zitat:

Zitat von faux
md_mse hat bereits vorgeschlagen, dass du mal mit manifest probieren kannst. ;)

Und ich hab bereits gesagt, warum dies nur schwer möglich ist:
Zitat:

Zitat von c113plpbr
Das mit dem Manifest wäre soweit kein problem, doch leider ist das "fremde" Programm dass meine dll lädt rundll32.exe, und dieses liegt bekanntlicherweise im system-verzeichnis, auf welches leider nicht jeder zugriffsrechte hat. Und mein Programm sollte möglichst nicht nur mit Admin-Rechten laufen ...

Zitat:

Zitat von md_mse
Hast du eigentlich mal versucht diese manifest XML in die Ressourcen hinzuzufügen?

Ja, ich habs in die dll-ressoucen hinzugefügt, leider ohne Erfolg.


ciao, Philipp

faux 29. Dez 2005 21:57

Re: XP-Style in DLL
 
Zitat:

Zitat von c113plpbr
Zitat:

Zitat von faux
Ist die DLL von dir, also hast du den Code?

Ja, es ist meine DLL

Hast du schon probiert XPMan in die uses-Klausel aufzunehmen?

Ich hab mal Gegooglet und das hier gefunden: http://www.link-rank.com/dll.htm. Hier wird erklärt wie man eine Form in eine DLL einbindet, was du jedoch schon hast. Auf dem Screenshot jedoch, siehts so aus, also ob er das XP-Style auch in der DLL-Form hat. Sieh dir mal an wie der das erledigt hat. ;)

Grüße
Faux

c113plpbr 29. Dez 2005 22:16

Re: XP-Style in DLL
 
Zitat:

Zitat von faux
Hast du schon probiert XPMan in die uses-Klausel aufzunehmen?

Genauer lesen bitte:
Zitat:

Zitat von c113plpbr
Zitat:

Zitat von md_mse
Hast du eigentlich mal versucht diese manifest XML in die Ressourcen hinzuzufügen?

Ja, ich habs in die dll-ressoucen hinzugefügt, leider ohne Erfolg.

Das ist so ziemlich dasselbe ...

Zitat:

Zitat von faux
Ich hab mal Gegooglet und das hier gefunden: http://www.link-rank.com/dll.htm. Hier wird erklärt wie man eine Form in eine DLL einbindet, was du jedoch schon hast. Auf dem Screenshot jedoch, siehts so aus, also ob er das XP-Style auch in der DLL-Form hat. Sieh dir mal an wie der das erledigt hat. ;)

Da muss man nicht viel weiter lesen als bis dahin:
Zitat:

This is VCLSkin demo for DLL form.
Das ist eine kostenpflichtige Style-komponente ...

ciao, Philipp

faux 29. Dez 2005 22:24

Re: XP-Style in DLL
 
Zitat:

Zitat von c113plpbr
a muss man nicht viel weiter lesen als bis dahin

Ich habs nicht gelesen.

Und was ist mit der Manifest?

c113plpbr 29. Dez 2005 22:45

Re: XP-Style in DLL
 
Zitat:

Zitat von faux
Und was ist mit der Manifest?

Wie? Du meinst als ".manifest" datei, oder? Wenn ja, solltest du wirklich besser lesen:
Zitat:

Zitat von c113plpbr
Das mit dem Manifest wäre soweit kein problem, doch leider ist das "fremde" Programm dass meine dll lädt rundll32.exe, und dieses liegt bekanntlicherweise im system-verzeichnis, auf welches leider nicht jeder zugriffsrechte hat. Und mein Programm sollte möglichst nicht nur mit Admin-Rechten laufen ...

Sprich, das is ned so doll ... da ich eigentlich nicht vorhabe rundll32.exe mit nem xp-manifest auszustatten ...

Aber es muss doch da irgendeine "Software-Lösung" geben, irgendeinen API-Befehl, oder was auch immer ...

ciao, Philipp

md_mse 29. Dez 2005 23:12

Re: XP-Style in DLL
 
Hab da vielleicht was gefunden...
Guck dir mal die UxTheme.pas an, die bei Delphi mit dabei sein sollte... Zumindest ab 2005 (?).
An sonsten findest du sie auf Delphi-Gems
Da gibt es interessante Methoden, vielleicht bringts ja was.

c113plpbr 30. Dez 2005 13:21

Re: XP-Style in DLL
 
Zitat:

Zitat von md_mse
Hab da vielleicht was gefunden...
Guck dir mal die UxTheme.pas an, die bei Delphi mit dabei sein sollte... Zumindest ab 2005 (?).
An sonsten findest du sie auf Delphi-Gems
Da gibt es interessante Methoden, vielleicht bringts ja was.

Hmm ... ja, die unit enthält ganz interessante sachen ... so kommt es, dass ich jetzt mithilfe der Funktion "SetWindowTheme" XP-Styles entfernen oder verdrehen kann ... sieht ganz lustig aus, wenn man einer Form den style eines Buttons gibt, aber dennoch kann ich komponenten die kein XP-Style haben, nicht damit ausstatten ... warum auch immer, denn bei
Delphi-Quellcode:
SetWindowTheme(btn.Handle, nil, 'button');
passiert garnix ... ich hab schon ziemlich viel rumprobiert, aber ich werd daraus einfach ned schlau ... kennt sich damit jemand aus?

ciao, Philipp

md_mse 31. Dez 2005 00:24

Re: XP-Style in DLL
 
Vergiss aber nicht, das das XML File in den Ressourcen sein muss!

Flocke 31. Dez 2005 12:18

Re: XP-Style in DLL
 
Ich hab' gerade mal ein bisschen nachgeforscht und versucht, UxTheme.IsAppThemed und UxTheme.IsThemeActive zu überschreiben. Das Problem ist, dass der Aufruf (Themes.pas):
Delphi-Quellcode:
FNewComCtrls := GetFileVersion(comctl32) >= ComCtlVersionIE6;
je nach vorhandenem Manifest eine andere Version zurückliefert (ohne: 5.irgendwas, mit: 6.irgendwas) und danach entschieden wird, ob theming benutzt werden kann.

Auf meinem Rechner (MCE 2005):
C:\Windows\system32\comctl32.dll: 5.82.2900.2649
C:\Windows\WinSxS\x86_Microsoft.Windows.Common-Controls_...\comctl32.dll: 6.0.2600.0, 6.0.2900.2180 und 6.0.2900.2649

Ich hab' noch keine Möglichkeit gefunden das zu umgehen...

xaromz 31. Dez 2005 12:32

Re: XP-Style in DLL
 
Hallo,
Zitat:

Zitat von Flocke
Das Problem ist, dass der Aufruf (Themes.pas):
Delphi-Quellcode:
FNewComCtrls := GetFileVersion(comctl32) >= ComCtlVersionIE6;
je nach vorhandenem Manifest eine andere Version zurückliefert (ohne: 5.irgendwas, mit: 6.irgendwas) und danach entschieden wird, ob theming benutzt werden kann.

Das ist nicht das Problem, sondern genau der Grund für das Manifest. Dieses entscheidet, welche Version verwendet wird. Nur mit der Version >= 6 ist Theming möglich.

Gruß
xaromz


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:02 Uhr.
Seite 2 von 3     12 3      

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