Hallo,
ich versuche aktuell verschiedene Werte aus Lotus herauszulesen. Hierfür habe ich mir im Lexikon die DLL Artikel durchgelesen und den Beispielcode als Grundstein genommen.
Mit 0-Pascal Erfahrung versuche ich es einfach mal. (Probieren geht über studieren)
Da ich leider keine näheren Details zu den DLL's gefunden habe, versuche ich das grade durch lesen und (versuchen zu) verstehen mir nach und nach zu erarbeiten.
Im nachfolgenden versuche ich die Liniennummer als integer zu exportieren. ( Wie gesagt, Beispielcode vom Lexikon ist 1:1 übernommen, nur meinerseits zur Verständnis kommentiert)
In der DLL versuche ich von den System-Scriptvariabeln die RC_PIS_Line auszulesen. Ist das hier der richtige Ansatz, oder ist das absoluter Blödsinn, den ich hier fabriziere?
- library Test;
- uses
- SysUtils,
- Dialogs,
- Classes,
- TestU in 'TestU.pas' {Form1};
- {$R *.res}
- //Readaccess over ReceiveVarBool, ReceiveVarInt, ReceiveVarFloat, ReceiveVarString
- //First parameter varindex: word, value: boolean, integer, single, shortstring
- //var = output from Lotus
- //event = input to Lotus
- //PlugInStart must have
- procedure PluginStart(AOwner: TComponent); stdcall;
- begin
- form1 := TForm1.Create( AOwner );
- form1.Show;
- end;
- ...
- //Output at [ReadingVarsInt] -> var.0
- procedure ReceiveVarInt(varindex: word; value: integer); stdcall;
- begin
- case varindex of
- 0:
- begin
- form1.Label2.Caption := IntToStr(value);
- form1.Gauge1.Progress := value;
- end;
- //Output at [ReadingVarsInt] -> var.1
- 1:
- begin
- RC_PIS_Line := value;
- end;
- end;
- //Focus on vehicle after starting simulation/changing vehicle
- procedure OnConnectingVehicle(name: shortstring); stdcall;
- begin
- form1.Caption := name;
- end;
- //Events before disconneting from a vehicle
- procedure OnUnconnectingVehicle; stdcall;
- begin
- form1.Caption := 'no bus loaded';
- end;
- exports
- ReceiveVarInt,
- SetButton,
- SetFloat,
- PlugInStart,
- OnConnectingVehicle,
- OnUnconnectingVehicle,
- PlugInFinalize;
- begin
- end.
Nun hier die Frage: kann das so funktionieren oder gibt es effektivere Methoden um an die Informationen ranzukommen/zu exportieren?