Zitat von
quendolineDD:
Hab das ganze mal noch um eine Klasse erweitert, die das Interface beinhaltet um es besser zu verwenden.
Das "tut man" eigentlich nicht.
Ziel sollte es sein, die Strukturen, Konstanten und Funktionen der Windows
API (bzw. eines Teils der
API) so gut wie möglich 1:1 in Delphi abzubilden.
Dies ergibt meistens sehr grosse, umfangreiche Units, wie das Jwaxxxxxx Units der Fall ist.
Diese Units "fressen kein Heu", weil sie nur aus Deklarationen bestehen.
Die Windows
API-Funktionen sind aus einer Anwendung heraus nur sehr schwer zu benützen.
Man braucht genaues Wissen über die
API.
Vergisst man z.B. einen Returnwert abzufragen oder ein
Handle freizugeben, führt dies unweigerlich zu Bugs.
Aber dafür hat man eine gut dokumentierte Schnittstelle (siehe
MSDN Library).
Die meisten
Handle-basierten
API-Funktionen schreien geradezu nach einer objektorientierten Kapselung.
Jetzt kommt also die 2. Ebene, die Kapselung der Windows
API in Klassen (so wie du das mit der Klasse TAdapter versuchst).
Aber diese Kapselung sollte in einer eigenen
Unit (getrennt von den Delarationen der Windows
API) abgelegt werden.
Die Anwendung bindet dann nur noch diese
Unit ein und bleibt dadurch von den Deklarationen verschont.
Code:
Anwendung --> Kapselung --> Windows
API --> Betriebssystem
Wenn du jetzt also deinen bisherigen Code in den Papierkorb wirfst und eine objektorientierte Kapselung um die
Jedi Units herumbaust, wirst du den grössten Nutzen rausholen.