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/)
-   -   Delphi altes Projekt unter Delphi 2007 hat keinen Windows XP look (https://www.delphipraxis.net/102935-altes-projekt-unter-delphi-2007-hat-keinen-windows-xp-look.html)

Oracle 7. Nov 2007 09:29


altes Projekt unter Delphi 2007 hat keinen Windows XP look
 
Ich habe hier ein altes Projekt, welches mit Delphi 6 erstellt wurde.
Diese bearbeite ich nun mit Delphi 2007.
Wenn ich das Priojekt kompiliere hat es keinen XP Look. Sprich Buttons und Panels sind eckig und nicht abgerundet und der gleichen.
Wenn ich eine neues Projekt in Delphi 2007 anlege, dann hat dieses den XP Look.
Was muss ich an dem alten Projekt ändern?
Vielen Dank schonmal im Vorraus. :-D

Deep-Sea 7. Nov 2007 09:31

Re: altes Projekt unter Delphi 2007 hat keinen Windows XP lo
 
Die Komponente "TXPManifest" auf dein Formular ziehen?!
(Allerdings müsste man das auch bei neuen Projekten machen)

ringli 7. Nov 2007 09:37

Re: altes Projekt unter Delphi 2007 hat keinen Windows XP lo
 
In den Projektoptionen unter "Anwendung" die Option "Laufzeit-Themes aktivieren" setzen. Die Komponente TXPMainifest gibt es glaube ich nicht mehr.

Trigger2003 7. Nov 2007 09:40

Re: altes Projekt unter Delphi 2007 hat keinen Windows XP lo
 
TXPManifest gibt's zwar noch, aber ringli's Hinweis ist IMHO der richtige Weg.

Deep-Sea 7. Nov 2007 09:41

Re: altes Projekt unter Delphi 2007 hat keinen Windows XP lo
 
Zitat:

Zitat von ringli
Die Komponente TXPMainifest gibt es glaube ich nicht mehr.

Du glaubst? Du hast doch D2007, also musst du es doch wissen :P ...

ringli 7. Nov 2007 09:43

Re: altes Projekt unter Delphi 2007 hat keinen Windows XP lo
 
Nein, weiß ich nicht. Weil ich die Komponente seit Ewigkeiten nicht mehr verwende und stattdessen lieber ein eigenes Manifest einbinde. ;)

Oracle 7. Nov 2007 09:45

Re: altes Projekt unter Delphi 2007 hat keinen Windows XP lo
 
alles klar ich habe mal eben beide Varianten ausprobiert.
TXPManifest gibt es auch unter Delphi 2007 noch.
Beide Varianten funktionieren soweit.
Nur habe ich jetzt das Problem, dass sich die Oberfläche im Schneckentempo aufbaut.
Das ist so langsam, daß ein arbeiten nicht mehr damit möglich ist.
Wisst ihr woran das liegen kann?

Deep-Sea 7. Nov 2007 09:45

Re: altes Projekt unter Delphi 2007 hat keinen Windows XP lo
 
Zitat:

Zitat von ringli
Nein, weiß ich nicht. Weil ich die Komponente seit Ewigkeiten nicht mehr verwende und stattdessen lieber ein eigenes Manifest einbinde. ;)

Du könntest aber nachsehen ^^

ringli 7. Nov 2007 09:46

Re: altes Projekt unter Delphi 2007 hat keinen Windows XP lo
 
Könnte ich, aber da Oracle bereits die Antwort gegeben hat ist das wohl unnötig.

Oracle 7. Nov 2007 09:48

Re: altes Projekt unter Delphi 2007 hat keinen Windows XP lo
 
nu hört auf euch zu zanken, und sagt mir lieber wieso sie die Form jetzt Komponente für Komponente ganz lahm aufbaut.

OldGrumpy 7. Nov 2007 10:12

Re: altes Projekt unter Delphi 2007 hat keinen Windows XP lo
 
Wie so oft zahlt man für grafischen Schnickschnack halt in kalter harter Währung namens CPU-Last :)

Deep-Sea 7. Nov 2007 10:17

Re: altes Projekt unter Delphi 2007 hat keinen Windows XP lo
 
Zitat:

Zitat von Oracle
[...] sagt mir lieber wieso sie die Form jetzt Komponente für Komponente ganz lahm aufbaut.

Du nutzt aber nicht VCL .NET oder? ...

Oracle 7. Nov 2007 10:29

Re: altes Projekt unter Delphi 2007 hat keinen Windows XP lo
 
Hab grad rausgefunden, dass die OnPaint Methode jetzt scheinbar viel öfter aufgerufen wird.
Daraufhin habe ich die Anweisungen daruas nach OnShow verlagert, und schon habe ich meinen alten Speed wieder.
Hat jemand vielleicht eine Erlkärung dafür?
Nein ich benutze nicht VCL.net

Daniel 7. Nov 2007 10:53

Re: altes Projekt unter Delphi 2007 hat keinen Windows XP lo
 
Eine mögliche Erklärung: Schlechtes bzw. fragwürdiges Design.

OnPaint wird immer dann aufgerufen, wenn es etwas zu zeichnen gibt. Das kann - wie Du ja festgestellt hast, durchaus sehr oft sein. OnShow wird eben nur dann aufgerufen, wenn das Control seinen Sichtbarkeits-Status ändern. Das ist meistens bei Weitem nicht so oft der Fall.

So oder so handelt es sich bei OnPaint und OnShow auch um semantisch zwei unterschiedliche Events. Daher verstehe ich nicht, wie man Befehle haben kann, die hier oder dort stehen könnten. Üblicherweise drängt sich - je nach Progrmamlogik - die eine oder andere Variante auf.

Oracle 7. Nov 2007 11:13

Re: altes Projekt unter Delphi 2007 hat keinen Windows XP lo
 
da gehe ich voll mit. Der Code selbst stammt allerdings nicht von mir sondern meinem Vorgänger.
Ich denke auch dass der Code bei OnShow richtig aufgehoben ist.
Mir ist nur nicht klar, warum diese Zeitverzögerung nicht vorher schon aufgetreten ist.

OldGrumpy 7. Nov 2007 13:46

Re: altes Projekt unter Delphi 2007 hat keinen Windows XP lo
 
Das Verhalten mit und ohne XP-Themes ist deutlich unterschiedlich. Ich habe hier z.B. gerade das lustige Problem, dass ich eine Anwendung mit aktivierten XP-Themes partout nicht maximiert beim Starten anzeigen kann, ohne XP-Themes geht es. Ist XP-Themesupport mittels TXPManifest eingebunden, erscheint das Fenster zwar mit den Bordericons als wäre es maximiert, es nimmt aber nicht den ganzen Bildschirm ein, sondern die gleiche Größe die es auch im nicht maximierten Zustand hat. Ich habe mangels Zeit noch nicht rausgefunden woran das hängt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:57 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