Einzelnen Beitrag anzeigen

Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#1

Merkwürdiges Schalterverhalten!?

  Alt 17. Mär 2010, 09:17
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
  Mit Zitat antworten Zitat