.. es mag ja sein, dass Du den Code auswendig kennst
Wir jedoch nicht.
Grüße
Klaus
Ich weiß nicht, ob der Code hier hilfreich ist, da die Prozedur auf einige öffentliche Variablen zugreift und der gesamte Code gute 3000 Zeilen hat.
Hier mal die Prozedur, die den fehler rauswirft:
Delphi-Quellcode:
procedure TForm1.btnstartmanipulationsClick(Sender: TObject);
var
i: integer;
y: integer;
slFile: TStringlist;
begin
{ Verbindungsaufbau }
return := COM_TcpOpen(zeiger, ipAddress, port);
{ evtl. laufende Manipulationen stoppen und Stringlist initialisieren }
return := COM_StopRbsManipulationReq(zeiger);
slFile := TStringList.Create;
try
slFile.LoadFromFile(strfilename);
y := 0;
{ Manipulationen an Box übertragen }
for i := low(man1) to high(man1) do
begin
SetLength(manipulationlist, y+1);
manipulationlist[y].TriggerType := strtoint(slFile[man1[i].zeile + 3]);
manipulationlist[y].TriggerMode := strtoint(slFile[man1[i].zeile + 4])+1;
manipulationlist[y].TriggerSource := strtoint(slFile[man1[i].zeile + 5]);
manipulationlist[y].TriggerValue := strtoint(slFile[man1[i].zeile + 6]);
manipulationlist[y].TriggerHysterese := strtoint(slFile[man1[i].zeile + 7]);
manipulationlist[y].DelayValue := strtoint(slFile[man1[i].zeile + 8]);
manipulationlist[y].DelayType := strtoint(slFile[man1[i].zeile + 9]);
manipulationlist[y].SequenceNumber := strtoint(slFile[man1[i].zeile + 10]);
manipulationlist[y].ManipulationType := strtoint(slFile[man1[i].zeile + 11]);
manipulationlist[y].ManipulationDuration := strtoint(slFile[man1[i].zeile + 12]);
manipulationlist[y].ManipulationDurationType := strtoint(slFile[man1[i].zeile + 13]);
manipulationlist[y].ManipulationMode := strtoint(slFile[man1[i].zeile + 14]);
manipulationlist[y].ManipulationTarget := strtoint(slFile[man1[i].zeile + 15]);
manipulationlist[y].ManipulationTargetValue := 0;
manipulationlist[y].ManipulationValue1 := strtoint(slFile[man1[i].zeile + 17]);
manipulationlist[y].ManipulationValue2 := strtoint(slFile[man1[i].zeile + 18]);
manipulationlist[y].ManipulationValue3 := strtoint(slFile[man1[i].zeile + 19]);
// Einzelne Signalmanipulation speichern/hochladen zu Box
return := COM_RbsManipulationReq(zeiger, manipulationlist[y]);
y := y + 1;
end;
// Manipulationen starten
return := COM_StartRbsManipulationReq(zeiger);
finally
slFile.Free;
end;
end;