AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VCL Button Image während modalem Dialog weg

Ein Thema von TurboMagic · begonnen am 25. Mai 2022 · letzter Beitrag vom 6. Jun 2022
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#1

VCL Button Image während modalem Dialog weg

  Alt 25. Mai 2022, 22:46
Hallo,

in einer D11.1 VCL Anwendung gibt es einen Toolbar mit Toolbuttons drauf.
Die Icons dazu kommen von einer VirtualImageList. Bei einem Button wird jetzt
immer das Icon ausgeblendet, wenn ich den anklicke.

Im On Click handler wird ein modaler Dialog erzeugt und angezeigt.
Schließe ich den Dialog, ist das Icon wieder da.

En Repaont auf dem Button selber hat nichts gebracht.
Verschiebe ich den modalen Dialog oder ändere seine Größe wird das Icon neu gezeichnet.
Wenn ich statt dem Stl Charcoral dark slate den Standard Windows Stil benutze passiert
das nicht. Allerdings passiert dann was ganz anderes:
In dem modalen Dialog gibt es ein Bottom aligned TPanel auf dem die Buttons
(OK, Abbrechen usw.) drauf sind. Die Farbe des Panels flimmert bei Nutzung des Windows
Stils dann permanent grün und rot, das sind die beiden Farben die in einem Grid
oberhalb dieses Panels verwendet werden. Aber wie die das Panel plötzlich flimmern
lassen?

Irgendwer eine Idee woher diese Probleme kommen?

Grüße

TurboMagic
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#2

AW: VCL Button Image während modalem Dialog weg

  Alt 25. Mai 2022, 23:02
Ach ja: bei anderen Stilen flimmter das auch nicht und dem Panel wird im Code auch nirgends eine Farbe zugewiesen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#3

AW: VCL Button Image während modalem Dialog weg

  Alt 26. Mai 2022, 00:15
Früher hatten Buttons ein Glyph (Icon/Image) und das konnte wie Mehrere behandelt werden. (mehrere Teilbilder in dem einem Bild, wie z.B. Normal/Pressed/Disabled)
Da mußte man aufpassen, was dort als "Anzahl" in einem Property stand.
(irgendwie fand ich das angenehmer, ein mehrteiliges Image, anstatt bis zu 3 ImageLists verwalten zu müssen ... mit den ImageIndex ist das doch total grauenhaft, aber ich würde eh empfehlen lieber "ImageNamen" zu verwenden)

Ich weiß aber noch, dass, wenn die Icons mehr als 16 Farben hatten, und man nicht selber die anderen Icons/Images lieferte, dass z.B. das generieren des DisableImages nicht funktionierte und das Bild dann leer war, wenn Delphi Windows versuchte dieses Icon aus dem ersten Icon abzuleiten.





Heute ist das bissl anders, aber die ToolBar/ToolButtons haben immernoch 3 StateImages
Images, HotImages? und DisableImages
und außerdem noch
Zitat:
Wenn die Eigenschaften DisabledImages und HotImages der Symbolleiste gesetzt sind, werden in den Zuständen "Schaltfläche nicht gedrückt" und "Mauszeiger über der Schaltfläche" unterschiedliche Bilder angezeigt.
Ist da irgendwo was angegeben?


Grundsätzlich: die ToolButton sind ein TGraphicControl, also Delphi malt den Knopf selber.
Und bei Labels, welche auch TGraphicControl sind, hab ich in den letzten Jahrzehnten öfters mal erlebt, dass die Controls ab und an mal verwanden, ohne erkennbaren Grund.

Da konnte man dann aber notfalls auf TStaticText umstellen, welches das "echte" Label von Windows ist.
Hier wäre dann noch die Wahl, auf Ribbons zu wechseln ... die sind eh viel cooler.





Zitat:
auch nirgends eine Farbe zugewiesen
Selbst wenn es die gleiche Farbe ist, was sagt ParentColor?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (26. Mai 2022 um 00:21 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#4

AW: VCL Button Image während modalem Dialog weg

  Alt 26. Mai 2022, 10:28
Hallo,

danke für die Idee mit dem ParentBackground.
Das hab' ich mal rausgenommen und siehe da: jetzt geht es. Obwohl beide ClBtnFace hatten.

Jetzt hab' ich aber ein anderes Problem:
Der Bildschirm enthält einen Button über den man einen neuen Dialog zur Erfassung von Daten
aufrufen kann. Wird dieser mittels OK geschlossen, werden die Daten in die DB geschrieben und
die Anzeige des Parent Dialogs durch neu Ausführen des Selects aktualisiert.

Nur ändert irgendwer (nicht ich im Code!) den Mauscursor auf eine Sanduhr mit Text SQL darunter.
Woher kommt das und wie stelle ich es wieder ab?

Ich habe schon versucht den Cursor des Parent Fensters vor Aufruf dieser Erfassungsmaske in einer
lokalen variable zu sichern und im finaly block des AUfrufes dieses Erfassungsbildschirmes wieder
zuzuweisen, hat aber nichts gebracht.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#5

AW: VCL Button Image während modalem Dialog weg

  Alt 26. Mai 2022, 11:46
Gelöst!
Wenn man beim DataSet das hier setzt:

FMyFDQuery.ResourceOptions.SilentMode := True;

ist die Sanduhr deaktiviert.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#6

AW: VCL Button Image während modalem Dialog weg

  Alt 27. Mai 2022, 12:25
Hallo,

ich glaube ehrlich gesagt nicht, dass das Button Imnage während Dialogaufruf weg Problem
an den Disabled Images oder so liegt, werde das aber nochmal prüfen.
Denn: wenn ich keinen Stil anwende (= Windows), dann bleibt das Icon da!

Grüße

TurboMagic
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#7

AW: VCL Button Image während modalem Dialog weg

  Alt 6. Jun 2022, 11:01
Hallo,

habe jetzt mal dem Toolbar auch für die Diaabled und HotImages die selbe VirtualImage List zugeordnet.
Hat leider nichts gebracht.

Nur: es gibt da auch andere Buttons die modale Dialoge aufrufen und bei deren Buttons passiert das nicht.
Ich hab' mal einen funktionierenden Button verlgichen und konnte keine relevanten Unterschiede feststellen
(klar, Name, ImageIndex und Hint sind anders aber sonst nix).

Noch jemand eine Idee?

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz