Hallo Jan,
lade dir meine Klasse runter und sieh dir die Syntax an !
dann reden wir weiter
Am besten baust du dir auch so eine Klasse, sie kann ja zunächst auf die nötigen Funktionen beschränkt sein.
Gegenüber von Xbase kann man so eine einheitliche einfache Syntax hinbiegen und nur intern die komplexeren Dinge behandeln.
Z.B. Zeichensatz, Default Texte, Formatumwandlungen, Rückgabe 0/1 => .f./.t. und und und ...
Beispiel für DrawText() hat geschrieben:int DPLAppendText(int InstanceID, wchar_t * Text);
Code: Alles auswählen
// -------------------------------------------------------------------------------------------------------------------
METHOD HBPrintPDF:DrawText(nXPos, nYPos, sText)
sText := ::ForceAnsi(sText)
return FpQCall( {::_hdll_,"DPLDrawTextA"} ,"__sl__sl__f8__f8__pt",::_id_,nXPos, nYPos, sText)
wie man sieht, übernimmt die Klasse das Handling des DLL-Handle (hier InstanceID), in diesem Beipspiel liefert die Funktion einen numerischen Wert zurück, der aber hier nicht benötigt wird.
In anderen Fällen liefern Funktionen 0/1 zurück und ich setze um auf
return 0 # FpQCall etc.
Falls der Anbieter seine DLL ändert (was dummerweise vorkommt) kann man viele Änderungen elegant in der Klasse abfangen, ohne jedesmal den Quellcode der anderen Programme anzupassen.