![]() |
Vista-Focusbalken in eigener Anwendung/Controls
Liste der Anhänge anzeigen (Anzahl: 1)
Weiß jemand wie man den neuen Vista-Focusbalken hinbekommt.
Mein bisheriger Erfolg mit folgenden Code (Noch in Entwicklung) ist als Dateianhang sichtbar.
Delphi-Quellcode:
procedure DrawVistaThemedFocusBar(Grid: TListView; Surface: TCanvas; R: TRect); overload;
var pid, sid: Integer; Bitmap: TBitmap; CheckRect: TRect; i: Integer; CheckTheme: HTheme; begin Bitmap := TBitmap.Create; try Bitmap.Width := R.Right - R.Left; Bitmap.Height := R.Bottom - R.Top; pid := LVP_LISTITEM; if Grid.Focused then sid := LIS_SELECTED else sid := LIS_NORMAL; CheckRect := Rect(0, 0, Bitmap.Width, Bitmap.Height); CheckTheme := OpenThemeData(Grid.Handle, 'button'); try DrawThemeBackground(CheckTheme, Bitmap.Canvas.Handle, pid, sid, CheckRect, nil); finally CloseThemeData(CheckTheme); end; bitblt(Surface.Handle, R.Left, R.Top, R.Right - R.Left, R.Bottom - R.Top, Bitmap.Canvas.Handle, 0, 0, SRCCOPY); finally Bitmap.Free; end; end; Der Austausch von 'button' in der Zeile:
Delphi-Quellcode:
mit 'listview' ist noch weniger erfolgreich.
CheckTheme := OpenThemeData(Grid.Handle, 'button');
|
Re: Vista-Focusbalken in eigener Anwendung/Controls
Hi,
mal als Nachtrag zu Bernhards Thread: mit
Delphi-Quellcode:
geht es soweit, der Ansatz war richtig, jedoch nicht den Button nehmen :wink:
DrawThemeBackground(ThemeServices.Theme[teMenu], TargetCanvas.Handle, MENU_POPUPITEM, MPI_HOT, ItemRect, nil)
Problem: Das teMenu kennt nur Hot/Normal/Disabled, aber nicht Selected/SelectedNotFocused wie im Explorer Listview unter Vista. Das ganze Layout vom Selected/Focused-Style im Explorer ist natürlich nicht published im SDK... Der Trick mit dem 'explorer' als Handle geht auch nur bedingt, soweit das Control von TTreeView ableitet - BDS nutz hier intern ja 'SysTreeView32'. Gruß Assertor :dp: |
Re: Vista-Focusbalken in eigener Anwendung/Controls
Danke. Mit deinem Tipp hab ich es hin bekommmen :thumb:
|
Re: Vista-Focusbalken in eigener Anwendung/Controls
Hi Bernhard,
Zitat:
Aber eine Rückfrage: Hast Du auch nur den "einen" State hinbekommen? Ich suche für ein Grid noch eine Variante, die die States SelectedNotFocused, Hot, SelectedHot etc. verarbeitet - also den Vista Explorer-Stil vollständig nachahmt. Gruß Assertor |
Re: Vista-Focusbalken in eigener Anwendung/Controls
Was ist ein Focusbalken?
|
Re: Vista-Focusbalken in eigener Anwendung/Controls
Zitat:
Richtiger wäre sicherlich "Microsoft Windows Vista Explorer Treeview Style Gradient Selection and Focused Bar" - oder einfach den Screenshot aus dem ersten Post ansehen. Gruß Assertor |
Re: Vista-Focusbalken in eigener Anwendung/Controls
Zitat:
|
Re: Vista-Focusbalken in eigener Anwendung/Controls
Hallo Berhard,
mich würde das Thema auch interessieren, deshalb die Frage, wenn du es hinbekommen hast, ob du dies hier veröffentlichen wirst? Wär super! Viele Grüsse s! |
Re: Vista-Focusbalken in eigener Anwendung/Controls
Zitat:
Zitat:
Zitat:
Gruß Assertor |
Re: Vista-Focusbalken in eigener Anwendung/Controls
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 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-2025 by Thomas Breitkreuz