procedure TFormMain.MISendfileClick(Sender: TObject);
var filesent:Boolean;
i, tlines,incr,Coils: integer;
ltext: string;
VSPort:TlazSerial;
VTerm:TMemo;
VPBar:TProgressBar;
Sbar:TSTatusBar;
begin
Sending:=true;
filesent:=false;
FProgress:=0;
VSPort:= TlazSerial.Create(nil);
VTerm:= TMemo.Create(nil);
Sbar:= TStatusbar.Create(nil);
case JvPageCtrl.ActivePageIndex of
0:begin VSport:= LSp1;VTerm:=MtermSp1;Sbar1.Panels.Items[1].Style:= psOwnerDraw;SBar1.Update;Sbar:=Sbar1; Coils:=CoilsSp1 ; end;
1:begin VSport:= LSp2;VTerm:=MtermSp2;Sbar2.Panels.Items[1].Style:= psOwnerDraw;SBar2.Update;Sbar:=Sbar2; Coils:=CoilsSp2 ; end;
2:begin VSport:= LSp3;VTerm:=MtermSp3;Sbar3.Panels.Items[1].Style:= psOwnerDraw;SBar1.Update;Sbar:=Sbar3; Coils:=CoilsSp3 ; end;
3:begin VSport:= LSp4;VTerm:=MtermSp4;Sbar4.Panels.Items[1].Style:= psOwnerDraw;SBar4.Update;Sbar:=Sbar4; Coils:=CoilsSp4 ; end;
4:begin VSport:= LSp5;VTerm:=MtermSp5;Sbar5.Panels.Items[1].Style:= psOwnerDraw;SBar5.Update;Sbar:=Sbar5; Coils:=CoilsSp5 ; end;
end;
if( (VSPort.Active) ) then begin
Odf.Filter := 'Text files (*.txt)|*.TXT|Any file (*.*)|*.*';
if( (Coils=1) or (coils=0)) then begin
Odf.InitialDir:= GetCurrentDir+'\Progms\SingleCoil';
end else begin
Odf.InitialDir:= GetCurrentDir+'\Progms\MultipleCoil';
end;
if Odf.Execute then begin
{ First check if the file exists. }
if FileExists(Odf.FileName) then begin
{ If it exists, load the data into the memo box. }
VMTerminal.Lines.Clear;
FormMain.Update;
FileSent:=true;
VMTerminal.Lines.LoadFromFile(Odf.FileName);
tlines := VMTerminal.Lines.Count-1;
VSport.WriteData(chr(27)+LineEnding);
sleep(100);
VSPort.WriteData('RM'+LineEnding);
sleep(2000);
FormMain.SetFocus;
incr:= Round(100/tlines);
if( Assigned(VSport) ) then begin
for i := 1 to tlines do begin // start control process to send file
ltext := VMTerminal.Lines[i-1];
if( FProgress< 100) then begin
FProgress:= incr*i;
Sbar.Panels.Items[1].Text:= IntToStr(FProgress);
end;
Sbar.Refresh;
if ((ltext = 'rm') or (ltext = 'RM') or (ltext = 'MF') or (ltext = 'EM')) then begin
VSPort.WriteData(ltext+LineEnding);
sleep(2000);
end else begin
VSPort.WriteData(ltext+LineEnding);
sleep(120);
end;
if Sending = false then break; // I create sending global to change false and break for
end;
sleep(1000);
end else begin
{ Otherwise, raise an exception. }
raise Exception.Create('File does not exist.');
end;
end else begin
ShowMessage('Not false seleted to transfer');
end;
end;
;
Sbar.Panels.Items[1].Style:= PsText;
Sbar.Panels.Items[1].text:='' ;
Sbar.Update;
case JvPageCtrl.ActivePageIndex of
0: begin SBar1:= SBar;end;
1: begin SBar2:= SBar;end;
2: begin SBar3:= SBar;end;
3: begin SBar4:= SBar;end;
4: begin Sbar5:= SBar;end;
end;
VTerm.SetFocus;
end;
end;