![]() |
[XP-Manifest] Rahmen eines Buttons
Morgen DP-Community :-D ,
ich hab meine eigene TreeviewCombobox - Komponente fast vollständig fertig! Äußerlich wirkt sie auch zu 100% wie eine normale Combobox, zumindest solange die XP-Theme deaktiviert ist. Wenn sie aktiviert ist hat jeder Button so einen häßlichen Rahmen um sich (in der Farbe des Hintergrundes) und ich habe keine Ahnung wie ich den entfernen kann :o Vll. habt ihr ja eine Idee oder Alternative dazu :) MfG Alaitoc |
Re: [XP-Manifest] Rahmen eines Buttons
Dazu müsste man eventuell wissen, wie Du denn Deine Komponente hergestellt hast.
Sherlock |
Re: [XP-Manifest] Rahmen eines Buttons
Die Komponente besteht aus nem TPanel, wo ein TEdit und ein TSpeedbutton draufliegen.
Dann gibts natürlich noch die anderen Sachen für den Treeview, aber das sollte hier ja dann nebensächlich sein. |
Re: [XP-Manifest] Rahmen eines Buttons
Liste der Anhänge anzeigen (Anzahl: 2)
Na, dann kommt der Rahmen also vom TSpeedButton. Muss grad mal sehen, wie der so "gethemed" reagiert, ich nutze den sonst gar nicht.
Edith findet, daß der Button ganz chic aussieht (das kleine Glyphlein hab ich einfach mal so reingetan). Sherlock |
Re: [XP-Manifest] Rahmen eines Buttons
Soweit ich das sehe reagiert der genau wie der TButton, habe zumindest
keinen Unterschied feststellen können. Schlecht aussehen tut er soweit ja nicht, nur ist halt der weiße Rahmen störend... Zur Zeit versuche ich es so: Panel.BevelInner := bvNone; Panel.BevelOuter := bvNone; Panel.BorderStyle := bsSingle; Panel.Ctl3D := False; Und verstecke den Rahmen des Buttons mit Top - 1, Left + 1 und sowie der entsprechenden Größe. Wobei dann nun das Panel nen schwarzen Rand hat x.x |
Re: [XP-Manifest] Rahmen eines Buttons
Es gibt einen gravierenden Unterschied zwischen TButton und TSpeedButton: TSpeedButton hat kein Fensterhandle da es kein Windows-Control ist (siehe auch die unterschiedlichen Parentklassen von TSpeedButton und TButton). Das hat mir auch schon ein paar schlaflose Nächte bereitet und letzten Endes dazu geführt, mir selber ein paar Controls zu bauen :)
|
Re: [XP-Manifest] Rahmen eines Buttons
Guten Morgen,
versuche mal folgendes: z.B. beim TPanel
Delphi-Quellcode:
Grüße
ParentBackGround := true;
Klaus |
Re: [XP-Manifest] Rahmen eines Buttons
Liste der Anhänge anzeigen (Anzahl: 1)
ParentBackGround hat bei mir nur bewirkt, dass der Button zumindest keinen grauen
sondern nur einen weißen Rahmen hat. Also hier mal ein Bild zur aktuellen Situation: 1. Aktuelles Design im XP-Style 2. Aktuelles Design ohne XP-Style 3. Gewünschtes Design im XP-Style (also so in etwa) Edith hätte sonst noch anzubieten das der Rahmen richtig ist, aber der Button mit nem weißen Rahmen drum rum im Panel liegt. ^^ |
Re: [XP-Manifest] Rahmen eines Buttons
So ich hab mein Panel nun mit nem Canvas erweitert und versuche mal den Rahmen halt manuell zu zeichnen,
die Frage die sich mir dabei aber stellt...welche Farbe nutzt eine normale Combobox im XP-Style? :o |
Re: [XP-Manifest] Rahmen eines Buttons
Zitat:
![]() Damit kannst du auch den Button korrekt gethemed zeichnen. Gruß Marco |
Re: [XP-Manifest] Rahmen eines Buttons
Äh hm naja im Endeffekt brauche ich ja nur die Rahmenfarbe der Combobox,
da ich ja nicht direkt ne Combobox habe sondern eher ein Panel wo nen Button und nen Eingabefeld draufliegen... Werd mir das aber mal anschauen mit den Themes, vll krieg ich die Informationen da raus :o |
Re: [XP-Manifest] Rahmen eines Buttons
Zitat:
Gruß Marco |
Re: [XP-Manifest] Rahmen eines Buttons
Hmhm, wenn ich das richtig verstehe muss ich aber nu dann alle Controls selbst erstellen?
Also nen eigenen Combobox-Button mit den Themes z.b.? |
Re: [XP-Manifest] Rahmen eines Buttons
Also wenn es nicht ganz "original" aussehen muss, kannst du den Button auch so drin lassen, wie bisher und den Rahmen um das Control mittels dem teEditTextNormal Element zeichnen.
Gruß Marco |
Re: [XP-Manifest] Rahmen eines Buttons
Klappt soweit wunderbar, zumindest mit dem Rahmen...jedoch habe ich nun das Problem, dass der Button
sich immer über den Rahmen legt...mal schauen was ich da mache ^_° Btw sagt Edith schonmal vielen Danke :) |
Re: [XP-Manifest] Rahmen eines Buttons
Zitat:
Off topic: wer ist Edith??? Gruß Marco |
Re: [XP-Manifest] Rahmen eines Buttons
Hab mir grad überlegt den Button auch selbst zu zeichnen, da er sonst auch bei den unterschiedlichen Themes merkwürdig aussieht ^_^
Offtopic: Edith = Edit Also hatte den Beitrag editiert ;) |
Re: [XP-Manifest] Rahmen eines Buttons
So habs jetzt einfach mal so gemacht:
Delphi-Quellcode:
{ TThemesSpeedButton } //****************************************************************************** //* Paint //****************************************************************************** procedure TThemesSpeedButton.Paint; var coDetails: TThemedElementDetails; coThemeStyle: TThemedComboBox; begin if ( ThemeServices.ThemesEnabled ) and not (csDesigning in ComponentState) then begin if Enabled then begin if (Down) or (FState = bsDown) then begin coThemeStyle := tcDropDownButtonPressed; end else begin if MouseInControl then coThemeStyle := tcDropDownButtonHot else coThemeStyle := tcDropDownButtonNormal; end; end else begin coThemeStyle := tcDropDownButtonDisabled; end; coDetails := ThemeServices.GetElementDetails(coThemeStyle); ThemeServices.DrawElement(Canvas.Handle, coDetails, ClientRect); end else begin inherited; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:08 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 by Thomas Breitkreuz