Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Beiträge

Mehr VCL-Unterstützung für Windows 11

win11 vclapp

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).

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:

win11_stylesingetit-6776118

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.

win11_stylesindesigner-9416219

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.

windows11light-4816822

windows11dark-4357685

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 :

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:

win11_unitinterface-8974721

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 :

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:

win11_vclapp-4273036

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   :

win11_snap-6672888

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.


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Kommentieren

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

IN THE ARTICLES