Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Was genau ist VCL? (https://www.delphipraxis.net/49823-genau-ist-vcl.html)

Patrick 16. Jul 2005 15:48


Was genau ist VCL?
 
Bitte nicht erschlagen, aber diese Frage muss ich loswerden...

Was ist VCL eigentlich genau?

Also ich habe das so verstanden: VCL sind RuntimePackages, die nötig sind um mein Programm auszuführen. Diese werden normalerweise in meine Anwendung mit reingepackt, deshalb ist sie so groß. Wenn ich jetzt aber nonVCL programmiere dürfte meine Anwendung ja nicht auf jedem Rechner laufen, da die Packages fehlen. Ist das so?

In Delphi 8 kann ich mich entscheiden, ob ich WinForm benutze oder VCLForm. WinForm-Anwendungen sind dabei deutlich kleiner, was nach meinem verständnis ja logisch ist. Meine Win-Form-Anwendung bezieht ihre RuntimePackages von Windows (API). Jetzt habe ich aber gelesen, dass Delphi 8 nur für .NET Anwendungen ist. Das ist doch eigentlich eine dritte PlattformForm (API, VCL, .NET), oder kann ich mich da auch entscheiden, ob ich mit VCL oder mit API arbeite, und warum hier die trennung zwischen WinForm und VCLForm, vorher ging es doch auch zusammen? Aber .NET scheint nochmal was ganz anderes zu sein, da ich die Anwendung auf keinem anderen Computer ausführen kann. Was macht da den unterschied? Was brauche ich: .NET Framework, .net Framework SDK oder Visual J# .NET?

Vielleicht will sich mir ja jemand annehmen...

dahead 16. Jul 2005 16:11

Re: Was genau ist VCL?
 
Also ich denke die Frage ist hier im Forum bestimmt schon geklärt, du könntest also die suchfunktion starten.

andernfalls habe ich hier was gefunden:
http://delphi.about.com/library/glossary/blgvcl.htm

Hansa 16. Jul 2005 19:39

Re: Was genau ist VCL?
 
Zitat:

Zitat von dahead
...die Frage ist hier im Forum bestimmt schon geklärt, du könntest also die suchfunktion starten...

Eine Frage wie diese ist mit Sicherheit noch nicht vollständig geklärt ! Das ist alles noch zu neu und zu komplex. Die Suchfunktion wäre dann auch nur Stückwerk.

Robert_G 16. Jul 2005 19:44

Re: Was genau ist VCL?
 
Zitat:

Zitat von Hansa
Eine Frage wie diese ist mit Sicherheit noch nicht vollständig geklärt ! Das ist alles noch zu neu und zu komplex. Die Suchfunktion wäre dann auch nur Stückwerk.

Stümmt ja... Die VCL gibt's ja erst seit 10 Jahren... :mrgreen:

kiar 16. Jul 2005 19:50

Re: Was genau ist VCL?
 
Hallo,

@Hansa : da hast du wieder einen gucken lassen
@Robert: du kannst einfach nicht anderst
@Patrick : D7 Enterprise und dann die Frage? wohl eine zeitlich ausgeborgte Lizenz

raik

Hansa 16. Jul 2005 19:59

Re: Was genau ist VCL?
 
@Kiar : dann erklärs doch. :mrgreen:

Pr0g 16. Jul 2005 20:01

Re: Was genau ist VCL?
 
Die VCL vereinfach den Umgang mit der WinAPI (welche ja intern aufgerufen wird). Da dafür die Klassen eingebunden werden müssen, wird dein Programm verständlicherweise größer. Bei NonVCL greifst du direkt auf die WinAPI zu und kannst dir die VCL Klassen sparen, also wird die Exe wieder kleiner. Ich denke .NET würde sich nun am besten mit der WinAPI vergleichen lassen (auch wenn der Aufbau und die interne Abwicklung ganz anders ist). Dort brauchst du auch keine VCL und das Programm bleibt klein. Außerdem hat .NET eine bessere Struktur, habe selber aber noch nicht viel mit gemacht.

Warum kannst du bei .NET die Anwendungen nicht auf einem anderen Rechner ausführen, dieser muss nur das .NET Framework installiert haben, so wie du für Java für passende Java Dinge (:lol:) installiert haben musst.

Im Gegensatz zur WinAPI und VCL (die ja zusammengehören) - von der VCL für .NET mal abgesehen - musst du .NET nutzen (oder halt CLX mit Kylix), wenn du deine Anwendungen auch auf anderen Betriebssystemen laufen lassen willst. Soll ja mit Mono soweit auch bspw. unter Linux gehen. Aber da kann ich wieder nicht allzu viel zu sagen.

Hoffe mal dass die Erklärungen - wenn auch kurz - soweit richig sind :P

MfG Pr0g

kiar 16. Jul 2005 20:45

Re: Was genau ist VCL?
 
Was ist die VCL:
Zitat:

Delphi VCL bezeichnet die "Visual Component Library". Dies ist ein Überbegriff für alle Komponenten, die man in seinen Delphi-Programmen anwenden kann.
Genau dies definiert den Delphi-Entwickler: Erkenne Problem -> Suche Komponente -> Füge Komponente ein -> Problem gelöst!
Unschwer zu sehen, daß nach dem Erkennen des Problems kein Denken mehr erforderlich ist...
:mrgreen:

Olli 16. Jul 2005 21:06

Re: Was genau ist VCL?
 
@Fragesteller: [Leicht OT] :gruebel: ... wenn man Delphi 7 Enterprise hat, schämt man sich dann für eine solche Frage? :| ...

malo 16. Jul 2005 21:06

Re: Was genau ist VCL?
 
Zitat:

Zitat von Pr0g
Im Gegensatz zur WinAPI und VCL (die ja zusammengehören) - von der VCL für .NET mal abgesehen - musst du .NET nutzen (oder halt CLX mit Kylix), wenn du deine Anwendungen auch auf anderen Betriebssystemen laufen lassen willst. Soll ja mit Mono soweit auch bspw. unter Linux gehen. Aber da kann ich wieder nicht allzu viel zu sagen.

Naja, ich persönlich würde für andere Betriebssysteme (z.B. Linux) entweder eine andere Sprache (C/C++ oder Java) oder einen anderen Compiler (FreePascal (evtl + Lazarus IDE)) benutzen, als .NET unter Mono. Mono-.NET ist mir einfach zu unsicher und ist noch nicht ganz ausgereift, als dass ich da ernsthaft mit arbeiten würde.

Tut aber auch nicht ganz zur Sache...


Zum Thema: Als VCL kann man (ganz galopp) den Formdesigner bezeichnen, mit dem man einfach Komponenten aufs Formular schiebt und Properties/Events zuweist. Die gesamte VCL ist jedoch eine Ansammlung von Units, die immer mit deinem Programm mitgegeben werden. Die VCL erleichtert nicht nur das arbeiten mit Fenstern (Forms) und Komponenten, sondern liefert auch eine ganze Reihe Funktionen mit, die du jederzeit nutzen und aufrufen kannst. Du wirst wahrscheinlich nie alle Funktionen in einem Projekt brauchen, aber du hast da eine Auswahl, ohne neue Units mitliefern zu müssen.
Die VCL kann jedoch in jedem Delphi-Projekt mitgeliefert werden (alle Units in die uses-Klausel aufnehmen und dann noch ein wenig die Struktur ändern, fertig ist es). Das wiederspricht jedoch auch ein wenig dem Sinn von nonVCL-Anwendungen...


Zu .NET kannst du aber problemlos die Suchfunktion benutzen. Es gab schon einige Fragen zu "Was ist .NET" ;)

//edit: An alle, die seine Delphi-Version wundert: Es gibt ja auch Leute, die ältere Geschwister/Eltern/Onkel/Tante/Opa haben, die nicht mehr programmieren (oder nur noch selten) und daher ihr Delphi abgegeben/verliehen haben. Oder aber auch ein Schnäppchen bei Ebay :zwinker:

bigg 16. Jul 2005 21:51

Re: Was genau ist VCL?
 
@malo: Erzähl uns hier bitte nichts vom Storch.
Zitat:

Formdesigner..., für Linux eher Free Pascal..., .Net...
:chat: :roll:

Zumal ich bezweifle, dass du jemals FreePascal unter Linux verwendet hast.

PS: Schön, das ihr euch über den Thread-Ersteller so amüsiert,
eure Antworten sind übrigens genauso lustig.

PSPS: Mit 19 schon ne Enterprise am laufen, respekt.

Ich geh erstmal ne runde roflen.

Robert_G 16. Jul 2005 21:54

Re: Was genau ist VCL?
 
Zitat:

Zitat von bigg
PS: Schön, das ihr euch über den Thread-Ersteller so amüsiert,

Das verbitte ich mir! :warn:
Ich habe nur über Hansa hergezogen... :mrgreen:

p.s.: Schön dass du ihn nichts zu Mono gefragt hast. :mrgreen:

DGL-luke 16. Jul 2005 22:03

Re: Was genau ist VCL?
 
Man könnte die VCL als WinAPI-Wrapper bezeichnen.

Um nun zu verstehen, was die VCL ist, muss man zwei begriffe definieren:

API = Application Programming Interface = Programm-Programmierungs-Schnittstelle = Eine Schnittstelle, über die man auf alles zugreifen kann, das Windows zum Zugriff vorgesehen hat. Da gehören so Sachen dazu wie das Dateisystem, Systemeinstellungen und eben die visuellen Komponenten, welche durch einen Funktionsaufruf, welcher ein Handle zurückliefert, erzeugt und über dieses Handle weiterverwendet werden können.

Wrapper = Verpacker = ein Konstrukt, das um das zu Wrappende "gewickelt" wird, um den Zugriff einfacher zu machen. Die VCL pacvkt die API-Funktionen also in ein eigenes Konstrukt ein, die das Operieren dieser API einfacher macht, aber dafür natürlich einen Overhead verursacht.

ich hoffe, das ist verständlich.

@Enterprise: @kiar: Verleumdung :warn:
@Olli: Unverschämtheit... :roll:

Ich hätte mit dem nötigen Kleingeld auch gleich ne Enterprise oder zumindest Professional gekauft...

Hansa 16. Jul 2005 22:04

Re: Was genau ist VCL?
 
Wer zieht über mich her ? :shock: Es muß doch lediglich ein Konsens hergestellt werden. Also bemüht euch auch darum ! :mrgreen: Es nützt ja wohl nichts, unnötigerweise über die VCL herzuziehen. Kiar soll mal den Rest vernünftig erklären. :mrgreen:

bigg 16. Jul 2005 22:07

Re: Was genau ist VCL?
 
Zitat:

Das verbitte ich mir! Warning
Ich habe nur über Hansa hergezogen... Mr. Green
Oh, Mr. G. fühlt sich angesprochen :cry:

Patrick 17. Jul 2005 11:12

Re: Was genau ist VCL?
 
Ersteinmal Danke für eure Zahlreichen Antworten!

Vielleicht kann mir noch schnell einer sagen, warum eine mi Delphi 8 erstellte Anwendung nicht auf dem PDA von meinem Freund läuft. Weder die WinForm noch die VCLForm. Dabei laufen diese PDAs doch auf .NET...? Oder nicht zwangsläufig?

Was meine Delphi-Version angeht hat sich da noch nie einer gewundert. Warum ich diese Version habe, bzw. wie ich da dran gekommen bin ist meine Sache...

Hansa 17. Jul 2005 11:47

Re: Was genau ist VCL?
 
@Kindergarten : schämt euch. Insbesondere RG. :mrgreen: Muß euch ein 14-jähriger zumindest versuchen zu erklären, was die VCL ist ?

Malo hat das schon richtig erklärt : im Prinzip ist die VCL alles, was z.B. bei einem neuen Projekt verfügbar ist. Also die Form und die Komponentenleiste, indirekt auch Objektinspektor usw. Allerdings müssen die VCL-Dateien der einzelnen Komponenten bei einem Projekt nicht mitgegeben werden, damit es auch läuft !

Mit der WinApi hat das alles aber auch nur bedingt zu tun. Je tiefer man in der VCL-Hierarchie nach unten geht, also zu dem Vorfahren einer Komponente, um so höher ist die Wahrscheinlichkeit, daß man auf irgendwelche WinApi Sachen stößt, selbst wenn man das selber nicht benutzt.

Die Delphi-Vcl wurde nun von Borland gemacht, um eben leicht ein Programm zusammenklicken zu können. Da ist viel Drumrum mit dabei, weil Windows selber zu wenig hergibt. Je nachdem was gebraucht wird, bindet der Linker deshalb recht viele Units mit in die EXE.

Glaube aber, die Frage zielt eher auf VCl.NET/Winforms ab. Ersteres dient anscheinend nur zur Kompatibilität bzw. leichterer Umstellung eines Programmes auf .NET.

.NET bietet nun nicht nur Funktionen zum Zeichnen usw. an, sondern da liegt tatsächlich ein Button usw. vorgefertigt im Betriebssystem vor, den man benutzen kann. Momentan aber nur im .NET-Framework. Da 99% aller benutzten Computer das aber wohl nicht haben, nützt das alles vorerst recht wenig.

jfheins 17. Jul 2005 11:54

Re: Was genau ist VCL?
 
Zitat:

Zitat von Hansa
.NET [...] da liegt tatsächlich ein Button usw. vorgefertigt im Betriebssystem vor, den man benutzen kann.

Das ist unter der Win32Api auch nicht viel anders, dort machst du einen Aufruf von CreateWindowEx und schon hast du deinen Button ;)

Hansa 17. Jul 2005 12:19

Re: Was genau ist VCL?
 
Zitat:

auch nicht viel anders..
Genau ! Trotzdem ist es anders. :mrgreen: .NET ist was völlig anderes, als die zerstückelte WinApi. M$ will zwei Fliegen mit einer Klappe schlagen. Das eine ist, mit dem eigenen WinApi-Durcheinander aufzuräumen und das andere sind Viren und sonstiges Ungeziefer. Besonders letzteres ist wichtig ! Es gibt viele Linux-Umsteiger für die nur ein Argument gilt : "keine Viren" ! Mickysoft kann sich so was auf Dauer nicht leisten.

Olli 17. Jul 2005 13:15

Re: Was genau ist VCL?
 
Zitat:

Zitat von Patrick
Was meine Delphi-Version angeht hat sich da noch nie einer gewundert. Warum ich diese Version habe, bzw. wie ich da dran gekommen bin ist meine Sache...

Jain.
  1. wenn man mit einem Produkt programmiert und u.U. Geld verdient, sollte man selber ehrlich bezahlen
  2. wenn man ehrlich bezahlt, so ist dies bei der Ent-Version eine Menge Schotter. Zumal man als Einzelentwickler garnicht das Potential der Features ausschöpfen *kann*. Wenn ich also eine Menge Schotter ausgebe, dann weiß ich auch was das Produkt leistet - und zwar in- und auswendig! Alles andere macht irgendwie einen schlechten Eindruck - nicht nur auf jene von denen du eine Antwort erwartest. Man verzeihe mir meine Impertinenz!
...daher steht meine Frage, ob man sich für solche Fragen schämt, immernoch!

Die Sache mit dem PDA ... nunja, VCLForms bedeutet: nativer Binärcode. Daher *kann* es garnicht funktionieren, da mir kein PDA mit einem Pentium-binärkompatiblen Prozessor bekannt ist. Für .NET gilt gleiches in abgewandelter Form. Portabel heißt nicht automatisch, daß man die Binärdatei portieren kann ...

Robert_G 17. Jul 2005 13:20

Re: Was genau ist VCL?
 
Zitat:

Zitat von Olli
Für .NET gilt gleiches in abgewandelter Form. Portabes heißt nicht automatisch, daß man die Binärdatei portieren kann ...

Genau, CF Apps müssen gegen die MsCoreLib vom CF kompiliert werden. Vielleicht wird das in .Net3 nicht mehr nötig sein, aber IMHO macht die gleiche GUI für große (PC) Bildschirme und Minis (PDA) keinen Sinn. Somit kann man das nicht wirklich als Einschränkung sehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:36 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 by Thomas Breitkreuz