![]() |
Eigene Form u. DB-Komponenten -> XP-Style
Hi,
das ist mein erster Forumthread hier! Ihr habt ein super Forum nur um das mal zu sagen! ich hab auch schon eure Code Library durchgescahut und einige interessante Dinge gefunden! Unteranderem XP-Style für Delphi 4-6. Das Problem ist dieses: Das mit der Manifest Datei hab ich hin bekommen und sogar als .Res Datei mit ein zu kompilieren, aber leider werden nur die Standardcontrols im Xp Style angezeigt. Dann hab ich in eurer Code Library gesehen, das der Entwickler der XP-Style (die auch in Delphi 7 integreiert sind) diese auch für älter Versionen anbietet! Er hat sogar die Datenbankkomponenten im Xp-Style. Nun hab ich das Problem, das unsere Datenbankkomponenten Eigenentwicklung sind und ich gerne mal sehen würde, wie diese im Xp-Style aussehen. Aber ich weiss nicht wo ich jetzt was amchen muss , damit unsere Komponente im XP-Style auf die Oberfläche kommen! Eigentlich sind alle Dinge, die bei uns verwendet werden Eigenentwicklungen wie z.B. eigen TForm usw. einige sind einfach nur direkt von den normalen Komponenten abgeleitet andere sind von Vorfahren abgeleitet und verändert. Kann mir jemand erklären wie ich die Packages von unseren Komponente jetzt XP fähig mache. Leider kümmert sich darum keiner und ich würde gern mal sehen wie unser produkt im XP-Style aussieht! Dann könnte ich vielleicht sogar unser Projektleiter davon überzeugen, den XP-Style z.B. bei Messen einzuschalten usw. Danke für eure Hilfe! (Hoffentlich ist das auch das richtig UnterForum, aber ich denke schon) |
Re: Eigene Form u. DB-Komponenten -> XP-Style
Erstmals willkommen in der DP :dp: :hi:
Zweitens, verwendest du TXPMenu? Wenn ja, dann könnte dich genau dieser Beitrag interessieren: ![]() |
Re: Eigene Form u. DB-Komponenten -> XP-Style
Ne ich meine ich will den XP-Style bei unseren eigens entwickelten Komponenten! TXPMenu ist ja auch nur ne Komponente? vielleicht kann mir einer erklären wie ich den Thememanger verwende, das unsere Komponeten im Xp-Style kommen! Im Beispielcode gibt es auch ne möglichekit ein Objekt des Thememanger anzulegen und dann diesen dann alle Controls einsammeln zu lassen, aber wie mache ich das in Komponenten Packages und bei eigenen Komponenten die irgendwann (als irgendwo in der Objekthierarchie) abgeleitet wurde.
Es bringt nämlich überhaupt nix, wenn ich z.B. die Komponente "ThemeManger" oder "ThemeManagerDB" auf unsere Formulare lege. Ich weiss nicht warum, aber ich denke, weil unsere fast alle auf eigene Komponenten basieren. |
Re: Eigene Form u. DB-Komponenten -> XP-Style
Wenn du eigenentwickelte Komponenten einsetzt, welche auch eine eigene Zeichneroutine besitzen, so mußt Du natürlich auch für aktivierte XP-Themes eine eigene Zeichenroutine implementieren. Windows kann natürlich nicht wiesen dass dein Custom-Control zwar in der Art xy gezeichnet wird, aber dies unter XP-Themes ganz anders aussehen soll. So ist ja z.B. der Bitbtn von Delphi ja auch nicht gethemes (trotz aktiven XP-Theme).
Wie sowas geht (XP-Theming-Zeichnen) könntest Du z.B. (wenn Du ein paar € investieren kannst) im ![]() |
Re: Eigene Form u. DB-Komponenten -> XP-Style
Soweit ich weiss sind unser Komponenten meisten nur mit zusätzlichen Funktionen ausgestattet, und alle von den Standardkomponenten abgeleitet! D.h. unsere Komponentenentwickler haben keine eigenen Zeichenroutinen eingebaut!
Gestern hatte ich komischerweise auf einem Tool, das auf unserer TForm basierte und eigentlich nur mit unseren komponente ausgestattet war das glück eine ThemeManagerXP Komponente draufzulegen und kurze Zeit den Anblick zu geniessen! Leider ging das nur bei dem Tool! bei einem Projekt von unserem Produkt ging der Versuch fehl! Ich weiss nicht warum? Schön wäre es ja, wenn ich eben nicht immer extra eine ThemeManagerXP Komponente auf die Form legen müssten, sonder wenn z.B. in der Form oder z.B. in allen unseren Komponenten das ThemeManagerObjekt bzw. Routine integriert ist! Weil jede Nacht ein gesamt Kompilat unsere Produktes läuft wäre es daher auch schön! Weil sonst müsste ich ja alle .pas bzw. .dfm bearbeiten und die ThemeManagerDB Komponente einabauen! Der Weg über die Veränderung unsere Komponeten wäre da einfacher, da diese ja in jedem Projekt eingesetzt werden und es bei dem Gesamtkompilat dann schneller zu einem XP-Style führt! |
Re: Eigene Form u. DB-Komponenten -> XP-Style
wenn die komponenten von anderen abgeleitet sind auch auch am zeichnen nix geändert wird, müsste der xp-style bei dem nachfahren genauso wie beim vorgänger sein
|
Re: Eigene Form u. DB-Komponenten -> XP-Style
versuch mal die bpl-dateien im System32-Verzeichnis von Deinem und den anderen abzugleichen..
Bernhard und Alcaeus schlafen wohl nie <griemel> Gruß, Jochen |
Re: Eigene Form u. DB-Komponenten -> XP-Style
[OT]
Zitat:
[/OT] |
Re: Eigene Form u. DB-Komponenten -> XP-Style
[OT]
Zitat:
[/OT] Zum Problem. Um für deine Anwendung Theming zu aktivieren, ist ein sogenanntest Manifest nötig. Dieses ist entweder eine .manifest-Datei parallel zur Anwendungs-Exe oder ein Manifest-Resource. Alle XP-Theming-Komponenten werden nur einmal pro Anwendung benötigt und sorgen für das Einbinden dieser speziellen Resource. Alternativ kannst Du auch selbst diese Resource zu deiner Anwendung binden. Die suche nach Manifest im Forum dürfte genügend Beispiele bieten. |
Re: Eigene Form u. DB-Komponenten -> XP-Style
Ja ja das ist mir schon alles klar!
Leider funktioniert XP Theming per Manifestdatei nicht z.B. mit DBComboBox u.a. Komponenten! Das ist mein erste Problem gewesen, aber dann hab ich ja durch euer Forum die XP Thememanger Komponente von dem Entwickler des XP Manifest Komponente aus Delphi 7 gefunden! Mit der Manifestdatei ist eben nicht alles im XP Style vor allem viele DB Komponenten nicht... Ich versuch nochmal irgendwie die Thememangerklasse beim Create von unserer Form aufzurufen und dann wird unsere komplettes Produkt hoffentlich im XP Style erscheinen... Danke nochmals für die Hilfe, aber ihr habt mir leider nicht wirklich weiterhelfen können. Da ihr immer andere Dinge beschrieben habt, die leider nichts mit meine Problem zu tun haben. Trotzdem danke für eure Mühe. |
Re: Eigene Form u. DB-Komponenten -> XP-Style
Zitat:
|
Re: Eigene Form u. DB-Komponenten -> XP-Style
Also irgendwie glaube ich, das wir hier aneinander vorbei reden!
Ich rede von dem XP ThemeManager von Mike Lischke. ![]() Dieser bietet auch an das die DB-Komponenten im XP Style angezeigt werden... Diese Komponenten habe ich gemeint. Und mich hat eben nur interessiert, wie und wann ich die Unit und das Objekt ThememangerDB von Mike Lischke in unser Form integrieren soll oder ob ich es in jedes unsere Komponenten integrieren soll? Mir geht es nur darum beim gesamtkompilat, das jede Nacht über Batchdateien ausgeführt wird am nächsten Morgen ne Version rauskommt, die im XP Style ist! Da ich nicht jede unsere ca. 85000 (ich glaub so viel warens) pas datein verändern möchte und die ThememangerDB KOMPONENTE!!! einfügen möchte! Von meine Lösungsansatz über das verändern der eigenen Form dürfte dies doch gelingen oder? |
Re: Eigene Form u. DB-Komponenten -> XP-Style
In der Beschreibung steht:
Zitat:
Und nachdem ich einen Schnelltest gemacht habe, reicht es das der Manager einmal im Programm aktiv ist. Am einfachst legt man den Manager auf das Hauptformular, da dieses während der ganzen Programmlaufzeit aktiv ist. |
Re: Eigene Form u. DB-Komponenten -> XP-Style
In unserem Produkt wäre das dann die Menüleiste, wo alle anderen Programm, die in DLLs kompiliert werden aufgreufen werden.
Geht das dann dort auch oder nicht? Ich meine das die Thememanger XP Komponente dann auch Programm die in einer DLL ausgelagert wurden umzuzeichnen. Da unsere Menüleiste das einzigste Programm ist das immer auf ist... oder ist es dann doch besser den ThemeManager in unser eigene Form (BForm) aufzunehmen? |
Re: Eigene Form u. DB-Komponenten -> XP-Style
Wenn Deine Funktionaltät jeweils in einer DLL liegt dort immer nur ein Formular geöffnet wird, so schaut es schlecht aus. Du wirst dann vermutlich in jedes DLL-Formular eine Manager-Komponente legen müssen.
Der Manager der Exe hat keine Möglichkeit die Controls in der DLL zu Hooken. Falls Deine DLL-Formular alle eine eigene Basis-Klasse (nicht TForm) haben, so könntest Du den Themes-Manager dort per Code im Konstrukor erzeugen lassen. |
Re: Eigene Form u. DB-Komponenten -> XP-Style
Genau das wollte ich hören!
Wenn ich die Thememanger Obejkte erzeuge und dann die XP-Theming Methode ausführe, werden dann auch eigene Komponenten, die auf VCL-Komponenten basiern bzw. abgeleitet sind auch gethemed? Oder Kann man das nicht einfach beantworten? Wenn net dann probier ich es üer die Erzeugung de Objektes im Konstruktor unserer Form aus! Danke |
Re: Eigene Form u. DB-Komponenten -> XP-Style
Wenn die Basis-Klasse gethemed wird und
- keine eigene Zeichenroutine verwendet wird - Basisfunktionen für Fenstererzeugung nicht überschrieben werden so wird auch die abgeleitete Klasse gethemed. (Gerade mit Ableitung von TBitBtn getestet) |
Re: Eigene Form u. DB-Komponenten -> XP-Style
OK dann werd ich das morgen auf der Arbeit testen!
Danke nochmal, falls es Probleme gibt dann schreib ich wieder hier rein... |
Re: Eigene Form u. DB-Komponenten -> XP-Style
Hab jetzt diesen Code...
Delphi-Quellcode:
in unser BForm beim Create reingemacht, leider passiert gar nix! Beim Destroy wird auch alles ordentlich zerstört, aber beim Create passiert schon gar nix! Bitte helft mir ;) ich weiss nicht warum das nix passiert?
FThemeManager := TThemeManager.Create(Self);
FThemeManagerDB := TThemeManagerDB.Create(Self); if Assigned(FThemeManager) then begin FThemeManager.ClearLists; FThemeManager.CollectForms; end; if Assigned(FThemeManagerDB) then begin FThemeManagerDB.ClearLists; FThemeManagerDB.CollectForms; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:37 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