Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Systemfarben (https://www.delphipraxis.net/12996-systemfarben.html)

MatthiasW 8. Dez 2003 23:27


Systemfarben
 
Ich habe mir einen XP - SpeedButton Programmiert. Dieser sieht auch unter zB. Win2K XP-mässig aus, ich würde aber gerne wenn das Control auf einen WindowsXP - System läuft das so haben, das wenn auf dem XP - Rechner das Design geändert wird, das dann mein Control ebenfalls in den neuen Farben erstrahlt.

Gibts da Systemconstanten für diese Farben also sowas wie "clActiveBorder" (clActiveBorder stellt leider den Rahmen nur grau dar). Gibts da eine Farbconstante für Border des SpeedButton, die Color für MouseOver und MouseDown und Exclusive?

Danke für eure Hilfe

Mfg Matthias

Dax 9. Dez 2003 07:22

Re: Systemfarben
 
Also, die Übersetzungen für die Systemfarben von Delphi bin ich grad am machen. Die könnt ich dir morgen geben :wink:
Aber für OnMouseDown und so weiß ich auch nix.

Bernhard Geyer 9. Dez 2003 08:36

Re: Systemfarben
 
Die Themes-Farben können über die Funktion GetThemeSysColor aus der System-DLL uxtheme.dll abgefragt werden.
Dazu werden die COLOR_*-Konstanten aus der Windows.pas verwendet.

Warum willst Du XP-Theming nochmals unter W2K nachprogrammieren? Falls Du ein paar € ausgeben kannst würde ich dir empfehlen mal die ElPack-Komponentensammlung anzusehen. Diese bieten eine eigene XP-Themes-Engine an, mit welcher unter Win98-2003 jede beliebige XP-Themes-DLL verwendet werden kann um XP-Theming auch unter nicht XP-Themes-Systemen nachzubilden.

MatthiasW 9. Dez 2003 09:31

Re: Systemfarben
 
Hallo,
Zitat:

Zitat von Bernhard Geyer
Warum willst Du XP-Theming nochmals unter W2K nachprogrammieren?

ich glaube wir haben uns falsch verstanden und oder ich mich falsch ausgedrückt. Ich möchte natürlich nicht das XP-Theming nachproggen. Ich möchte folgendes machen: Dem SpeedButton den ich programmiert habe ich die Farben gegeben das dieser auch unter Win2K so aussieht wie das ganze unter OfficeXP mit WinXP aussieht. Jetzt möchte ich aber noch eine Funktion einbauen, das wenn dieses Control auf einem WindowsXP - Rechner eingesetzt wird die Systemfarben verwendet werden, sodas wenn im WinXP ein anderes Design verwendet wird, sich dieser Button in den Farben an dieses Design anpassen tut.

Also das was ich machen will in kurzform:

Unter Win2K:

Canvas.Brush.Color := RGB(49,106,197);
Canvas.Brush.FrameRect(ClientRect);


Unter WinXP:

Canvas.Brush.Color := clHighLight;
Canvas.Brush.FrameRect(ClientRect);


Ich hoffe jetzt hab ichs etwas verständlicher ausgedrückt was ich machen will

Mfg Matthias

MatthiasW 9. Dez 2003 09:36

Re: Systemfarben
 
Hallo,

Zitat:

Zitat von gecko2000
Also, die Übersetzungen für die Systemfarben von Delphi bin ich grad am machen. Die könnt ich dir morgen geben :wink:
Aber für OnMouseDown und so weiß ich auch nix.

daran wäre ich interessiert.

Jeder SpeedButton im OfficeXP hat ja mehrere Farben:

- die Farbe für den Border (49,106,197)
- die Farbe wenn keine Mouse über dem Button ist oder dieses auch nicht im
Exclusive - Mode ist
- die Farbe wenn die Mouse über dem SpeedButton ist
- und die Farbe wenn der Button gedrückt wird

ich gehe halt in der annahme das es für diese 4 Farben Systemconstanten gibt die ich verwenden kann, sodas mein Control im Aussehen an eine Designänderung im XP angepasst wird (automatisch)

Mfg Matthias

Luckie 9. Dez 2003 11:21

Re: Systemfarben
 
Zitat:

Zitat von MatthiasW
Jeder SpeedButton im OfficeXP hat ja mehrere Farben:

[..]

sodas mein Control im Aussehen an eine Designänderung im XP angepasst wird (automatisch)

Was hat das Aussehen der Anwendungssoftware Office mit der Versionsnummer XP mit den Themes des Betriebssystems Windows XP zu tun? Nichts!
Also ich würde einfach ein Manifest bei legen (zeigt nur Wirkung unter XP) und mich mehr auf die Funktionalität des Programmes konzentrieren als irgendwelche designmäßigne Spielereien. :roll:

choose 9. Dez 2003 11:38

Re: Systemfarben
 
Zitat:

Zitat von gecko2000
Also, die Übersetzungen für die Systemfarben von Delphi bin ich grad am machen. Die könnt ich dir morgen geben

Ich wäre daran interessiert, welche Farbe der std Hyper-Link hat. Bisher waren die Farben bei den mir bekannten Komponenten-Suits immer auf clBlue gesetzt, obgleich diese Farbe auch davon abweichen kann...
Wird es diese "Konstante" ebenfalls bei Deiner Übersetzung geben?

MathiasSimmack 9. Dez 2003 12:30

Re: Systemfarben
 
Zitat:

Zitat von MatthiasW
ich glaube wir haben uns falsch verstanden und oder ich mich falsch ausgedrückt. Ich möchte natürlich nicht das XP-Theming nachproggen. Ich möchte folgendes machen: Dem SpeedButton den ich programmiert habe ich die Farben gegeben das dieser auch unter Win2K so aussieht wie das ganze unter OfficeXP mit WinXP aussieht.

Helles Blau mit dunkelblauem Rand?
Ändere doch spaßeshalber mal deine Systemfarben für markierte Elemente auf Rot und starte Office XP noch mal. Du wirst dein ... äh ... rotes Wunder erleben, denn die Menüs und Toolbars von Office passen sich an die jeweils gewählte Systemfarbe an.

Zitat:

Jetzt möchte ich aber noch eine Funktion einbauen, das wenn dieses Control auf einem WindowsXP - Rechner eingesetzt wird die Systemfarben verwendet werden, sodas wenn im WinXP ein anderes Design verwendet wird, sich dieser Button in den Farben an dieses Design anpassen tut.
"Tut" tut man nicht benutzen tun.

Die für dich einfachste Variante ist ohne Zweifel das Hier im Forum suchenXPMenu, da es neben dem Menü auch Toolbars usw. im Office XP-Stil enthält.

MatthiasW 9. Dez 2003 22:01

Re: Systemfarben
 
Hallo,

Danke für eure Hilfe, hab mich dazu entschlossen auf die Farbänderung bei einem Designwechsel unter Windof XP zu verzichten.

Mfg Matthias

Dax 10. Dez 2003 07:18

Re: Systemfarben
 
Irgenwie kommt's ein wenig spät, aber die Lick-Farbe wird es wohl nicht geben :cry:
Ich bin selber noch am tüfteln, war schwieriger als ich dachte...


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 Uhr.
Seite 1 von 2  1 2      

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