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/)
-   -   VCL Styles zeichnen teilweise unsauber (https://www.delphipraxis.net/206269-vcl-styles-zeichnen-teilweise-unsauber.html)

BigAl 5. Dez 2020 11:09

VCL Styles zeichnen teilweise unsauber
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,

ich habe einer meiner Applikationen ein dunkles VCL-Style verpasst. Das funktioniert soweit auch alles. Leider werden die Ecken von Panels teilweise unsauber gezeichnet und es gibt unsaubere Kanten.

Hier mal ein Beispiel was ich meine:

Anhang 53374
(der weiße Punkt in der Mitte ist das Problem)

Schalte ich meine Applikation in Vollbild ist alles gut. Das mache ich momentan so:

Delphi-Quellcode:
    BorderStyle := bsNone;

    // full-screen only possible if form is maximized
    if WindowState = wsMaximized then
    begin
      // detect the current monitor
      Monitor := Screen.MonitorFromWindow(Self.Handle);
      BoundsRect := Monitor.BoundsRect;
    end;
Wenn ich wieder zurück auf die normale Ansicht schalte bleibt auch alles gut. Die weißen Punkte sind verschwunden.

Nun zu meiner Frage: Gibt es eine Möglichkeit das VCL-Style initial "richtig" zu zeichnen. Ist schlecht zu erklären und eine Dokumentation zu VCL-Styles ist praktisch nicht vorhanden (oder ich habe sie noch nicht gefunden). Viele Themen werden bei Emba gar nicht beschrieben oder mit dem altbekannten Satz "...verfügen derzeit über keine Informationen..." oder so ähnlich Kommentiert...

Bin für jeden Tip, Hinweis, Idee etc. dankbar. Die App macht einfach einen unsauberen Eindruck wenn da nach dem Start überall solche Artefakte erscheinen.

Alex

himitsu 5. Dez 2020 11:30

AW: VCL Styles zeichnen teilweise unsauber
 
Von Styles und auch dem Selbstmalen im FMX war ich bisher immer nur enttäuscht. (überall unsaubere Probleme)

Klar, maximieren und zurück ist blöd, wenn der Nutzer das dann kurz sehen muß,
aber versuchmal vor dem Anzeigen (Show bzw. Vibisle=True) die Form zu Zeichnen.
-> vielleicht
Delphi-Quellcode:
Self.PaintTo(EinBitmap.Canvas)
im OnCreate


PS: Self.Monitor = Screen.MonitorFromWindow(Self.Handle) :zwinker:

venice2 5. Dez 2020 11:48

AW: VCL Styles zeichnen teilweise unsauber
 
Nur Interesse halber nachgefragt
warum self.* ist man eigentlich nicht schon der Eigentümer über "Monitor" wenn man es innerhalb der Classe TForm aufruft?

himitsu 5. Dez 2020 12:04

AW: VCL Styles zeichnen teilweise unsauber
 
Vielleicht als "Dokumentation", damit man sieht, dass keine globale Variable Monitor gemeint ist?
Oder sicherheitshalber, falls mal jemand auf die saudumme Idee kommen würde und ein WITH drumrum baut. :lol:
Aber ja, es geht auch ohne.

PS: TMonitor in System.pas und anderes TMonitor in Vcl.Forms.pas
Delphi-Referenz durchsuchenSystem.TMonitor ... man sollte nicht jeden Scheiß bei C# abgucken und ohne Nachzudenken ins Delphi einbauen. :wall:

venice2 5. Dez 2020 12:28

AW: VCL Styles zeichnen teilweise unsauber
 
Zitat:

Zitat von himitsu (Beitrag 1478555)
Vielleicht als "Dokumentation", damit man sieht, dass keine globale Variable Monitor gemeint ist?
Oder sicherheitshalber, falls mal jemand auf die saudumme Idee kommen würde und ein WITH drumrum baut. :lol:
Aber ja, es geht auch ohne.

PS: TMonitor in System.pas und anderes TMonitor in Vcl.Forms.pas
Delphi-Referenz durchsuchenSystem.TMonitor ... man sollte nicht jeden Scheiß bei C# abgucken und ohne Nachzudenken ins Delphi einbauen. :wall:

Versteh weil sonst unter Umständen die falsche Funktion aufgerufen wird. :stupid:

BigAl 5. Dez 2020 16:03

AW: VCL Styles zeichnen teilweise unsauber
 
Hi,

danke für die Antworten / Infos. Das mit PaintTo bringt nicht wirklich was. Irgendwie habe ich das Gefühl, es hat mit den Berechnungen der Koordinaten zu tun (Round...). Manche Panels ins korrekt, manche werden an den Rändern nicht sauber gezeichnet...

Werde mal weiter versuchen. Wenn ich was habe poste ich es. Evtl. interessiert es ja jemand :-).

Ach ja, soviel weiß ich schon: Wenn ich das Hauptfenster ohne Rahmen start (BorderStyle := bsNone), dann ist alles ok...

Alex

TurboMagic 5. Dez 2020 19:30

AW: VCL Styles zeichnen teilweise unsauber
 
Betrifft das alle Styles oder nur einen bestimmten?

BigAl 5. Dez 2020 19:35

AW: VCL Styles zeichnen teilweise unsauber
 
Ist bei allen Styles so...

Fällt halt nur bei den dunklen Styles wirklich auf, da es sich um helle Pixel handelt...


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 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