Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Scrollbar theme
elundril - Sa 30.10.10 01:58
Titel: Scrollbar theme
Hallo,
ich hab mir eine eigene Komponente gebastelt, abgeleitet von TCustomControl. Jetzt würd ich der gerne Scrollbars hinzufügen. Da bin ich auf folgendes gestoßen:
Delphi-Quelltext
1: 2:
| ShowScrollBar(Handle, SB_HORZ, true); ShowScrollBar(Handle, SB_VERT, true); |
Doch das liefert mir unter Windows7 + XPMan-Komponente auf dem Formular nur diese hässlichen Scrollbars aus Windows NT und früher. Ich hätt jedoch gerne die schönen mit themes. Gibts da ne möglichkeit das einzuschalten? Denn immerhin werden die Scrollbars ja eigentlich von der Windows-API gezeichnet.
lg elundril
elundril - Mi 17.11.10 01:41
Ne, das mit EnableScrollbar hat auch nicht wirklich funktioniert. Oder meintest du etwas was ich nicht bemerkt habe in dem Artikel?
lg elundril
jaenicke - Mi 17.11.10 03:45
elundril hat folgendes geschrieben : |
| Ne, das mit EnableScrollbar hat auch nicht wirklich funktioniert. Oder meintest du etwas was ich nicht bemerkt habe in dem Artikel? |
Also bei mir funktioniert das so. :nixweiss:
Siehe Anhang, es wird sogar ohne Manifest der Style benutzt (mit gehts natürlich auch).
Hast du in den CreateParams exakt die dort genannten drin oder auch andere?
Quelltext meines kurzen Tests eben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| type TMyControl = class(TCustomControl) protected procedure CreateParams(var Params: TCreateParams); override; end;
TForm267 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); end;
procedure TForm267.FormCreate(Sender: TObject); var NewControl: TMyControl; begin NewControl := TMyControl.Create(Self); NewControl.Parent := Self; NewControl.SetBounds(10, 10, 200, 200); EnableScrollBar(NewControl.Handle, SB_HORZ, ESB_ENABLE_BOTH); end;
procedure TMyControl.CreateParams(var Params: TCreateParams); begin inherited; Params.Style := Params.Style or WS_HSCROLL or WS_VSCROLL; end; |
elundril - Do 18.11.10 02:42
Einmal Copy&Paste angewendet und es funktioniert sogar. Wobei das seltsam ist, da ich eigentlich hatte ich komplett das gleiche da stehen hatte. Naja, dank dir vielmals!
lg elundril
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!