So wie es aussieht, ist es möglich wenn du die betreffende rcx.dll aus
folgende Seite herunter lädst.
http://www.gajdaw.pl/nmlt/software.html
hier der direktlink zur DLL, die auch unter Purebasci genutzt werden könnte.
http://www.gajdaw.pl/nmlt/zip/rcxdll_0_1.zip
Die Funktionen der DLL sind in der Beschreibung angegeben, welche du
manuell in PB erstellst, oder vielleicht mit ts-soft sein hübsches tool
"DLL2PBLib.exe" extrahierst und entsprechend der Beschreibung anpasst.
Beschreibung zur rcx.dll --> hat geschrieben:RCX.DLL Exported functions:
procedure RCXSetSerialPort(no:smallint);StdCall;
procedure RCXStart;StdCall;
procedure RCXStop;StdCall;
procedure RCXMotorOn(no:word);StdCall;
procedure RCXMotorOff(no:word);StdCall;
procedure RCXSetFwd(no:word);StdCall;
procedure RCXSetRwd(no:word);StdCall;
procedure RCXAlterDir(no:word);StdCall;
function RCXSensor1:word;StdCall;
function RCXSensor2:word;StdCall;
function RCXSensor3:word;StdCall;
Etwas vorarbeit habe ich schon mal gemacht. Nur nicht die Anpassung an
die Funktionen, da ich dieses nicht ohne Hardware in PB testen kann.
Aber das sollte nicht schwer sein.
Wenn alles korrekt läuft, kannst du mit Tailbite eine PB-Lib daraus
erzeugen.
erstellt mit tool von ts-soft hat geschrieben:; Source generiert durch DLL2PBLib
; Copyright 2005 by Thomas Schulz (TS-Soft)
; Globale Variablen deklaration
Global RCXAlterDir.l
Global RCXMotorOff.l
Global RCXMotorOn.l
Global RCXSensor1.l
Global RCXSensor2.l
Global RCXSensor3.l
Global RCXSetFwd.l
Global RCXSetRwd.l
Global RCXSetSerialPort.l
Global RCXStart.l
Global RCXStop.l
; Init-Funktion
ProcedureDLL rcx_Init()
Shared DLL.l
DLL = LoadLibrary_("rcx.dll")
If DLL
RCXAlterDir = GetProcAddress_(DLL, "RCXAlterDir")
RCXMotorOff = GetProcAddress_(DLL, "RCXMotorOff")
RCXMotorOn = GetProcAddress_(DLL, "RCXMotorOn")
RCXSensor1 = GetProcAddress_(DLL, "RCXSensor1")
RCXSensor2 = GetProcAddress_(DLL, "RCXSensor2")
RCXSensor3 = GetProcAddress_(DLL, "RCXSensor3")
RCXSetFwd = GetProcAddress_(DLL, "RCXSetFwd")
RCXSetRwd = GetProcAddress_(DLL, "RCXSetRwd")
RCXSetSerialPort = GetProcAddress_(DLL, "RCXSetSerialPort")
RCXStart = GetProcAddress_(DLL, "RCXStart")
RCXStop = GetProcAddress_(DLL, "RCXStop")
EndIf
EndProcedure
; End-Funktion
ProcedureDLL rcx_End()
Shared DLL.l
FreeLibrary_(DLL)
EndProcedure
; Allgemeine Funktionen
ProcedureDLL.l RCXAlterDir()
ProcedureReturn CallFunctionFast(RCXAlterDir)
EndProcedure
ProcedureDLL.l RCXMotorOff()
ProcedureReturn CallFunctionFast(RCXMotorOff)
EndProcedure
ProcedureDLL.l RCXMotorOn()
ProcedureReturn CallFunctionFast(RCXMotorOn)
EndProcedure
ProcedureDLL.l RCXSensor1()
ProcedureReturn CallFunctionFast(RCXSensor1)
EndProcedure
ProcedureDLL.l RCXSensor2()
ProcedureReturn CallFunctionFast(RCXSensor2)
EndProcedure
ProcedureDLL.l RCXSensor3()
ProcedureReturn CallFunctionFast(RCXSensor3)
EndProcedure
ProcedureDLL.l RCXSetFwd()
ProcedureReturn CallFunctionFast(RCXSetFwd)
EndProcedure
ProcedureDLL.l RCXSetRwd()
ProcedureReturn CallFunctionFast(RCXSetRwd)
EndProcedure
ProcedureDLL.l RCXSetSerialPort(a.l)
ProcedureReturn CallFunctionFast(RCXSetSerialPort,a)
EndProcedure
ProcedureDLL.l RCXStart()
ProcedureReturn CallFunctionFast(RCXStart)
EndProcedure
ProcedureDLL.l RCXStop()
ProcedureReturn CallFunctionFast(RCXStop)
EndProcedure
Ich hoffe ich konnte etwas dazu beitragen
[Edit] Hier noch ein weiterer Link, wo all diese Infos herkommen und
sogar ein Delphibeispiel diese DLL ausführlich darstellt und sich leicht in
PB anpassen lässt. Dazu sollte man die einzelnen
procedure TForm1.Button3Click(Sender: TObject);
sich so vorstellen, als ob man z.B. mit Visualdesigner Buttons hergestellt hat und in den einzelnen If-Anweisungen oder Case-Anweisungen die Funktion hineinschreibt.
Oder gleich die einzelnen Funktionen in selbst gewählte Proceduren erstellen. [/Edit]
MfG Falko