Zitat: |
nonVCL, was ist das eigentlich?
Unter der nonVCL-Programmierung versteht man die Programmierung ohne die Verwendung der VCL. Es gibt keine Komponenten, keine Formulare in dem Sinne ... usw. Stattdessen greift man direkt auf das API (Application Programmers Interface) zurück. Wenn Sie bereits Erfahrung mit der VCL-Programmierung haben, dann wird Ihnen zuerst klar werden (müssen), dass Sie sich bei reinen API-Programmen um viele Dinge selbst kümmern müssen. Der Nachteil dabei ist, dass die Quelltexte solcher Projekte u.U. etwas umfangreicher und mitunter auch unübersichtlicher werden. Andererseits haben die kompilierten Exe-Dateien nur einen Bruchteil der Größe der VCL-Versionen. Und das ist für viele Programmierer Grund genug, kleinere Tools komplett ohne VCL zu entwickeln. Allerdings dürfen Sie die Vorteile der VCL nicht vergessen. Unserer Meinung nach ist es nicht vertretbar, ein umfangreiches Projekt mit vier, fünf oder mehr Formularen ausschließlich auf API-Basis zu entwickeln. Sicher wird sich das realisieren lassen, aber hier sind Sie mit der VCL eindeutig schneller, und Sie können bequemer arbeiten. Ideal ist die API-Programmierung bei der Entwicklung von kleineren Projekten und Tools, die vielleicht nur ein oder zwei Fenster oder Dialoge haben und bei denen der Funktionsumfang nicht so gewaltig ist. Im Gegensatz zum herkömmlichen Weg müssen Sie bei nonVCL-Programmen generell für eins sorgen: Ihr Programm muss aktiv bleiben. Deshalb besteht ein typisches nonVCL-Grundgerüst aus drei Teilen - der Hauptfunktion (in PASCAL durch begin und end. gekennzeichnet) der Nachrichtenschleife der Nachrichtenfunktion Beispiel verbergen // Nachrichtenfunktion function WndProc(wnd: HWND; uMsg: UINT; wp: WPARAM; lp: LPARAM): LRESULT; stdcall; begin Result := 0; case uMsg of WM_CREATE: // Funktionen ausführen WM_DESTROY: PostQuitMessage(0); else Result := DefWindowProc(wnd,uMsg,wp,lp); end; end; // Hauptfunktion var msg : TMsg; begin // Fensterklasse registrieren, & Fenster erzeugen { ... } // Nachrichtenschleife while(GetMessage(msg,0,0,0)) do begin TranslateMessage(msg); DispatchMessage(msg); end; end. Bevor Sie jedoch beginnen nonVCL-Programme zu schreiben, sollten Sie sich mit den Grundlagen der Programmierung in PASCAL respektive ObjectPascal (Delphi) auskennen. Es macht nicht viel Sinn, völlig ohne Vorkenntnisse in diese Materie einsteigen zu wollen. Frust dürfte wohl die Folge sein. Außerdem sind weitergehende API-Dokumentationen unbedingt empfehlenswert. Als erstes wären da die Win32-API-Hilfedateien von Borland zu nennen. Diese liegen Delphi bei, sind allerdings auch veraltet und (in Bezug auf neue Controls) unvollständig. Sofern möglich nutzen Sie also gleich die Quellen von Microsoft, als da wären: das Microsoft Developers Network (MSDN) das Platform SDK (PSDK) Die Tutorials bauen weitgehend aufeinander auf. Wenn Sie also nicht gezielt ein bestimmtes Thema suchen, dann ist es ganz sinnvoll, sie der Reihe nach durchzuarbeiten. |
Zitat: |
Um genau zu sein, werden die Exe-Dateien so riesig, sobald die Classes.pas verwendet wird |
Luckie hat folgendes geschrieben: |
Classes, Forms und Duialogs sind wohl die Hauptschuldigen. |
BungeeBug hat folgendes geschrieben: |
Hi,
das was du suchst heist KOL Distro. |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!