AGB  ·  Datenschutz  ·  Impressum  







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

VCL Styles zeichnen teilweise unsauber

Ein Thema von BigAl · begonnen am 5. Dez 2020 · letzter Beitrag vom 5. Dez 2020
Antwort Antwort
BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
 
Delphi 12 Athens
 
#1

VCL Styles zeichnen teilweise unsauber

  Alt 5. Dez 2020, 12:09
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:

Name:  2020-12-05 11_56_59-Window.png
Hits: 56
Größe:  837 Bytes
(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
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: VCL Styles zeichnen teilweise unsauber

  Alt 5. Dez 2020, 12:30
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 Self.PaintTo(EinBitmap.Canvas) im OnCreate


PS: Self.Monitor = Screen.MonitorFromWindow(Self.Handle)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 5. Dez 2020 um 12:33 Uhr)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#3

AW: VCL Styles zeichnen teilweise unsauber

  Alt 5. Dez 2020, 12:48
Nur Interesse halber nachgefragt
warum self.* ist man eigentlich nicht schon der Eigentümer über "Monitor" wenn man es innerhalb der Classe TForm aufruft?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: VCL Styles zeichnen teilweise unsauber

  Alt 5. Dez 2020, 13:04
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.
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 5. Dez 2020 um 13:09 Uhr)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#5

AW: VCL Styles zeichnen teilweise unsauber

  Alt 5. Dez 2020, 13:28
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.
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.
Versteh weil sonst unter Umständen die falsche Funktion aufgerufen wird.

Geändert von venice2 ( 5. Dez 2020 um 13:31 Uhr)
  Mit Zitat antworten Zitat
BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
 
Delphi 12 Athens
 
#6

AW: VCL Styles zeichnen teilweise unsauber

  Alt 5. Dez 2020, 17:03
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
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)

Geändert von BigAl ( 5. Dez 2020 um 17:06 Uhr)
  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 Styles zeichnen teilweise unsauber

  Alt 5. Dez 2020, 20:30
Betrifft das alle Styles oder nur einen bestimmten?
  Mit Zitat antworten Zitat
BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
 
Delphi 12 Athens
 
#8

AW: VCL Styles zeichnen teilweise unsauber

  Alt 5. Dez 2020, 20:35
Ist bei allen Styles so...

Fällt halt nur bei den dunklen Styles wirklich auf, da es sich um helle Pixel handelt...
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)

Geändert von BigAl ( 5. Dez 2020 um 20:45 Uhr)
  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 21: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