![]() |
XP-Style in DLL
Hallo DP'ler,
mein Problem ist folgendes: Ein fremdes Programm lädt meine DLL, welche dann eine VCL-Form anzeigt. Das Problem dabei ist, dass dieses fremde Programm kein XP-Style-Manifest enthält, und somit meine Form auch ohne XP-Style angezeigt wird. Dies ist aber nicht in meinem Sinne, und daher suche ich nach einer Möglichkeit dies zu ändern, zumindest für meine Form. Da ein XP-Style-Manifest in meiner DLL relativ sinnlos ist, und InitCommonControls(Ex) den Trick auch nicht fertigbringt, bin ich nun relativ am Ende mit meinem Latein ... Ich hoffe, ihr könnt mir helfen, ciao & thx, Philipp |
Re: XP-Style in DLL
Na hat keiner ne Idee? *push*
|
Re: XP-Style in DLL
Da die DLL ja im Kontext des Programms läuft, das keine XP-Themes unterstützt, bekommst du auch keine XP Styles in deine DLL. Jedoch kannst du ja eine *.manifest Datei erstellen, die den Namen der Hostanwendung trägt, und schon sollte es gehen.
(Der Inhalt einer solche Datei sollte ja bekannt sein :gruebel: ) |
Re: XP-Style in DLL
Was hat das XP-Style mit einer DLL zu tun?
Eine DLL ist im Prinzip nur eine externe Funktionssammlung, und wenn du da nicht eine Funktion aufrusfst, die das Style deines Programmes ändert, sollte es das keine Probleme geben. :? Grüße Faux |
Re: XP-Style in DLL
Zitat:
Und in meine DLL's kann ich ja auch VCL Forms klatschen, ich weiss nicht wie es bei dir ist :wink: . |
Re: XP-Style in DLL
Zitat:
Außerdem musst du trotzdem alles in Funktionen packen, wenn du eine Form in eine DLL geben willst. Klassen kannst du da IMHO nicht verwenden. Grüße Faux |
Re: XP-Style in DLL
Zitat:
Programm lädt DLL -> Programm ruft Funktion aus der Dll auf -> DLL zeigt VCL-Form an -> ... VCL Form hat *kein* XP-Style ... -> Problem 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 ... Aber es wird doch wohl ne andere möglichkeit geben, oder? Hoffe ich zumindest ... ideen? ciao, Philipp |
Re: XP-Style in DLL
Zitat:
DLL instantiizert Objekt das ein Interface implementiert. Anwendung die das Objekt benutzen möchte, verwendet das Interface direkt (überschreibt die Referenz natürlich mit der aus der DLL). So funktionniert übrigens auch DirectX: dem Porgrammierer stehen nur Interfaces zur Verfügung die von den DX DLL's implementiert und instatiiert werden. @c113plpbr: Hm, da weiss ich leider auch nicht mehr weiter... |
Re: XP-Style in DLL
@md_mse:
Schon klar, aber ich wollte ja nur sagen, dass du in DLLs nur Funktionen unterbringenkannst. Du hast dann gesagt, dass man auch Forms reinpacken kann, und ich dann wiederum, dass auch diese in Funktionen sind. ;) Ist die DLL von dir, also hast du den Code? md_mse hat bereits vorgeschlagen, dass du mal mit manifest probieren kannst. ;) |
Re: XP-Style in DLL
@faux: Ja gut, sind das Programme nicht auch? :thumb:
@c113plpbr: Hast du eigentlich mal versucht diese manifest XML in die Ressourcen hinzuzufügen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 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