Mit der offiziellen Veröffentlichung von Windows 11 hat Embarcadero einige spezifische VCL-Stile zur Verfügung gestellt und ich biete einige Codierungshilfen speziell für die neue Version des Microsoft-Desktop-Betriebssystems an. Mit der Zeit werden noch mehr kommen.
Nach der Ankündigung Anfang des Jahres hat Microsoft in der vergangenen Woche Windows 11 nun offiziell freigegeben. Trotz einiger Probleme beim Ausführen des neuen Betriebssystems auf älteren Computern aufgrund neuer Hardwareanforderungen bietet die neue Version von Windows eine angenehmere Benutzererfahrung und Arbeitsumgebung, während ein sehr hohes Maß an Kompatibilität mit bestehenden Anwendungen, einschließlich derer, die mit Delphi und C . geschrieben wurden, beibehalten wird ++Baumeister. Wir erwarten, dass viele Endbenutzer in den kommenden Monaten auf Windows 11 umsteigen werden.
In diesem Blogbeitrag möchte ich mich nicht auf Windows 11 und seine erneuerte Benutzererfahrung konzentrieren, sondern vielmehr darauf, wie Sie Ihre VCL-Anwendungen weiter verbessern können, um sie im neuen Betriebssystem zu erstklassigen Bürgern zu machen. Im Allgemeinen gibt es viele Modernisierungstechniken, die Delphi und C++Builder anbieten, um sich besser an aktuelle Windows-Versionen anzupassen, von der Verwendung von VCL-Stilen bis hin zur Übernahme der vielen neuen VCL-Steuerelemente, die in den letzten Jahren eingeführt wurden (bis hin zur ControlList und die NumberBox-Steuerelemente in RAD Studio 10.4.2 und das überarbeitete RichEdit in RAD Studio 11 Alexandria).
Konzentrieren wir uns auf den Windows 11-spezifischen Support, der noch weiter geht als allgemeine Migrationsvorschläge und -ideen. Windows 11 wird mit den WebView2-Steuerelementen geliefert, daher ist dies ein guter Zeitpunkt, um TEdgeBrowser über die TWebBrowser-Komponente zu übernehmen. Außerdem konzentriert sich Microsoft weiterhin auf gepackte Apps und den Microsoft Store, zwei Funktionen, die Sie über die RAD Studio IDE-Unterstützung für das MSIX-Bereitstellungsformat erreichen können. Diese Funktionen sind in der aktuellen Version von RAD Studio 11 enthalten (und waren es sogar schon früher).
Table of Contents
Neue Windows 11 VCL-Stile
Was wir gestern veröffentlicht haben und jetzt in GetIt verfügbar sind, sind zwei neue VCL-Stile speziell für Windows 11 für den Hell- und Dunkelmodus. Geben Sie „Windows 11“ in die Suchleiste ein, um sie schnell zu finden:
Nachdem Sie die beiden Stile installiert haben, können Sie die Einstellungen eines VCL-Projekts öffnen, die Seite Aussehen aufrufen, die Stile zur Anwendung hinzufügen und (wenn Sie die Verwendung von VCL-Stilen zur Entwurfszeit aktiviert haben) in der Eigenschaft StyleName von . auswählen ein Formular, um sie zur Entwurfszeit in der Vorschau anzuzeigen, wie in der Abbildung unten. Beachten Sie unter anderem die dünnen Bildlaufleisten im modernen Stil im Listenfeld.
Wir haben einige weitere „offizielle“ Bilder der beiden folgenden Stile, auf denen Sie zusätzliche abgerundete Elemente und Farben sehen können, die den neuen Plattform-Standardeinstellungen entsprechen.
Windows 11 Abgerundete Ecken
Eines der sichtbarsten Elemente von Windows 11 ist die Verwendung von „abgerundeten UI-Elementen“, beginnend mit den abgerundeten Formecken. Wenn Sie eine brandneue VCL-Anwendung ohne spezielle Konfiguration oder Einstellung erstellen und unter Windows 11 ausführen, sollten standardmäßig abgerundete Ecken für Formulare angezeigt werden. Dies ist jedoch eine Funktion, bei der Sie die volle Kontrolle über einen bestimmten öffentlichen Windows-API-Aufruf DwmSetWindowAttribute haben :
[crayon-672a4c3db9a52008346663/]
Um die Verwendung dieser API zu vereinfachen (bereits von Ian Barker in einem ausführlichen Blogbeitrag mit dem Titel „ How To Control Windows 11 Rounded Corners In Your App “) beschrieben, habe ich eine Interposer- Hilfsklasse mit ähnlichem Code geschrieben, die auf GitHub verfügbar ist unter:
https://github.com/marcocantu/DelphiSessions/blob/master/Win11_Delphi11/Win11Round/Win11Forms.pas
Sie können den Schnittstellenbereich des Geräts hier sehen:
Fügen Sie diese Unit einfach in die uses-Anweisung des Interface-Abschnitts eines Formulars nach der Unit Vcl.Forms ein, und Ihr Formular hat eine neue Klasseneigenschaft, die die Standardrundung angibt, und eine neue Eigenschaft für die spezifische Formulareinstellung, damit Sie schreiben können :
[crayon-672a4c3db9a56858147499/]
Dieser Code funktioniert nur unter Windows 11, da Windows 10 oder frühere Versionen ihn ignorieren (aber keinen Fehler auslösen). Ich habe es in einer einfachen Demo (auch bei GitHub unter https://github.com/marcocantu/DelphiSessions/tree/master/Win11_Delphi11/Win11Round ) mit der folgenden Benutzeroberfläche verwendet:
Beachten Sie schließlich, dass VCL-Anwendungen, einschließlich derer, die die benutzerdefinierte VCL-Titelleiste verwenden, sofort einsatzbereite Unterstützung für Snap-Layouts bieten :
Ein kleines Problem und noch mehr
Wie ich bereits erwähnt habe, funktionieren VCL-Anwendungen im Allgemeinen gut unter Windows 11. Es gibt ein Problem mit der Farbgebung von Menüelementen mit zugehörigen Bildern, da die Plattform andere Standardfarben verwendet, die eine VCL-Anwendung nicht vollständig respektiert. Dies wurde unter QP https://quality.embarcadero.com/browse/RSP-35049 gemeldet . Der Quality Portal-Bericht enthält zwar eine Problemumgehung, wir planen jedoch, dieses Problem in Kürze für RAD Studio 11 zu beheben.
Wir planen in den kommenden Monaten und in der zukünftigen Version von RAD Studio 11.1 einige weitere Verbesserungen im Zusammenhang mit Windows 11 und Demos neuer Funktionen. Bleiben Sie dran.
Erstellen Sie Anwendungen für Windows 11 mit VCL
Es ist kein Geheimnis, dass Embarcadero Version 11 für die letzte Version von RAD Studio verwendet hat, um es mit Windows 11 zu verbinden. Bei all den Änderungen an den UI-Bibliotheken, die Microsoft-eigene Tools in den letzten Jahren erfahren haben, bin ich mir sicher, dass die Breite der API-Unterstützung und Plattformintegration, die von der VCL-Bibliothek in Delphi und C++Builder geboten wird, ist mit Microsoft Visual Studio oder anderen Tools von Drittanbietern beispiellos. Microsoft hat eindeutig darauf hingewiesen, dass die native Windows-Entwicklung der Schlüssel ist und bleibt (siehe Windows App SDK, auch bekannt als Project Reunion) und die Mainstream-Option bleibt, aber ihre Bibliotheken in diesem Bereich (wie MFC und WinForms) sind nicht mit VCL vergleichbar und hinken ihren hinterher eigene Plattformfunktionen.
Die VCL-Bibliothek mit ihrer Fähigkeit zur Zuordnung zu klassischen und modernen APIs (von Win-API über COM-basierte APIs bis zu WinRT) und ihrer Unterstützung für High-DPI-Monitore und moderne UI-Trends – alles ohne dass eine vollständige Umschreibung der Anwendung erforderlich ist – ist einzigartig im Windows-Desktop-Entwicklungsszenario und zeichnet sich eindeutig durch seine Leistungsfähigkeit aus. Für die Entwicklung von Windows 11 ist die Visual Component Library der richtige Weg.