![]() |
Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Hallo zusammen!
Ab Delphi 2005 kann man ja diese tollen .NET Anwendungen coden. :love: Ich dachte immer, da komme ich um C# nicht herum. Man kann auswählen, ob man eine Windows Forms-Anwendung oder eine VCL-Formularanwendung erstellen möchte. In der Delphi-Hilfe habe ich dazu nichts gefunden, aber vielleicht liegt es auch daran, da ich mich an diese noch nicht gewöhnt habe. Unterschiede sehe ich in der Bestückung der Komponenten. Windows-Formularanwendungen nutzen wohl keine VCL, weshalb die Komponenten eher spärlich ausfallen im Gegensatz zur VCL Formularanwendung. Die Komponenten für eine Windows-Form-Anwendung gefallen mir nicht sonderlich und handhaben sich ganz anders als die der VCL. Am liebsten würde ich weiterhin mit der VCL arbeiten. - Gibt es da Einschränkungen, was die Kompatibilität zu den Frameworks betrifft? - Gibt es andere Vor- / Nachteile? - Wieso gibt es diese 2 Optionen? Vielleicht ist es für einige von euch klar, aber mit .NET habe ich so gut wie noch gar nichts gemacht. ;) |
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Hallo,
Die VCL.NET solltest du wirklich maximal zu Übergangszwecken verwenden (z.B. bestehende Anwendungen portieren, ...). Sie greift über P/Invokes weiterhin auf die WinAPI zu. Das macht die Anwendung langsam und unportierbar. Möglicherweise hilft sie dir beim Einstieg in .NET aber du solltest so bald wie möglich auf WinForms umsteigen. Der Entwickler hat dazu einen interessanten Onlineartikel: ![]() grüße, daniel |
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Der Artikel ist genau das, was ich gesucht habe, danke.
Schade, dachte, ich könnte die VCL weiterverwenden, naja, dann muss ich mich eben langsam umstellen. ;) |
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Zitat:
Du kannst z.B. mit ![]() |
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Zitat:
Zitat:
|
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Zitat:
|
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Achso, danke. Und wieso würdest du nicht mit der VCL arbeiten? Greift sie wirklich auf die WinAPI zu?
|
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Ich muss da mal kurz einschreiten...
Mir würde es nie in den Sinn kommen auch nur irgendwas mit der VCL zu lösen, wenn ich auch nur den Hauch einer Chance hätte, es mit der FCL zu lösen. Mir wäre es dabei auch total Bohne ob Winforms übermorgen zusammen mit der VCL stirbt. Sterben eben beide... :P In der Zwischenzeit kann man aber mit WinForms und der FCL einfach hübscher, schneller und eleganter entwickeln. (zumindest IMHO ;) ) @Matze Wie du auf die Idee kommst, dass die VCL.Net mehr Klassen als WinForms enthält kapier' ich jetzt nicht wirklich... :gruebel: StiNo WinForms/FCL Komponenten gibt es wohl ein Vielfaches als StiNo Borland-VCL Komponenten. Wenn du was anderes suchst, dürften GotDotNet, CodeProject und msdn.microsoft.com ein paar mögliche Anlaufstellen sein. ;) |
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Zitat:
|
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Zitat:
Borland hat das alles auch oft genug gesagt. Deshalb empfiehlt es sich bei einem neuen Programm, dieses vielleicht als VCL.NET Application zu entwickeln. Sofern man Sachen braucht, die in .NET noch gar nicht verfügbar sind. Dann geht es mit FCL nämlich gar nicht. Zumindest ist das besser, als jetzt noch eine auf WinApi basierende zu bauen. Für bestehende Sachen ist es vielleicht auch besser, sie schnell auf VCL.NET zu portieren und in einem zweiten schnellen Schritt dann noch auf WinForms. Schnell heißt übrigens nur so und wird schon lange dauern. Folgende Faustformel gilt mindestens seit D7 : Finger weg von direkten WinApi Aufrufen ! Wer das nicht macht, der hat die meiste Arbeit am Hals, die keiner sieht und auch keiner freiwillig bezahlen wird. 8) |
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Zitat:
|
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Zitat:
Es kommt halt darauf an welche Rahmenbedingungen man hat. Meine Programme z.B. müssen auch von CD auf alten System laufen. Und da kann man .NET nicht vorrausetzen bzw. den Kunden nicht zwingen alle Möglichen Updates/Installer (IE min 5.01, COM-Updates, Framework-Installer, ...) zu installieren. Und hast du schon mal probiert ein .NET-Programm (ohne vorgeschalteten Installer) auf einem System zu starten ohne installierten .NET-Framework. Da gab's schon bessere Lösungen von M$ (Umstieg DOS/Windows, Win16/32)[/quote] Zitat:
Zitat:
|
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Zitat:
Insofern kann man nicht auf Mickysoft warten, bis die ihr .NET endlich fertig haben. VCL.NET ist eben eine Abkürzung. Es ist nicht möglich, alles auf einmal zu machen, aber es besteht die Möglichkeit, einen unvermeidlichen Umstieg selber sinnvoll vorzubereiten und durchzuziehen. Und nur darum geht es. Die Reihenfolge ist : D7 -> alle Warnungen ausmerzen (unsicherer Code usw.), WinApi ausschalten, dann ist schon vieles weg -> VCL.NET -> Winforms. In kleineren nicht zu sehr spezialisierten Programmen läßt sich der Zwischenschritt VCL.NET eventuell überspringen. |
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Zitat:
Naja, ich benutze es einfach nicht, wird schon passen, dann nehme ich die WinForms-Projekte. |
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Matze, ist das denn so schwer ? Vielleicht heißt nicht, daß ich nicht weiß von was ich rede. Zum 834. mal : das .Net Framework ist noch nicht vollständig. Wie und woher soll ich denn wissen, wann was geht ? Soll ich jetzt darauf warten, daß alles komplett ist und dann erst mit der Arbeit anfangen ? :shock:
Ich verstehe die ganze Diskussion sowieso nicht. Jeder hatte 2 Jahre Zeit, sich mit der Problematik zu befassen und jetzt erst kommen die Fragen. 8) Alle Compiler-Warnungen wurden leichtfertig in den Wind geschlagen. Hauptsache es geht, oder es sieht zumindest so aus. Dann werden noch munter WinApi Prozeduren geschrieben, warum auch immer. Borland bietet deshalb als Alternative die VCL.NET als Mischmasch an, bis M$ endlich fertig ist. Und auch das hier nochmals : 1. WinApi komplett eliminieren, solange mit D7 nachgucken bis keine Warnug mehr kommt 2. Portierung auf VCL.NET, bis das .NET fertig ist 3. Umstellung auf WinForms Alles andere ist unrealistisch oder dauert zu lange. Wer Glück hat, der findet jetzt schon in einem WinForms-Programm alles was er braucht. Das müßte dann aber schon ein Mini-Programm sein. |
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Zitat:
Bei passender Kapslung (sowohl bei VCL als auch FCL) kann man bei vorhandensein einer passenden Klasse in neueren Framework-Versionen relativ einfach auf diese umstellen. Der komplette WinForms-Teil basiert auf Win32. Mit dem nächsten VS.NET und den dort vorhandenen erweiterten Oberflächencontrols wird MS sehr viel auf Ownerdraw-Basis ergänzen ähnlich wie man auch bei VCL-Controls vorgeht: Nimm die Basisklasse (TWinControl <-> Control) für Oberflächencontrols und zeichne alles selbst. |
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
An der Stelle will ich mal einen
![]() |
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Hi!
Da mich dieses Thema auch interessiert, hab ich mir mal diesen Thread durchgelesen... aber irgendwie ist noch kein richtiges Ergebnis bei rumgekommen, oder!? Wenn ich jetzt ein neues Projekt starten möchten, habe ich ja die Auswahl zwischen: 1. Delphi-Projekte -> VCL 2. Delphi für .NET-Projekte -> VCL (.NET) 3. Delphi für .NET-Projekte -> Windows Forms Für was sollte man sich entscheiden, wenn man davon ausgeht, dass es weder eine Anwendung für alte PCs wird noch eine "Mini-Anwendung" wird? |
Re: Delphi .NET - Unterschied zwischen Windows-Forms und VCL
Zitat:
Auch WinForms Anwendungen machen sehr viel gebrauch von P/Invoke. Da ist WinForms nicht besser als VCL.NET. Was aber MS mit WinForms besser machen kann ist die entsprechenden P/Invoke-Zugriffe im .NET-Redistributable-DLL's zu verpacken und und diese als "sichere" DLL's einen schnelleren P/Invoke-Mechanismus zukommen zu lassen. Borland-VCL-Dll's oder in die Exe gelinkte P/Invoke-Aufrufe werden vom .NET niemals so weitreichendes Vertrauen bekommen wie die eigentlichen .NET-DLL's. Was mit Sicherheit auch besser bei WinForms ist das es weniger Altlasten gibt. WinForms setzt als minimum ein Win98 mit IE 5 vorraus. VCL(.NET) basiert im Kern immer noch auf die erst Win16-Version. WinForms-Controls unter .NET 1.1 sind auch nur "simple" Wrapper um den im BS vorhanden Win32-Controls. Erst mit .NET 2.0 fängt MS an CustomControls komplett in .NET zu entwickeln mit nur minimalen Win32-Abhänigkeiten (Es ist immer noch ein Windows-Handle nötig). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz