type TForm1 = class(TForm) ComPort1: TComPort; ProgressBar1: TProgressBar; GroupBox1: TGroupBox; BitBtn1: TBitBtn; BitBtn2: TBitBtn; Bevel1: TBevel; ComLed1: TComLed; ComLed2: TComLed; Label1: TLabel; Label2: TLabel; StatusBar1: TStatusBar; Bevel2: TBevel; ListBox1: TListBox; BitBtn3: TBitBtn; Edit1: TEdit; BitBtn4: TBitBtn; BitBtn5: TBitBtn; GroupBox2: TGroupBox; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; BitBtn6: TBitBtn; Bevel3: TBevel; ListBox2: TListBox; Edit2: TEdit; Bevel4: TBevel; BitBtn7: TBitBtn; BitBtn8: TBitBtn; ComPort2: TComPort; ComLed4: TComLed; ComLed5: TComLed; ComLed6: TComLed; ProgressBar3: TProgressBar; Label4: TLabel; Label5: TLabel; Label6: TLabel; ProgressBar2: TProgressBar; Image1: TImage; Label3: TLabel; ComComboBox1: TComComboBox; ComComboBox2: TComComboBox; ComLed3: TComLed; ProgressBar4: TProgressBar; BitBtn9: TBitBtn; BitBtn10: TBitBtn; procedure ComPort1RxFlag(Sender: TObject); procedure FormCreate(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure ListBox1Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); procedure BitBtn5Click(Sender: TObject); procedure BitBtn7Click(Sender: TObject); procedure ListBox2Click(Sender: TObject); procedure BitBtn9Click(Sender: TObject); procedure BitBtn10Click(Sender: TObject); procedure BitBtn8Click(Sender: TObject); procedure ComPort2RxFlag(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; var Form1: TForm1; i,nboucles : integer; tampon : integer; a,b,c,d,e,f,g,h,j : string; car,paquet : string; chaine : widestring; implementation {$R *.DFM} procedure TForm1.ComPort1RxFlag(Sender: TObject); begin if (tampon)<=128977 then //128876 begin while tampon<101*nboucles do tampon := comport1.inputcount; progressbar1.StepIt; statusbar1.simpletext:=formatfloat('##0',(tampon*100/101)/127800*100)+'% Transférés'; comport1.writestr(chr(13)); nboucles:=nboucles+1; tampon := comport1.inputcount; end else begin statusbar1.SimpleText:='Transfert Terminé'; end; end; procedure TForm1.FormCreate(Sender: TObject); begin nboucles:=1; tampon := 0; chaine := ''; end; procedure TForm1.BitBtn1Click(Sender: TObject); begin if comport2.connected=true then begin comport2.clearbuffer(true,true); comport2.connected:=false; end; comport1.connected:=true; comport1.clearbuffer(true,true); statusbar1.simpletext:='Connecté...'; end; // recevoir procedure TForm1.BitBtn2Click(Sender: TObject); begin listbox1.Clear; statusbar1.SimpleText:='Appuyez sur "F6" de la commande numérique puis patientez...'; comport1.writestr(chr(13)); end; procedure TForm1.BitBtn3Click(Sender: TObject); begin statusbar1.simpletext:='Ecriture du programme en cours; Patientez s.v.p...'; for i:=1 to 1278 do begin comport1.readstr(car,1); comport1.readstr(paquet,100); chaine := chaine + paquet; progressbar2.stepit; end; for i:=0 to 14199 do begin a:=chaine[i*9+1]; b:=chaine[i*9+2]; c:=chaine[i*9+3]; d:=chaine[i*9+4]; e:=chaine[i*9+5]; f:=chaine[i*9+6]; g:=chaine[i*9+7]; h:=chaine[i*9+8]; j:=chaine[i*9+9]; listbox1.items.add(a+b+c+d+e+f+g+h+j); end; statusbar1.simpletext:='Terminé.'; chaine := ''; end; procedure TForm1.ListBox1Click(Sender: TObject); begin edit1.text:=inttostr(listbox1.itemindex); end; procedure TForm1.BitBtn4Click(Sender: TObject); begin if savedialog1.execute then listbox1.items.savetofile(savedialog1.filename+'.pcn'); end; procedure TForm1.BitBtn5Click(Sender: TObject); begin chaine := ''; if opendialog1.execute then listbox2.items.loadfromfile(opendialog1.filename); statusbar1.simpletext:='Chargement du fichier...'; for i:=0 to 14199 do begin chaine:=chaine+listbox2.Items[i]; progressbar4.stepit; end; statusbar1.SimpleText:='Fichier chargé.'; end; procedure TForm1.BitBtn7Click(Sender: TObject); begin if listbox2.items.count=14200 then begin if comport1.connected=true then begin comport1.clearbuffer(true,true); comport1.connected:=false; end; comport2.Connected:=true; comport2.clearbuffer(true,true); statusbar1.SimpleText:='Connecté...'; end else showmessage('Impossible de se connecter : Le programme à envoyer est incomplet'); end; procedure TForm1.ListBox2Click(Sender: TObject); begin edit2.text:=inttostr(listbox2.ItemIndex); end; procedure TForm1.BitBtn9Click(Sender: TObject); var tampon : string; begin comport2.readstr(tampon,comport2.inputcount); comport2.ClearBuffer(true,true); comport2.connected:=false; statusbar1.simpletext:='Déconnecté.'; end; procedure TForm1.BitBtn10Click(Sender: TObject); var tampon : string; begin comport1.readstr(tampon,comport1.inputcount); comport1.ClearBuffer(true,true); comport1.connected:=false; statusbar1.simpletext:='Déconnecté.' end; procedure TForm1.BitBtn8Click(Sender: TObject); begin nboucles:=0; statusbar1.SimpleText:='Appuyez sur "F6" de la commande numérique puis patientez...'; comport2.writestr(chr(10)); end; procedure TForm1.ComPort2RxFlag(Sender: TObject); begin if nboucles<=1278 then begin paquet:=''; for i:=1 to 100 do paquet := paquet + chaine[i+100*nboucles]; nboucles:=nboucles+1; progressbar3.stepit; statusbar1.SimpleText:=formatfloat('##0',nboucles/1278*100)+'% Transférés'; comport2.writestr(paquet); end else statusbar1.simpletext:='Transfert terminé.'; end; end.