V5.2
This commit is contained in:
368
Unitplace.pas
Normal file
368
Unitplace.pas
Normal file
@@ -0,0 +1,368 @@
|
||||
unit Unitplace;
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls, unitprinc;
|
||||
|
||||
type
|
||||
TFormPlace = class(TForm)
|
||||
Buttonferme: TButton;
|
||||
Label1: TLabel;
|
||||
ButtonInitAig: TButton;
|
||||
ButtonSauve: TButton;
|
||||
LabelTrain1: TLabel;
|
||||
LabelTrain2: TLabel;
|
||||
LabelTrain3: TLabel;
|
||||
LabelTrain4: TLabel;
|
||||
LabelTrain5: TLabel;
|
||||
Edit1: TEdit;
|
||||
Edit2: TEdit;
|
||||
Edit3: TEdit;
|
||||
Edit4: TEdit;
|
||||
Edit5: TEdit;
|
||||
LabelTrain6: TLabel;
|
||||
Edit6: TEdit;
|
||||
Label2: TLabel;
|
||||
ButtonPlace: TButton;
|
||||
LabelTexte: TLabel;
|
||||
Label3: TLabel;
|
||||
ButtonLanceRoutage: TButton;
|
||||
Button1: TButton;
|
||||
ButtonArretroutage: TButton;
|
||||
procedure ButtonfermeClick(Sender: TObject);
|
||||
procedure ButtonInitAigClick(Sender: TObject);
|
||||
procedure FormActivate(Sender: TObject);
|
||||
procedure ButtonPlaceClick(Sender: TObject);
|
||||
procedure Edit1Change(Sender: TObject);
|
||||
procedure Edit2Change(Sender: TObject);
|
||||
procedure Edit3Change(Sender: TObject);
|
||||
procedure Edit4Change(Sender: TObject);
|
||||
procedure Edit5Change(Sender: TObject);
|
||||
procedure Edit6Change(Sender: TObject);
|
||||
procedure Button1Click(Sender: TObject);
|
||||
procedure ButtonSauveClick(Sender: TObject);
|
||||
procedure FormKeyPress(Sender: TObject; var Key: Char);
|
||||
procedure ButtonLanceRoutageClick(Sender: TObject);
|
||||
procedure ButtonArretroutageClick(Sender: TObject);
|
||||
private
|
||||
{ Déclarations privées }
|
||||
public
|
||||
{ Déclarations publiques }
|
||||
end;
|
||||
|
||||
var
|
||||
FormPlace: TFormPlace;
|
||||
|
||||
implementation
|
||||
|
||||
uses UnitConfig, UnitTCO;
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
procedure TFormPlace.ButtonfermeClick(Sender: TObject);
|
||||
begin
|
||||
close;
|
||||
end;
|
||||
|
||||
procedure TFormPlace.ButtonInitAigClick(Sender: TObject);
|
||||
begin
|
||||
if cdm_connecte then
|
||||
begin
|
||||
Affiche('Placement des trains incompatible en mode CDM rail',clOrange);
|
||||
exit;
|
||||
end;
|
||||
ButtonLanceRoutage.Enabled:=false;
|
||||
init_aiguillages;
|
||||
ButtonLanceRoutage.Enabled:=true;
|
||||
end;
|
||||
|
||||
procedure TFormPlace.FormActivate(Sender: TObject);
|
||||
var i : integer;
|
||||
begin
|
||||
LabelTrain1.Caption:=trains[1].nom_train;
|
||||
Edit1.text:=intToSTR(placement[1].detecteur);
|
||||
LabelTrain2.Caption:=trains[2].nom_train;
|
||||
Edit2.text:=intToSTR(placement[2].detecteur);
|
||||
LabelTrain3.Caption:=trains[3].nom_train;
|
||||
Edit3.text:=intToSTR(placement[3].detecteur);
|
||||
LabelTrain4.Caption:=trains[4].nom_train;
|
||||
Edit4.text:=intToSTR(placement[4].detecteur);
|
||||
LabelTrain5.Caption:=trains[5].nom_train;
|
||||
Edit5.text:=intToSTR(placement[5].detecteur);
|
||||
LabelTrain6.Caption:=trains[6].nom_train;
|
||||
Edit6.text:=intToSTR(placement[6].detecteur);
|
||||
end;
|
||||
|
||||
procedure TFormPlace.ButtonPlaceClick(Sender: TObject);
|
||||
var detect,erreur : integer;
|
||||
s : string;
|
||||
begin
|
||||
if cdm_connecte then
|
||||
begin
|
||||
Affiche('Placement des trains incompatible en mode CDM rail',clOrange);
|
||||
exit;
|
||||
end;
|
||||
|
||||
s:=edit1.Text;
|
||||
if s<>'' then
|
||||
begin
|
||||
val(s,detect,erreur);
|
||||
if (erreur<>0) or (detect>NbMemZone )then LabelTexte.caption:='Erreur détecteur train 1';
|
||||
if detect<>0 then
|
||||
begin
|
||||
detecteur[detect].adrTrain:=trains[1].adresse;
|
||||
event_detecteur(detect,true,trains[1].nom_train);
|
||||
Affiche('Positionnement train '+detecteur[detect].train+' sur détecteur '+intToSTR(detect),clLime);
|
||||
end
|
||||
else
|
||||
begin
|
||||
detecteur[detect].etat:=false;
|
||||
detecteur[detect].train:='';
|
||||
detecteur[detect].adrTrain:=0;
|
||||
end;
|
||||
end;
|
||||
|
||||
s:=edit2.Text;
|
||||
if s<>'' then
|
||||
begin
|
||||
val(s,detect,erreur);
|
||||
if (erreur<>0) or (detect>NbMemZone )then LabelTexte.caption:='Erreur détecteur train 2';
|
||||
if detect<>0 then
|
||||
begin
|
||||
detecteur[detect].adrTrain:=trains[2].adresse;
|
||||
event_detecteur(detect,true,trains[2].nom_train);
|
||||
Affiche('Positionnement train '+detecteur[detect].train+' sur détecteur '+intToSTR(detect),clLime);
|
||||
end
|
||||
else
|
||||
begin
|
||||
detecteur[detect].etat:=false;
|
||||
detecteur[detect].train:='';
|
||||
detecteur[detect].adrTrain:=0;
|
||||
end;
|
||||
end;
|
||||
|
||||
s:=edit3.Text;
|
||||
if s<>'' then
|
||||
begin
|
||||
val(s,detect,erreur);
|
||||
if (erreur<>0) or (detect>NbMemZone )then LabelTexte.caption:='Erreur détecteur train 3';
|
||||
if detect<>0 then
|
||||
begin
|
||||
detecteur[detect].adrTrain:=trains[3].adresse;
|
||||
event_detecteur(detect,true,trains[3].nom_train);
|
||||
Affiche('Positionnement train '+detecteur[detect].train+' sur détecteur '+intToSTR(detect),clLime);
|
||||
end
|
||||
else
|
||||
begin
|
||||
detecteur[detect].etat:=false;
|
||||
detecteur[detect].train:='';
|
||||
detecteur[detect].adrTrain:=0;
|
||||
end;
|
||||
end;
|
||||
|
||||
s:=edit4.Text;
|
||||
if s<>'' then
|
||||
begin
|
||||
val(s,detect,erreur);
|
||||
if (erreur<>0) or (detect>NbMemZone )then LabelTexte.caption:='Erreur détecteur train 4';
|
||||
if detect<>0 then
|
||||
begin
|
||||
detecteur[detect].adrTrain:=trains[4].adresse;
|
||||
event_detecteur(detect,true,trains[4].nom_train);
|
||||
Affiche('Positionnement train '+detecteur[detect].train+' sur détecteur '+intToSTR(detect),clLime);
|
||||
end
|
||||
else
|
||||
begin
|
||||
detecteur[detect].etat:=false;
|
||||
detecteur[detect].train:='';
|
||||
detecteur[detect].adrTrain:=0;
|
||||
end;
|
||||
end;
|
||||
|
||||
s:=edit5.Text;
|
||||
if s<>'' then
|
||||
begin
|
||||
val(s,detect,erreur);
|
||||
if (erreur<>0) or (detect>NbMemZone )then LabelTexte.caption:='Erreur détecteur train 5';
|
||||
if detect<>0 then
|
||||
begin
|
||||
detecteur[detect].adrTrain:=trains[5].adresse;
|
||||
event_detecteur(detect,true,trains[5].nom_train);
|
||||
Affiche('Positionnement train '+detecteur[detect].train+' sur détecteur '+intToSTR(detect),clLime);
|
||||
end
|
||||
else
|
||||
begin
|
||||
detecteur[detect].etat:=false;
|
||||
detecteur[detect].train:='';
|
||||
detecteur[detect].adrTrain:=0;
|
||||
end;
|
||||
end;
|
||||
|
||||
s:=edit6.Text;
|
||||
if s<>'' then
|
||||
begin
|
||||
val(s,detect,erreur);
|
||||
if (erreur<>0) or (detect>NbMemZone )then LabelTexte.caption:='Erreur détecteur train 6';
|
||||
if detect<>0 then
|
||||
begin
|
||||
detecteur[detect].adrTrain:=trains[6].adresse;
|
||||
event_detecteur(detect,true,trains[6].nom_train);
|
||||
Affiche('Positionnement train '+detecteur[detect].train+' sur détecteur '+intToSTR(detect),clLime);
|
||||
end
|
||||
else
|
||||
begin
|
||||
detecteur[detect].etat:=false;
|
||||
detecteur[detect].train:='';
|
||||
detecteur[detect].adrTrain:=0;
|
||||
end;
|
||||
end;
|
||||
if formTCO.Showing then
|
||||
begin
|
||||
affiche_tco;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormPlace.Edit1Change(Sender: TObject);
|
||||
var i,erreur : integer;
|
||||
begin
|
||||
val(edit1.Text,i,erreur);
|
||||
if erreur<>0 then exit;
|
||||
if index_adresse_detecteur(i)=0 then
|
||||
begin
|
||||
LabelTexte.caption:='Détecteur '+intToSTR(i)+' inexistant';
|
||||
exit;
|
||||
end;
|
||||
labelTexte.caption:='';
|
||||
placement[1].train:=trains[1].nom_train;
|
||||
placement[1].detecteur:=i;
|
||||
end;
|
||||
|
||||
procedure TFormPlace.Edit2Change(Sender: TObject);
|
||||
var i,erreur : integer;
|
||||
begin
|
||||
val(edit2.Text,i,erreur);
|
||||
if erreur<>0 then exit;
|
||||
if index_adresse_detecteur(i)=0 then
|
||||
begin
|
||||
LabelTexte.caption:='Détecteur '+intToSTR(i)+' inexistant';
|
||||
exit;
|
||||
end;
|
||||
labelTexte.caption:='';
|
||||
placement[2].train:=trains[2].nom_train;
|
||||
placement[2].detecteur:=i;
|
||||
end;
|
||||
|
||||
procedure TFormPlace.Edit3Change(Sender: TObject);
|
||||
var i,erreur : integer;
|
||||
begin
|
||||
val(edit3.Text,i,erreur);
|
||||
if erreur<>0 then exit;
|
||||
if index_adresse_detecteur(i)=0 then
|
||||
begin
|
||||
LabelTexte.caption:='Détecteur '+intToSTR(i)+' inexistant';
|
||||
exit;
|
||||
end;
|
||||
labelTexte.caption:='';
|
||||
placement[3].train:=trains[3].nom_train;
|
||||
placement[3].detecteur:=i;
|
||||
end;
|
||||
|
||||
procedure TFormPlace.Edit4Change(Sender: TObject);
|
||||
var i,erreur : integer;
|
||||
begin
|
||||
val(edit4.Text,i,erreur);
|
||||
if erreur<>0 then exit;
|
||||
if index_adresse_detecteur(i)=0 then
|
||||
begin
|
||||
LabelTexte.caption:='Détecteur '+intToSTR(i)+' inexistant';
|
||||
exit;
|
||||
end;
|
||||
labelTexte.caption:='';
|
||||
placement[4].train:=trains[4].nom_train;
|
||||
placement[4].detecteur:=i;
|
||||
end;
|
||||
|
||||
procedure TFormPlace.Edit5Change(Sender: TObject);
|
||||
var i,erreur : integer;
|
||||
begin
|
||||
val(edit5.Text,i,erreur);
|
||||
if erreur<>0 then exit;
|
||||
if index_adresse_detecteur(i)=0 then
|
||||
begin
|
||||
LabelTexte.caption:='Détecteur '+intToSTR(i)+' inexistant';
|
||||
exit;
|
||||
end;
|
||||
labelTexte.caption:='';
|
||||
placement[5].train:=trains[5].nom_train;
|
||||
placement[5].detecteur:=i;
|
||||
end;
|
||||
|
||||
procedure TFormPlace.Edit6Change(Sender: TObject);
|
||||
var i,erreur : integer;
|
||||
begin
|
||||
val(edit6.Text,i,erreur);
|
||||
if erreur<>0 then exit;
|
||||
if index_adresse_detecteur(i)=0 then
|
||||
begin
|
||||
LabelTexte.caption:='Détecteur '+intToSTR(i)+' inexistant';
|
||||
exit;
|
||||
end;
|
||||
labelTexte.caption:='';
|
||||
placement[6].train:=trains[6].nom_train;
|
||||
placement[6].detecteur:=i;
|
||||
end;
|
||||
|
||||
procedure TFormPlace.Button1Click(Sender: TObject);
|
||||
begin
|
||||
formconfig.PageControl.ActivePage:=formconfig.TabSheetTrains;
|
||||
formconfig.showmodal;
|
||||
formconfig.Close;
|
||||
end;
|
||||
|
||||
procedure TFormPlace.ButtonSauveClick(Sender: TObject);
|
||||
begin
|
||||
sauve_config;
|
||||
end;
|
||||
|
||||
procedure TFormPlace.FormKeyPress(Sender: TObject; var Key: Char);
|
||||
begin
|
||||
if key=chr(27) then close;
|
||||
end;
|
||||
|
||||
procedure TFormPlace.ButtonLanceRoutageClick(Sender: TObject);
|
||||
var i,j,adrDet,AdrTrain : integer;
|
||||
trouve : boolean;
|
||||
begin
|
||||
if cdm_connecte then
|
||||
begin
|
||||
Affiche('Placement des trains incompatible en mode CDM rail',clOrange);
|
||||
exit;
|
||||
end;
|
||||
|
||||
trouve:=false;
|
||||
for i:=1 to NDetecteurs do
|
||||
begin
|
||||
adrDet:=Adresse_detecteur[i];
|
||||
if Detecteur[adrDet].etat and (detecteur[adrDet].train<>'') then
|
||||
begin
|
||||
Affiche('Lancement du train '+detecteur[adrDet].train+' depuis détecteur '+intToSTR(adrDet),clYellow);
|
||||
AdrTrain:=detecteur[AdrDet].AdrTrain;
|
||||
j:=index_train_adresse(AdrTrain);
|
||||
vitesse_loco('',adrTrain,trains[j].VitNominale,true);
|
||||
trouve:=true;
|
||||
end;
|
||||
end;
|
||||
if not(trouve) then Affiche('Pas de train placé',clOrange);
|
||||
end;
|
||||
|
||||
procedure TFormPlace.ButtonArretroutageClick(Sender: TObject);
|
||||
var i : integer;
|
||||
begin
|
||||
roulage:=false;
|
||||
Affiche('Arrêt du roulage de tous les trains',clorange);
|
||||
for i:=1 to ntrains do
|
||||
vitesse_loco('',trains[i].adresse,0,true);
|
||||
end;
|
||||
|
||||
end.
|
||||
Reference in New Issue
Block a user