![]() |
VCL-Styles und ImageList
So...jetzt hab ich auch mal wieder eine Frage.
Ich bin grad drüber ein wenig mit dem Möglichkeiten von 10.2 zu spielen (seit TD2006 is ja einiges passiert :)) Dabei bin ich auf folgendes Problem gestoßen: In meinem Programm hab ich 2 Imagelists, eine für Icons in weiß eine für die gleichen in schwarz. Je nach gewähltem Style (wird Aufgrund der Textfarbe für Buttons (Normalzustand) entschieden), bekommen die Controls (z.B. Toolbar) die entsprechende Imageliste, so das die Icons gut zu erkennen sind. Soweit tut das ganze auch. Aber wenn ich jetzt einen Style hab, der z.B. bei pressed oder hover die Textfarbe wechselt, machen die Icons das logischerweiße nicht mit. Gibts dafür eine einfache Lösung ? (und ich meine nicht das ganze über onEnter/onExit zu handhaben :) ) oder generell ein anderes Vorgehen für den Icon wechsel ? |
AW: VCL-Styles und ImageList
*push*
|
AW: VCL-Styles und ImageList
Normale TButtons haben doch eine Menge verschiedene Image-Indizes:
Delphi-Quellcode:
,
ImageIndex
Delphi-Quellcode:
,
DisabledImageIndex
Delphi-Quellcode:
, ...
HotImageIndex
Kommst du damit nicht weiter? |
AW: VCL-Styles und ImageList
Zitat:
Aber unter umständen sind diese von dir erwarteten zustände gar nicht implementiert. ![]() gruss |
AW: VCL-Styles und ImageList
Nur bei wenigen, wie z.B. bei den Speedbuttons.
CategoryButtons oder auch der einfache BitButton haben hier keine entsprechenden Eigenschaften, da müsste das ganze wirklich beim entsprechenden Event gemacht werden, soweit ich mich damit befasst habe. hmmmm....scheint wirklich so, als ob man das nur manuell lösen kann. @EWeiss Naja...wenn der Hintegrund beim Hover wechselt, muss das Event ja irgendwo abgefangen werden, wird halt nur nicht nach außen gelegt :) |
AW: VCL-Styles und ImageList
Kannst du dein Problem einfach mal mit zwei, drei Screenshots bebildern?
So wie es jetzt ist und so wie du es dir vorstellst? |
AW: VCL-Styles und ImageList
Zitat:
Letztendlich dürften die Grund Eigenschaften der einzelnen Controls nicht verändert worden sein. Sind diese nicht vorhanden ja dann musst du wohl Manuell nachhelfen. gruss |
AW: VCL-Styles und ImageList
Liste der Anhänge anzeigen (Anzahl: 1)
Das is das Testprogramm im normalen Zustand.
Fahr ich jetzt mit dem Cursor über den Button (linke Seite), wechselt der Hintergrund auf Türkies und der Font wird Schwarz. Logischerweise sollte das Icon in dem Fall auch Schwarz werden. Hier in dem demo ist jetzt mal nur der CategorieButton drin, aber es gibt einige (Standard)-Komponenten die sich so verhalten (TBitBtn z.B.) |
AW: VCL-Styles und ImageList
Hast du eine Hover Eigenschaft bei dem gleichen Control OHNE Styles?
Nein? Dann ist es so wie ich sagte. Die Eigenschaften der Controls werden nicht verändert mit den Styles. Dir bleibt dann nichts anderes übrig als das selbst zu implementieren. Wenn Ja. Dann liegt ein Fehler in den Styles vor der die Eigenschaft\Event Hover des verwendeten Controls einfach nicht weiterleitet. gruss |
AW: VCL-Styles und ImageList
Die Styles verändern die zur Verfügung stehenden Eigenschaften/Events nicht. Sie werden nur vom Control verwendet, wenn es sich zeichnet. :)
Beim TBitBtn wirds am deutlichsten, da er selbst noch nicht mal eine Image-List hat sondern nur eine Glyph-Eigenschaft. Über eine Action kannst du aber eine Image aus einer Imagelist zuweisen. Der Hintergrund ändert sich je nach eingestelltem Style und auch die Hintergrundfarbe wird (auch wieder je nach Style) beim Hover z.B. geändert. |
AW: VCL-Styles und ImageList
Wenn du mal im Bitmap Style Designer schaust, wirst du feststellen, dass einige Elemente unter "Objects" im Inspector Eigenschaften wie "Bitmap" und "BitmapHot" haben.
Die "BitmapHot"-Eigenschaft ist das was du suchst. Dafür muss natürlich im Style.png auch ein entsprechendes Bild hinterlegt sein. Wenn es darum geht, selbst definierte Bilder aus Imagelists dynamisch auszutauschen, wirst du um ein entsprechendes manuelles Reagieren nicht drum herumkommen. |
AW: VCL-Styles und ImageList
Zitat:
Wenn das Hover existiert dann weis ich auch nicht weiter. Müsste dann nur noch raten und das hilft dir auch nicht weiter. Sorry kann da nicht weiter helfen. gruss |
AW: VCL-Styles und ImageList
Genau das hatte ich befürchtet. Ich hatte gehofft, das jemand vielleicht einen einfacheren Weg kennt. :(
|
AW: VCL-Styles und ImageList
Was hälste denn hiervon?
![]() Der einzige Nachteil ist, dass du alle Bilder (normal und "hoovert") in einer Imagelist pflegen musst. |
AW: VCL-Styles und ImageList
Bei einer TToolBar gibt es separate Properties für DisabledImages, HotImages und Images. Was mir da auch manchmal fehlt ist ein DownImages.
Bei den TCategoryButtons gibt es sowas leider nicht. Dort würde sich eventuell das OnBeforeDrawButton oder OnDrawIcon anbieten. |
AW: VCL-Styles und ImageList
Jap..wie weiter oben schon gesagt, gibts da wohl keinen "sauberen und einheitlichen" Weg sowas zu machen. Schon allein, weil ein Control das "*button*" heißt nicht unbedingt von einem Button abgeleitet sein muß.
Alternative wäre etwas über den Styleservice zu basteln, so das man ggf. unabhängig vom Control sowas regeln kann..... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:13 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