Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi VCL-Styles und ImageList (https://www.delphipraxis.net/192355-vcl-styles-und-imagelist.html)

Ghostwalker 11. Apr 2017 15:38

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 ?

Ghostwalker 18. Apr 2017 11:07

AW: VCL-Styles und ImageList
 
*push*

Der schöne Günther 18. Apr 2017 11:10

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?

EWeiss 18. Apr 2017 11:13

AW: VCL-Styles und ImageList
 
Zitat:

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.
Ich verwende keine Styles da ich noch\immer mit D2010 arbeite.

Aber unter umständen sind diese von dir erwarteten zustände gar nicht implementiert.
Würde den Entwickler der Styles darauf hingehend mal ansprechen.

gruss

Ghostwalker 18. Apr 2017 11:22

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 :)

TiGü 18. Apr 2017 11:24

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?

EWeiss 18. Apr 2017 11:26

AW: VCL-Styles und ImageList
 
Zitat:

hmmmm....scheint wirklich so, als ob man das nur manuell lösen kann.
Eigentlich sind die Styles nichts anderes als ein Visueller Hack.
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

Ghostwalker 18. Apr 2017 11:35

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.)

EWeiss 18. Apr 2017 11:45

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

Ghostwalker 18. Apr 2017 12:01

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.

TiGü 18. Apr 2017 12:02

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.

EWeiss 18. Apr 2017 12:06

AW: VCL-Styles und ImageList
 
Zitat:

Die Styles verändern die zur Verfügung stehenden Eigenschaften/Events nicht. Sie werden nur vom Control verwendet, wenn es sich zeichnet.
Davon bin ich eigentlich ausgegangen deshalb meine Frage. ;)

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

Ghostwalker 18. Apr 2017 12:11

AW: VCL-Styles und ImageList
 
Genau das hatte ich befürchtet. Ich hatte gehofft, das jemand vielleicht einen einfacheren Weg kennt. :(

TiGü 18. Apr 2017 12:27

AW: VCL-Styles und ImageList
 
Was hälste denn hiervon?
http://docwiki.embarcadero.com/Libra...sHotImageIndex

Der einzige Nachteil ist, dass du alle Bilder (normal und "hoovert") in einer Imagelist pflegen musst.

Uwe Raabe 18. Apr 2017 12:31

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.

Ghostwalker 18. Apr 2017 14:05

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