AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Darstellungsfehler von TButton & anderen Controls mit FMX

Darstellungsfehler von TButton & anderen Controls mit FMX

Ein Thema von Andreas L. · begonnen am 1. Jan 2020 · letzter Beitrag vom 2. Jan 2020
Antwort Antwort
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Sulzbach-Rosenberg
273 Beiträge
 
Delphi 10.3 Rio
 
#1

Darstellungsfehler von TButton & anderen Controls mit FMX

  Alt 1. Jan 2020, 16:58
Hallo,

wenn ich eine leere Firemonkey Anwendung erstelle und normale Buttons (TButton oder TSpeedButton) auf dem Form oder einem Layer wie TPanel, etc. platziere wird während der Laufzeit ein Strich links neben dem Button angezeigt wenn man mit der Maus über den Button fährt und ihn wieder verlässt. Selbigen Darstellungsfehler habe ich auch schon bei einem TListBoxItem bemerkt. Auch bei OnClick tritt der Fehler manchmal auf. Selten werden nach MouseOver und anschließenden Klick nach erneutem verlassen und überfahren des selben Buttons sogar 2 Striche nebeneinander dargestellt.

Ich habe die Buttons sowohl ohne Style, mit "toolbutton"-Style, anderen Delphi-eigene-Styles sowie selbst erstellten Styles getestet. Das macht aber keinen Unterschied. Das Problem tritt auch auf wenn man seine Styles nicht für die Plattform also Windows definiert sondern sie als "default"-Style speichert. Ebenso tritt der Fehler auf wenn ControlStyle auf Plattform gestellt wird.

Seltsamerweise tritt dieser Fehler nicht bei allen Buttons auf dem Form auf. Es sind fast immer nur die Buttons auf der linken Seite der Form betroffen. Manchmal die in der Mitte. Rechts werden die Buttons immer korrekt angezeigt.

Was auch komisch ist, ist das nach einem MouseOver über z. B. eine ComboBox die Buttons plötzlich wieder richtig dargestellt werden. Bis zum nächsten Button Hover.

Ich habe ein Demo-Programm inkl. Source und Screenshots dem Thread angehängt. In dieser Demo-Anwendung tritt der Fehler immer auf. Außerdem sind darin mehrere Versuche enthalten den Fehler mit Code zu beheben.

Tritt das Phänomen auch bei euch auf? Weiß jemand abhilfe?

Ich verwende Delphi 10.3.2 Community Edition auf Windows 7. Auf anderen Systemen habe ich das Demo-Programm noch nicht ausprobiert. Kann es mit meiner Grafikkarte oder den Treibern zu tun haben? Ich habe aber die neuesten Treiber installiert...

Form nach dem das Programm frisch gestartet wurde:
buttons-nach-programm-start.png

Form nach Mouse-Over über diverse Buttons:
buttons-nach-mouseover.png

Ich hoffe es gibt eine Lösung. Denn ein Programm das nicht mal einen simplen Button oder eine Liste richtig darstellen kann, kann ich weder zahlenden Kunden noch Usern meiner Free- und OpenSource-Projekte zumuten.

Schöne Grüße,
Andreas Lauß
Angehängte Dateien
Dateityp: zip ButtonAfterHoverProblem.zip (3,47 MB, 3x aufgerufen)
Andreas Lauß
CookieCrumbler Blog

Geändert von Andreas L. ( 1. Jan 2020 um 17:48 Uhr)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.529 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Darstellungsfehler von TButton & anderen Controls mit FMX

  Alt 1. Jan 2020, 23:16
Wilkommen zur "Shitshow" FMX. Das ganze Teil ist nett, aber bei weitem noch nicht zu Ende gedacht. Dieser Effekt ist einer von vielen, an denen man merkt, dass Emba scheinbar nicht zu viele Ressourcen in das Testen der Basisfunktionalitäten seiner neuen Aushängeschilder investieren mag.

Mangels Delphi hier zuhause kann ich das Projekt nicht selbst testen. Daher die Frage: Ist irgend etwas in dem Form skaliert, oder ist dein Desktop auf etwas anderes als 100% eingestellt? Das sind die üblichen Situationen, zu denen ich diese Ränder entdeckt habe. Ich vermute, dass die Entwickler hier darüber gestolpert sind, dass eine Pixel-Mitte in 3D APIs immer bei X,5 und nicht bei X liegt, und daher ihre Quads mit Pech, an manchen stellen, nicht zu einem bündigen Rendring führen. Ist aber nur eine Vermutung. Ich habe die eigentlichen Stellen an denen dies gemacht wird in dem Dickicht an Quellen noch nicht gefunden, bzw. nicht Zeit und Muße gehabt dem weiter auf den Grund zu gehen.

Echt schade, weil die Grundidee eröffnet einem scheinbar als VCL-gewöhntem Entwickler ein ganz neues Universum an modernen und praktischen Möglichkeiten - aber leider scheitert man dann doch an der unflexibilität und/oder Details der Umsetzung der mitgelieferten Standardkompnenten, und gerade das Style-Management ist meiner Erfahrung nach mehr Fluch als Segen. Einfach maximal unhandlich und unintuitiv, und will man mal mehr als in den Tutorial-Videos gezeigt umsetzen, betritt man absolutes Niemansland.

Ich war dermaßen enthusiastisch ggü. FMX, dass es mich dazu verleitet hat unser nach wie vor produktiv eingesetztes D2007 mit 10.2.3 zu ersetzen, aber die Ernüchterung folgte leider prompt. Wenn man schon ein komplett eigenes TEdit entwickeln muss, nur weil man aus dem Code heraus die Hintergrundfarbe ändern können will, ohne für jede Farbe ein Bitmap vorzuhalten und mit den esoterischen Style-Manager Funktionen zu beten, wird der Umstieg zur Geduldsprobe. Ich will es nach wie vor, aber produktiv haben wir FMX auch nach einem Jahr noch nicht im Einsatz. Das ganze Gestricke bezahlt einem keiner, also ist das Hobby und dauert eben.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Sulzbach-Rosenberg
273 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Darstellungsfehler von TButton & anderen Controls mit FMX

  Alt 2. Jan 2020, 10:25
Daher die Frage: Ist irgend etwas in dem Form skaliert, oder ist dein Desktop auf etwas anderes als 100% eingestellt?
Nein, das Form ist nicht skaliert. Alle Properties der Form sind Standard. Desktop hat ebenfalls Standard-Einstellungen.

Echt schade, weil die Grundidee eröffnet einem scheinbar als VCL-gewöhntem Entwickler ein ganz neues Universum an modernen und praktischen Möglichkeiten - aber leider scheitert man dann doch an der unflexibilität und/oder Details der Umsetzung der mitgelieferten Standardkompnenten, und gerade das Style-Management ist meiner Erfahrung nach mehr Fluch als Segen. Einfach maximal unhandlich und unintuitiv, und will man mal mehr als in den Tutorial-Videos gezeigt umsetzen, betritt man absolutes Niemansland.

Ich war dermaßen enthusiastisch ggü. FMX, dass es mich dazu verleitet hat unser nach wie vor produktiv eingesetztes D2007 mit 10.2.3 zu ersetzen, aber die Ernüchterung folgte leider prompt. Wenn man schon ein komplett eigenes TEdit entwickeln muss, nur weil man aus dem Code heraus die Hintergrundfarbe ändern können will, ohne für jede Farbe ein Bitmap vorzuhalten und mit den esoterischen Style-Manager Funktionen zu beten, wird der Umstieg zur Geduldsprobe. Ich will es nach wie vor, aber produktiv haben wir FMX auch nach einem Jahr noch nicht im Einsatz. Das ganze Gestricke bezahlt einem keiner, also ist das Hobby und dauert eben.
Die Möglichkeiten von Firemonkey sind nahezu unbegrenzt. Man kann damit richtig tolle GUIs designen. Auch die Effekte, die 3D-Objekte, die Tatsache das man alle Komponenten verschachteln kann, etc. macht Firemonkey zu einem mächtigen Werkzeug. Leider hat es wie du auch sagst viele Probleme. Viele davon betreffen Standard-Funktionen. Öfter mal stürzt die IDE ab wenn man einen neuen Style erstellen möchte, Styles werden plötzlich nicht mehr verwendet, Änderungen an Styles werden nicht übernommen, für jedes Panel muss ein eigener Style definiert werden nur damit das eine Panel einen Rahmen hat und das andere nicht, und so weiter. Ich möchte und werden Firemonkey für die meisten neue Projekte einsetzen. Die VCL ist einfach nicht skalierbar genug für moderne GUIs. Aber der Darstellungsfehler des Buttons muss unbedingt behoben werden!
Andreas Lauß
CookieCrumbler Blog
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.092 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Darstellungsfehler von TButton & anderen Controls mit FMX

  Alt 2. Jan 2020, 11:05
Bei mir in 10.0 Seattle gibt es den optischen Fehler (noch) nicht. Ob es jetzt an Delphi oder daran liegt dass mein Betriebssystem keine zehn Jahre alt ist weiß ich nicht.

Dafür verhält sich der Fokus-Rahmen um die Buttons nicht korrekt (z.B. verschwindet er wenn das Fenster nicht den Fokus hat) und das Fenster lässt sich merkwürdigerweise nicht mit AeroSnap verschieben (also z.B. in die Bildschirmecken schieben und es rastet dort ein).

Und ja, ich habe FMX auch mehrere Chancen gegeben. In der Theorie sah es echt cool aus, aber so Fehler wie du hatte ich ständig. Mein letzter ernsthafter Versuch war aber zugegebenermaßen 2016. Ob es sich seitdem merklich gebessert hat weiß ich nicht.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf