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 Merkwürdiges Schalterverhalten!? (https://www.delphipraxis.net/149239-merkwuerdiges-schalterverhalten.html)

Mattze 17. Mär 2010 09:17


Merkwürdiges Schalterverhalten!?
 
Hallo,

ist schon eine komische Sache...

Wenn ich einen Button (TButton, TBitBtn, TSpeedbutton) auf ein normales Formular lege, ist alles "normal".
Lege ich ihn auf ein Formular in einer DLL ändert sich sein Verhalten.
Er kriegt jetzt einen andersfarbigen Rand und ändert die Farbe beim Mouseover. Komisch, aber wahr und gefällt mir auch besser.

Ein ähnliches Verhalten zeigt ein TPanel, das zuerst mal transparent zu sein scheint. Wahrscheinlich wir zusätzlich eine Maske generiert.
Mit ParentBackground:=false; und Color:=clWhite; geht's wieder. Mit clWhite wird die Hintergrundfarbe (also die vom Parent) tatsächlich übernommen.

Ein ähnliches Problem mit Listboxen. Nur bei Color:=clWhite; wird die Hintergrundfarbe wirklich übernommen, sonst stimmt es nicht ganz. (z. B. Hintergrund = clBtnFace und Listbox.color auch clBtnFace).
Das deutet eigentlich alles auf eine Maske (mit and-Verknüpfung) hin.

Wie gesagt, dass "klappt" aber nur, wenn das auf einem Formular in einer DLL ist.

Weiß jemand, warum das so ist? Und kann man das auch für normale Formulare im Programm machen. Und kann man die MouseOver- und Rand-Farben beim Button anpassen bzw. woher kommen die? (Scheinen vom gewählten Design von Windows 7 zu kommen?)
Auf jeden Fall gefällt es mir besser als das "Normale".

Ach ja: Delphi 7 pro unter Windows 7 HP.

Gruß
Mattze

Uwe Raabe 17. Mär 2010 09:38

Re: Merkwürdiges Schalterverhalten!?
 
Versuch mal einfach ein XP Manifest (findest du in den Win32 Components) auf das MainForm zu legen.

DeddyH 17. Mär 2010 09:40

Re: Merkwürdiges Schalterverhalten!?
 
Zitat:

Zitat von Uwe Raabe
Versuch mal einfach ein XP Manifest (findest du in den Win32 Components) auf das MainForm zu legen.

Oder alternativ die Unit XPMan einzubinden.

Uwe Raabe 17. Mär 2010 09:45

Re: Merkwürdiges Schalterverhalten!?
 
Zitat:

Zitat von DeddyH
Zitat:

Zitat von Uwe Raabe
Versuch mal einfach ein XP Manifest (findest du in den Win32 Components) auf das MainForm zu legen.

Oder alternativ die Unit XPMan einzubinden.

Tatsächlich tut die Komponente auch nichts anderes, als dafür zu sorgen, daß XPMan eingebunden wird. Gemein wird es nur, wenn man die Komponente wieder löscht, aber die Unit in der uses-clause stehen lässt...

DeddyH 17. Mär 2010 09:57

Re: Merkwürdiges Schalterverhalten!?
 
Eben, deshalb würde ich den Weg über die Unit gehen, dann merkt man sich evtl. eher, was man gemacht hat ;)

Uwe Raabe 17. Mär 2010 10:31

Re: Merkwürdiges Schalterverhalten!?
 
Zitat:

Zitat von DeddyH
Eben, deshalb würde ich den Weg über die Unit gehen, dann merkt man sich evtl. eher, was man gemacht hat ;)

Hast ja Recht...

himitsu 17. Mär 2010 10:35

Re: Merkwürdiges Schalterverhalten!?
 
oder man erstelle sich gleich ein eigenes Manifest und binde dieses ein. :angel2:

Mattze 17. Mär 2010 14:30

Re: Merkwürdiges Schalterverhalten!?
 
Hallo,

vielen Dank. Insbesondere wegen Eurer Geduld!

Es mag ja manchmal ganz gut sein, dass der Mensch vergesslich ist. Aber manchmal ist es auch sehr peinlich!
Das hätte ich eigentlich wissen müssen, aber im Laufe der Zeit ist eben auch das verschütt gegangen.

Tschau
Mattze


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