Ich arbeite an einer großen Delphi-Anwendung mit einer Tonne Legacy-Code, der in xe2 konvertiert wird. Ich implementiere die vcl-Stile und zum größten Teil gibt es kein Problem.Delphi XE2 VCL-Stile, die TabSheets nicht korrekt zeichnen
In einigen Formularen, speziell wo ich ein tpanel habe, mit einer Seitensteuerung und Registerkarten auf ihnen, werden die Tabsheets manchmal nicht richtig gezeichnet. Sie zeigen an, welches Bild sich zuvor in dem Bereich befand, in dem sich die Registerkarte befindet. Wenn das Formular zum ersten Mal angezeigt wird, wird es der Hintergrundbildschirm auf meinem Computer sein, aber wenn ich Tabs ändere, scheint sich die Registerkarte Hintergründe/Labels/Komponenten zu überlappen.
Dies tritt nur auf, wenn ich die vcl-Stile verwende, wenn ich den Stil nicht anwende, scheint alles normal anzuzeigen.
Es tritt nur auf einigen Registerkarten auf. Ich habe versucht, eine bestimmte Eigenschaft oder Methodenaufruf (oder deren Fehlen) zu isolieren, die dieses Problem verursachen können, aber ich habe wirklich Schwierigkeiten, vor allem angesichts der reinen Größe der Methoden in diesem Code (in einigen Formen, die Methode ausgelöst wird auf der Registerkarte ändert sich über 1000 Zeilen Code).
Ich ging, um einige Screenshots zu machen, um dies zu demonstrieren, aber die Formen auf den Screenshots sind alle korrekt gerendert. Dies deutet darauf hin, dass es eine Art Trennung zwischen dem, was ich sehe, und dem, was tatsächlich "da" ist.
Jeder Rat würde am meisten geschätzt werden.
Was der Inhalt eines Screenshot unterscheidet von dem, was Sie auf dem Bildschirm sehen tatsächlich –
@MrLister Yep? , der mo s bizarre Sache, die ich gesehen habe. – Elissa
Gibt es eine benutzerdefinierte Zeichnung im Code (Suche nach 'OnDraw')? Gibt es Probleme mit DoubleBuffering oder anderen Eigenschaften, die den Aufbau des Bildschirms beeinflussen können? –