Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   WIN-XP Design mit delphi (https://www.delphipraxis.net/56502-win-xp-design-mit-delphi.html)

berndberndbernd5b 6. Nov 2005 23:00


WIN-XP Design mit delphi
 
hi leute!
Da ich die button unter Delphi sau hässlich finde, möchte ich euch fragen, wie die das XP-Design kriegen können?

dahead 6. Nov 2005 23:17

Re: WIN-XP Design mit delphi
 
da hilft dir die komponente XPManifest (zu finden unter Win32).

einfach auf die anwendung und fertig.

leddl 6. Nov 2005 23:56

Re: WIN-XP Design mit delphi
 
Aber erst ab D7, wenn mich nicht alles täuscht, oder?

Pr0g 7. Nov 2005 00:01

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von leddl
Aber erst ab D7, wenn mich nicht alles täuscht, oder?

Ja, sonst musst du es selber einbinden (Info), kommt aufs gleiche hinaus.

himitsu 7. Nov 2005 00:47

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von Pr0g
Ja, sonst musst du es selber einbinden (Info), kommt aufs gleiche hinaus.

Kommt nich nur auf's gleiche Raus ... is sogar besser ^^

Denn im Grunde ist die Komponente (TXPManifest) nur dafür da, um die Unit XPMan in das Programm einzubinden - zu mehr ist diese nicht fähig und nachdem man mal kurz gespeichert, oder kompliert hat, könnte man diese wieder entfernen.

Delphi-Quellcode:
unit XPMan;
{$WEAKPACKAGEUNIT ON} 
interface

uses
  SysUtils, Classes;

type
  TXPManifest = class(TComponent)
  end;

{$R WindowsXP.res}

implementation

end.
Oder man macht es kurz und schmerzlos und trägt die Unit XPMan selber in seine Uses-Klausel ein.

Natürlich geht es auch noch ganz kurz und radikal :roll:
Delphi-Quellcode:
{$R WindowsXP.res}
Versucht doch mal einfach nur die entsprechende Resourcen-Datei in euer Programm einzubinden.
Halt genauso wie in dem Beitrag, nur eben mal direkt die RES von Delphi, wenn diese Vorhanden ist (ab D7) ... ansonsten vorher noch diese RES erstellen und dann diese einbinden ^^
Denn wozu soll man unbedingt 'ne Sinnlose Unit und eine noch Sinnlosere Komponente in seinem Programm haben :angel:

MaBuSE 7. Nov 2005 06:29

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von himitsu
Natürlich geht es auch noch ganz kurz und radikal :roll:
Delphi-Quellcode:
{$R WindowsXP.res}
Versucht doch mal einfach nur die entsprechende Resourcen-Datei in euer Programm einzubinden.
Halt genauso wie in dem Beitrag, nur eben mal direkt die RES von Delphi, wenn diese Vorhanden ist (ab D7) ... ansonsten vorher noch diese RES erstellen und dann diese einbinden ^^
Denn wozu soll man unbedingt 'ne Sinnlose Unit und eine noch Sinnlosere Komponente in seinem Programm haben :angel:

Ich persönlich verwende die Unit XPMan im der *.dpr Datei.

Das direkte Einbinden der Resource WindowsXP.res hat den Nachteil, dass wenn irgendwo im Projekt die "sinnlose" Komponente oder XPMan verwendet wird, es eine Fehlermeldung gibt: Doppelte Resource eingebunden. (oder so ähnlich)
Gerade wenn mehere Programmierer an einem Projekt arbeiten und irgendjemand auf die Idee kommt die "sinnlose" Komponente zu verwenden, erntet er eine Fehlermeldung und weiss nicht warum.
Wenn er die Komponente wieder entfernt ist die Fehlermeldung immer noch da. Erst wenn er auch die XPMan aus dem Quelltext entfernt, gehts wieder.
Wenn man aus diesem Grund gleich die XPMan verwendet, ist es egel, weil die Unit ja nur einmal in das Programm eingebunden wird, egal wie oft die aufgerufen wurde.

Und wenn jetzt kommt:
Bei uns verwendet niemand die "sinnlose" Komponente, ich mach das nun direkt mit der WindowsXP.res Datei.

Dann sag ich nur:
Es gibt (leider) auch 3th Party Komponenten die XPMan einbinden.
(Und wenn man diese nicht im Quelltext hat, ...)

MPirnstill 7. Nov 2005 08:45

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von Pr0g
Ja, sonst musst du es selber einbinden (Info), kommt aufs gleiche hinaus.

Hi!

Ich habe das mal ausprobiert! Dachte das könnte ja ganz nett aussehen. Ich hab mir die compilierte RES-Datei unter dem Link runtergeladen und mit
Delphi-Quellcode:
{$R WINXP.RES}
Es ist danach jedoch keine Veränderung am Aussehen der Anwendung zu sehen. Kann es sein, daß das bei Delphi 2.0 noch nict funktioniert? :?:

RavenIV 7. Nov 2005 08:57

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von MPirnstill
Es ist danach jedoch keine Veränderung am Aussehen der Anwendung zu sehen. Kann es sein, daß das bei Delphi 2.0 noch nict funktioniert? :?:

gab es denn schon WinXP als Delphi 2.0 rausgekommen ist?
Daher kann es sehr gut möglich sein, dass es damals noch keine Möglichkeit gegeben hat, das Design zu ändern...

gruessle

MaBuSE 7. Nov 2005 09:00

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von MPirnstill
Es ist danach jedoch keine Veränderung am Aussehen der Anwendung zu sehen. Kann es sein, daß das bei Delphi 2.0 noch nict funktioniert? :?:

Ja, aber Du setzt ja nach Deinem Profil auch Delphi 2005 ein ;-)

MPirnstill 7. Nov 2005 09:03

Re: WIN-XP Design mit delphi
 
Nee, gab's damals m.E. noch nicht! Na ja, muß ich eben bei der alten Darstellung bleiben. :(

@MaBuSe
Aber leider nicht für die Anwendung für die ich es benutzen wollte, die ist schon etwas älter. :mrgreen: Deshalb hab ich auch gedacht ich könnte der so einen moderneren Touch geben.

Gruß

MathiasSimmack 7. Nov 2005 09:12

Re: WIN-XP Design mit delphi
 
Wovon reden wir hier eigentlich? :gruebel: Der so genannte "XP-Stil" bedeutet doch bloß, dass eine Manifestdatei dafür sorgt, dass das System die Common Controls 6.0 lädt. Mehr nicht. Den Effekt erreicht man schon mit einer simplen [dp="Manifest XML"]XML[/dp]-Datei. Einfach den Namen der Exe geben und zusätzlich ".manifest" anhängen (etwa "Programm.exe.manifest"), in den gleichen Ordner wie die Exe, und die Sache läuft.

Das einzige, mir bekannte Problem sind Controls, die u.U. noch nicht für das Manifest ausgelegt sind. Das bekannteste Beispiel von Delphi 5 ist die VCL-Listview, die in der Detailsansicht Fehler produziert. Das hängt in der Tat damit zusammen, dass es Windows XP damals noch nicht gab. Ansonsten sollte sich aber ein in Delphi 2 oder 3 geschriebenes und kompiliertes Programm mit Buttons, Eingabefeldern, usw. problemlos mit einem Manifest ausstatten lassen.

RavenIV 7. Nov 2005 09:13

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von MPirnstill
Nee, gab's damals m.E. noch nicht! Na ja, muß ich eben bei der alten Darstellung bleiben. :(

@MaBuSe
Aber leider nicht für die Anwendung für die ich es benutzen wollte, die ist schon etwas älter. :mrgreen: Deshalb hab ich auch gedacht ich könnte der so einen moderneren Touch geben.

Gruß

ich sehe als einzige Möglichkeit, das Projekt in eine neuere Delphi-Version zu konvertieren.

Aber sei gewarnt:
es kann sehr viel Arbeit auf dich zukommen.
Komponenten passen nicht, irgendwelche units heissen anderst, Funktionen sind nicht mehr kompatibel, usw.

Bei uns war es jedenfalls so, als unsere Projekte von D5 nach D7 "upgedatet" werden sollten...

MPirnstill 7. Nov 2005 09:24

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von RavenIV
Aber sei gewarnt:
es kann sehr viel Arbeit auf dich zukommen.
Komponenten passen nicht, irgendwelche units heissen anderst, Funktionen sind nicht mehr kompatibel, usw.

Bei uns war es jedenfalls so, als unsere Projekte von D5 nach D7 "upgedatet" werden sollten...

Ich hatte schon mit dem Gedanken gespielt. Eigentlich wäre es nicht so schlimm, wenn da nicht die Quickreports wären. :(
D2 = Quickreport 1.0 nach D7 = Quickreport 3.0 = nicht kompatibel :cry:
Bedeuted, daß man die Quickreports alle neu machen müßte.
Fazit: Fällt aus, wegen zu wenig Zeit.

@MathiasSimmack
Heißt das ich brauche garnicht wie oben beschrieben diese RES-Datei, sondern nur eine Manifest-Datei in den entspr. Namenskonventionen? :?: Wie müßte die dann inhaltlich aussehen? :mrgreen:

Danke

MaBuSE 7. Nov 2005 09:33

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von MPirnstill
@MathiasSimmack
Heißt das ich brauche garnicht wie oben beschrieben diese RES-Datei, sondern nur eine Manifest-Datei in den entspr. Namenskonventionen? :?: Wie müßte die dann inhaltlich aussehen? :mrgreen:

Die *.res Datei ist (bzw beinhaltet) das Manifest

MPirnstill 7. Nov 2005 09:35

Re: WIN-XP Design mit delphi
 
Und warum funktioniert es dann nicht? :gruebel:

MaBuSE 7. Nov 2005 09:38

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von MPirnstill
Und warum funktioniert es dann nicht? :gruebel:

Zitat:

Zitat von MathiasSimmack
Das einzige, mir bekannte Problem sind Controls, die u.U. noch nicht für das Manifest ausgelegt sind. Das bekannteste Beispiel von Delphi 5 ist die VCL-Listview, die in der Detailsansicht Fehler produziert. Das hängt in der Tat damit zusammen, dass es Windows XP damals noch nicht gab.

Delphi 2 Komponenten sind nicht dafür ausgelegt XP Style zu verwenden.

MaBuSE 7. Nov 2005 09:49

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von MPirnstill
Und warum funktioniert es dann nicht? :gruebel:

Ich zitiere mal den Daniel:

[equote="Daniel schrieb in http://www.delphipraxis.net/internal...=114753#114753 "]zum Artikel "Delphi-Programme im XP-Style" für Delphi bis Version 6 habe ich noch eine Ergänzung.
Und zwar steht dort, dass mit dem Manifest alle von Delphi selbst gezeichneten Controls noch im alten Stil gezeigt werden. Doch auch dafür gibt es Abhilfe: Mit dem XP ThemeManager von Mike Lischke. Ja, das ist das Original, welches auch Borland bei Delphi 7 beigepackt hat. Daher aus erster Quelle. Und auch für die alten Versionen kostenlos. http://www.delphi-gems.com [/equote]

MathiasSimmack 7. Nov 2005 09:55

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von MaBuSE
Delphi 2 Komponenten sind nicht dafür ausgelegt XP Style zu verwenden.

Das sind Delphi 5-Komponenten auch nicht, dennoch laufen meine Programme problemlos mit dem XP-Manifest. Die Ausnahme sind eben Dinge wie die List-View, für die ich mir Codepatches aus dem Internet besorgen musste.

MaBuSE 7. Nov 2005 09:58

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von MathiasSimmack
Zitat:

Zitat von MaBuSE
Delphi 2 Komponenten sind nicht dafür ausgelegt XP Style zu verwenden.

Das sind Delphi 5-Komponenten auch nicht, dennoch laufen meine Programme problemlos mit dem XP-Manifest. Die Ausnahme sind eben Dinge wie die List-View, für die ich mir Codepatches aus dem Internet besorgen musste.

Siehe Beitrag #17 (einen über Deiner Antwort)

[edit]
hier ist noch mal der Link zum XP Theme Manager: http://www.delphi-gems.com/ThemeManager.php
[/edit]

MPirnstill 7. Nov 2005 10:10

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von MathiasSimmack
Das sind Delphi 5-Komponenten auch nicht, dennoch laufen meine Programme problemlos mit dem XP-Manifest. Die Ausnahme sind eben Dinge wie die List-View, für die ich mir Codepatches aus dem Internet besorgen musste.

Wenn das so ist wie du sagst, was mußte ich denn jetzt tun um meine D2-Anwendung im XP-Style zu sehen (ListView verwende ich hier nicht - ist also keine Problem)? :?: :mrgreen:

Gruß

MaBuSE 7. Nov 2005 10:17

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von MPirnstill
Zitat:

Zitat von MathiasSimmack
Das sind Delphi 5-Komponenten auch nicht, dennoch laufen meine Programme problemlos mit dem XP-Manifest. Die Ausnahme sind eben Dinge wie die List-View, für die ich mir Codepatches aus dem Internet besorgen musste.

Wenn das so ist wie du sagst, was mußte ich denn jetzt tun um meine D2-Anwendung im XP-Style zu sehen (ListView verwende ich hier nicht - ist also keine Problem)?

Liesst eigentlich jemand auch meine Beiträge. Da steht doch der Link mit der Lösung :cry:

MPirnstill 7. Nov 2005 10:54

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von MaBuSE
Liesst eigentlich jemand auch meine Beiträge. Da steht doch der Link mit der Lösung :cry:

Klar lese ich deine Beiträge.
Als ich vorhin nachfragt, ob ich jetzt zusätzlich zu der RES-Datai (WINXP.RES) auch noch eine Datei mit PROGRAMM.EXE.MANIFEST brauche, anwortete MaBuSe, die RES-Datei ist die Manifest-Datei. Aber nur mit der RES-Datei (eingebunden mit {$R winxp.res} hat sich nichts geändert. Was habe ich da, falsch gemacht? :?: :roll:
Oder muß ich diese WINXP.RES in <MyProgramm>.EXE.MANIFEST umbennenen?

Gruß

MaBuSE 7. Nov 2005 12:15

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von MPirnstill
Zitat:

Zitat von MaBuSE
Liesst eigentlich jemand auch meine Beiträge. Da steht doch der Link mit der Lösung :cry:

Klar lese ich deine Beiträge.

:)

Zitat:

Zitat von MPirnstill
Als ich vorhin nachfragt, ob ich jetzt zusätzlich zu der RES-Datai (WINXP.RES) auch noch eine Datei mit PROGRAMM.EXE.MANIFEST brauche, anwortete MaBuSe, die RES-Datei ist die Manifest-Datei. Aber nur mit der RES-Datei (eingebunden mit {$R winxp.res} hat sich nichts geändert. Was habe ich da, falsch gemacht? :?: :roll:
Oder muß ich diese WINXP.RES in <MyProgramm>.EXE.MANIFEST umbennenen?

Wenn ich mich Recht erinnere kann man auch eine XML Datei namens <MyProgramm>.exe.manifest in das gleich Verzeichnis wie <MyProgramm>.exe legen, dann sollte auch der XP Style verwendet werden.

Aber halt nur für die Controlls, die Delphi nicht selbst malt. Dazu bracuht man den ThemeManager.
Der "konvertiert" alle Controlls.

ManuMF 7. Nov 2005 17:05

Re: WIN-XP Design mit delphi
 
Ich habe D6 und mache es so:

Ich habe eine Datei XPStil.manifest:
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    name=Firmenname.Programmname"
    processorArchitecture="x86"
    version="1.0.0.0"
    type="win32"/>
<description>Programmbeschreibung</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="x86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>
Dann erstelle ich eine XPStil.rc
Code:
1 24 "XPStil.manifest"
die ich mit Klick auf "zum Projekt hinzufügen" einbinde. Mehr nicht - und es funktioniert. Die Manifest-Datei brauche ich nicht weiterzugeben.

Gruß,
ManuMF

berndberndbernd5b 7. Nov 2005 18:34

Re: WIN-XP Design mit delphi
 
wo kann ich den dieses manifest finden und was mach ich da genau, sry hört sich vll. was vercheckt an ....

Zacherl 7. Nov 2005 19:01

Re: WIN-XP Design mit delphi
 
Sonst einfach die Manifest Datei ins gleiche Verzeichniss wie das Programm legen und ihr den Namen: Programmname.exe.manifest geben. Hat auch den XP-Style Effekt.

Florian

100nF 7. Nov 2005 19:14

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von berndberndbernd5b
wo kann ich den dieses manifest finden und was mach ich da genau, sry hört sich vll. was vercheckt an ....

du hast ja delphi 7 oder?

dann müsste die komponente in der sparte "Win32" sein, wahrscheinlich ganz rechts.

einfach auf die form setzen und fertig!

gruss
urbanbruhin

berndberndbernd5b 7. Nov 2005 19:54

Re: WIN-XP Design mit delphi
 
jo, einfach genial!!!!!!!!!!!!!!!!!

Robert_G 7. Nov 2005 20:10

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von urbanbruhin
einfach auf die form setzen und fertig!

:lol: Ist schon schwer XPMan in die uses clause zu tippen. Ein Delphianer zieht sich da natürlich gleich eine weitere "Komponente" auf's übervölkerte Form...

100nF 7. Nov 2005 20:23

Re: WIN-XP Design mit delphi
 
Zitat:

Zitat von Robert_G
Zitat:

Zitat von urbanbruhin
einfach auf die form setzen und fertig!

:lol: Ist schon schwer XPMan in die uses clause zu tippen. Ein Delphianer zieht sich da natürlich gleich eine weitere "Komponente" auf's übervölkerte Form...

weisst du, ich will sehen was sich so alles auf meiner form versteckt :mrgreen:

ausserdem ist ein kleines "bildli" hübscher als ein kurzer text^^

man kann natürlich auch das XPmanifest auf die form setzen und danach wieder löschen, der uses-eintrag bleibt nämlich trotzdem vorhanden, so erreicht man das selbe wie mit text schreiben, jedoch ohne sich anstrengen zu müssen (wort tippen) :-D

warum kompliziert, wenns einfach geht :?:

Kedariodakon 12. Sep 2007 14:00

Re: WIN-XP Design mit delphi
 
So das wollte ich auch mal probieren...
Zitat:

Zitat von ManuMF
Ich habe D6 und mache es so:
Ich habe eine Datei XPStil.manifest:
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    name=Firmenname.Programmname"
    processorArchitecture="x86"
    version="1.0.0.0"
    type="win32"/>
<description>Programmbeschreibung</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="x86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>

So eine Datei anlegen ist nicht schwer, das bekomm ich hin.


Zitat:

Zitat von ManuMF
Dann erstelle ich eine XPStil.rc
Code:
1 24 "XPStil.manifest"

Wie erstellt man so eine *.rc aus der Datei???

Zitat:

Zitat von ManuMF
die ich mit Klick auf "zum Projekt hinzufügen" einbinde. Mehr nicht - und es funktioniert. Die Manifest-Datei brauche ich nicht weiterzugeben.

Das bekomm ich wohl hin, aber die *.rc - Datei fehlt mir :angel2:

Bye Christian


EDIT: Ich habs verpeilt, Fragen sind alle geklärt :drunken:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 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-2025 by Thomas Breitkreuz