Entwickler-Ecke
Windows API - Wie erstellt man ein nonVCL-Programm?
Bryce - So 16.02.03 08:34
Titel: Wie erstellt man ein nonVCL-Programm?
Ich würde ja gerne mit VCL anfangen und habe mir auch schon ein Tut durchgelesen. Ich habe einmal folgende Frage?
Wenn ich eine Applikation ohne VCL erstellen will, was muss ich dann bei "Datei>Neu" auswählen? Wenn ich nämlich z.B. Application auswähle, dann erstellt Delphi ja automatisch eine VCL-Form und klatscht da 1000 Units in den Header, die man alle evtl. gar nicht braucht. Warum bietet Delphi nicht einfach etwas an, wo man eine weiße Fläche zum schreiben bekommt mit der man dann von Grund auf ein Windows-Programm nonVCL erstellen kann?
Mir wurde auch schon mal gesagt ich könne z.B. auf "Console" gehen und den APPTYPE einfach wegnehmen, aber ich frage mich halt, warum Delphi nicht einfach für nonVCLer ein leeres Editierfeld ermöglicht, ohne VCL, ohne vorgegebenen Kram usw. Schließlich programmieren sehr viele - vor allem von den Profis - nonVCL, sonst wären die TextEditoren ja nicht teilweise unter 100KB groß, sondern würden ja automatisch die VCL-typischen Standard-300KB überschreiten. Und, ist das in C++ auch so nervig mit dem VCL oder gibt es da sowas nicht (Visual C++ ist ja schließlich auch eine visuelle Entwicklungsumgebung *igitt*)
Klabautermann - So 16.02.03 15:07
Titel: Re: Wie erstellt man ein nonVCL-Programm?
Hallo,
| Bryce hat folgendes geschrieben: |
| aber ich frage mich halt, warum Delphi nicht einfach für nonVCLer ein leeres Editierfeld ermöglicht, ohne VCL, ohne vorgegebenen Kram usw. Schließlich programmieren sehr viele - vor allem von den Profis - nonVCL, sonst wären die TextEditoren ja nicht teilweise unter 100KB groß, sondern würden ja automatisch die VCL-typischen Standard-300KB überschreiten. |
das halte ich für ein Gerücht. Wenn man sich für Delphi Entscheidet tut man das in aller regel wegen der VCL. Diese ist eine der größten stärken von Delphi.
Viele andere Anwenden sind tataächlich nicht so klein wie sie scheinen, denn wenn sie in VB erstellt wurden muss auch die VB-Runtime mit über 1MB größe mitgezählt werden und wenn sie in VC++ geschrieben wurden, dann wird häufig die MFC verwendet, welche auch kein Leichtgewicht sind, aber auch dies ist eine Externe DLL.
Non-VCL ist im wesentlichen nur etwas für kleine Projekte, wie z.B. einfache Editoren. Ich denke das werden dir auch die NON-VCL Fans hier bestätigen.
Gruß
Klabautermann
PS: Wenn du in Delphi eine neue Anwendung erstellst kannst du einfach die Formularunit wieder aus deinem Projekt entfernen und schon hast du dein NON-VCL Grundgerüst.
derDoc - So 16.02.03 15:38
Also VC++ besitzt so etwas wie eine VCL schon aus dem Grund nicht, dass es sich dabei um eine Borland Entwicklung handelt, daher hat auch der Borland C(++) Compiler eine VCL. Einzig dass diese anderen Compiler immer externe Dateien mit einbeziehen verkleinert ihre Programme. Du kannst aber auch in Delphi alles in DLLs auslagern und hast dann auch ein kleineres Programm (kleinere *.exe Datei). Das heißt, nonVCL bringt dir nur etwas, wenn du
1. nicht viel benötigst (du musst halt alles von Hand machen) und
2. dein Programm nicht sehr komfortabel seien muss.
Delete - So 16.02.03 21:03
| derDoc hat folgendes geschrieben: |
| 2. dein Programm nicht sehr komfortabel seien muss. |
Einspruch! Komfort ist
nicht das Problem. Ich habe von meinem EditFlags-Editor eine VCL- (414k) und eine NonVCL-Version (32k), bei der du rein optisch keinen Unterschied sehen wirst. Die bedienen sich auch identisch - also, der Komfort ist der gleiche. Hättest du es so formuliert:
| Zitat: |
| 2. dein Programm nicht sehr umfangreich ist |
dann hätte ich dir zustimmen können. :)
maximus - Di 18.02.03 18:21
| Zitat: |
| Also VC++ besitzt so etwas wie eine VCL schon aus dem Grund nicht, dass es sich dabei um eine Borland Entwicklung handelt... |
??hä? soll das eine -> keine heissen? versteh ich nicht
Delete - Mi 19.02.03 01:42
Und was ist mit der MFC? :roll:
Klabautermann - Mi 19.02.03 11:16
Hi,
die MFC ist nicht wirklich mit der VCL zu vergleichen. Der Visuelle hauch im Visual C++ ist unabhängig von der MFC, deshalb können auch C Programme visuell designt werden.
Die MFC ist ein (recht große) Sammlung von Klassen, die einen das Leben leichter machen. Wenn du bei der VCL das V weglässt, dann könntest du es vergleichen.
Gruß
Klabautermann
Bryce - Mi 19.02.03 17:21
Titel: VCL für Kleinigkeiten?
Also ich bezweifle ehrlich gesagt, dass Delphi gerade wegen der VCL so toll ist. Das mag zwar am Anfang einen relativ leichten Einstieg ermöglichen. Aber ich bezweifle ernsthaft, dass Profis im Internet nach Komponenten für OpenGL, DirectX, MP3 und AVI besorgen und dann damit ein Spiel zusammenzimmern. Gerade für die professionelle Programmierung wird doch immer wieder von Windows API gesprochen. Es denke eher, dass Delphi sich durch diesen VCL-Zwang teilweise ins eigene Fleisch schneidet. Ich fände eine zusätzliche Unterstützung für nonVCL-Programme für ein absolutes Muss.
Ich bin zwar nur ein Anfänger, aber ich merke schon jetzt, dass es evtl. unumgänglich ist irgendwann auch mit C++ anzufangen, wenn das nonVCLen von Delphi derart "unerwünscht" ist. Und dass andere dafür DLLs brauchen mag sein, aber ich hatte auch schon den Fall, dass ein Delphi-Programm nicht lief, weil bei einem Bekannten eine DLL fehlte. Und ich finde es wesentlich besser, wenn man viele kleine Programme hat, die auf eine DLL zugreifen, als wenn sogar ein Programm, das gar nichts macht, bereits ca. 330KB groß ist. Das ist meiner Meinung nach eher traurig. Immerhin gibt es sogar aufwendige Spiele, deren EXE wesentlich kleiner ist als 330KB - ohne extra DLL.
Klabautermann - Mi 19.02.03 17:53
Titel: Re: VCL für Kleinigkeiten?
Hallo,
| Bryce hat folgendes geschrieben: |
| Gerade für die professionelle Programmierung wird doch immer wieder von Windows API gesprochen. |
Professionelle Programmierung heißt oft auch Kommerzielle Programmierung. Nur die Wenigsten Programme sind tatsächlich Spiele oder ähnlich Multimediala Dinge.
Wenn ich mit einem Programm Profit machen will, hilft eine kurze Entwicklungszeit dabei sehr. Dafür sind die Komponenten da und grade das macht Delphi für Professionelle Programme noch interessanter.
Sicher werden Spieleprogrammierer nur selten mit Komponenten arbeiten.
| Bryce hat folgendes geschrieben: |
| Es denke eher, dass Delphi sich durch diesen VCL-Zwang teilweise ins eigene Fleisch schneidet. |
Was denn für'n VCL zwang? Bloß weil du eine Zeile Quelltext löschen musst oder eine Datei aus deinem Projekt werfen fühlst du dich gezwungen?
Glaube mir, wenn dir das schon zu aufwändig ist, dann ist NonVCL-Programmierung nichts für dich. Denn das ist noch viel aufwändiger.
Ich glaube du siehst da Probleme wo keine sind.
Wenn ich was übersehe klähre mich bitte auf.
| Bryce hat folgendes geschrieben: |
| merke schon jetzt, dass es evtl. unumgänglich ist irgendwann auch mit C++ anzufangen |
Warum sollte man das umgehen wollen? Sich auf nur eine Sprache festzulegen halte ich für einen ziemlichen Fehler. Egal auf welche Sprache man sich festlegt. Aber für diese Diskussion gibt es schon ein paar andere Threads z.B.
den hier [
http://www.delphi-forum.de/viewtopic.php?t=6744].
Gruß
Klabautermann
OregonGhost - Mi 19.02.03 19:02
| Bryce hat folgendes geschrieben: |
Das ist meiner Meinung nach eher traurig. Immerhin gibt es sogar aufwendige Spiele, deren EXE wesentlich kleiner ist als 330KB - ohne extra DLL.
|
Ja? Welche denn zum Beispiel? Bei den meisten ist lediglich die offensichtliche EXE so klein. Diese führt den Kopierschutztest durch und entschlüsselt dann die eigentliche EXE-Datei, die meist mehrere MB groß ist.
Das nur mal zu dem Thema "size doesn't matter" in allen Bereichen ;c)
Richard_Dean - Fr 21.02.03 02:44
genau *g* siehe C&C Generals
las - Mo 24.02.03 19:43
Erstell doch einfach ein neues Textdokument, änder die Dateiendung von txt auf dpr und Zack, das wars dann mit VCL-Zwang.
Delete - Mo 24.02.03 22:00
Hier mal eine Vorlage, die ich immer benutze. Einfach in das Projekt-Verzeichnis kopieren und los kann es gehen.
Template.dpr ist eien Vorlage für ein Programm mit Dialog-Ressourcen (hat der Dialog in der Ressourcen-Datei die ID 100 brauch man nichts mehr ändern). WndTemplate ist eine Vorlage für ein Fenster ohne Ressource.
Aber bitte nicht eins zu eins übernehmen. Das weiße Label, soll eigentlich ein Erkennungsmerkmal für kleien Toolts von mir sein. :wink:
Download: Template [
http://www.luckie-online.de/cgi-bin/load.cgi?downloads/template.zip]
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!