V5.73
This commit is contained in:
181
UnitTCO.pas
181
UnitTCO.pas
@@ -123,6 +123,7 @@ type
|
||||
ImagePalette8: TImage;
|
||||
ImageTemp: TImage;
|
||||
ImageTemp2: TImage;
|
||||
outslectionner1: TMenuItem;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormActivate(Sender: TObject);
|
||||
procedure ImageTCOContextPopup(Sender: TObject; MousePos: TPoint;
|
||||
@@ -169,7 +170,6 @@ type
|
||||
procedure ButtonRedessineClick(Sender: TObject);
|
||||
procedure grille;
|
||||
procedure EditAdrElementChange(Sender: TObject);
|
||||
procedure EditTypeImageKeyPress(Sender: TObject; var Key: Char);
|
||||
procedure Button1Click(Sender: TObject);
|
||||
procedure Button2Click(Sender: TObject);
|
||||
procedure Maj_TCO(Adresse : integer);
|
||||
@@ -237,8 +237,6 @@ type
|
||||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||
procedure ImagePalette22MouseDown(Sender: TObject;
|
||||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||
procedure EditAdrElementKeyDown(Sender: TObject; var Key: Word;
|
||||
Shift: TShiftState);
|
||||
procedure ImageTCODblClick(Sender: TObject);
|
||||
procedure ComboReprChange(Sender: TObject);
|
||||
procedure ImagePalette1DragOver(Sender, Source: TObject; X, Y: Integer;
|
||||
@@ -330,6 +328,8 @@ type
|
||||
|
||||
procedure ImagePalette25EndDrag(Sender, Target: TObject; X,
|
||||
Y: Integer);
|
||||
|
||||
procedure ImagePalette25MouseDown(Sender: TObject;
|
||||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||
|
||||
procedure FormKeyPress(Sender: TObject; var Key: Char);
|
||||
@@ -1635,8 +1635,8 @@ begin
|
||||
pen.width:=epaisseur;
|
||||
MoveTo(x0,y0+hauteurCell);LineTo(xc,yc);LineTo(x0+largeurCell,yc);
|
||||
end;
|
||||
// élément 10
|
||||
procedure dessin_10(Canvas : Tcanvas;x,y : integer;Mode : integer);
|
||||
end;
|
||||
|
||||
// élément 10
|
||||
procedure dessin_10(Canvas : Tcanvas;x,y : integer;Mode : integer);
|
||||
var Adr, x0,y0: integer;
|
||||
@@ -1654,6 +1654,7 @@ begin
|
||||
|
||||
Adr:=TCO[x,y].adresse;
|
||||
|
||||
if (Adr<>0) and (detecteur[Adr].etat) then couleur:=clAllume
|
||||
else
|
||||
case mode of
|
||||
0: couleur:=clVoies;
|
||||
@@ -1677,7 +1678,6 @@ begin
|
||||
end;
|
||||
|
||||
end;
|
||||
procedure dessin_11(Canvas : Tcanvas;x,y : integer;Mode : integer);
|
||||
|
||||
// élément 11
|
||||
procedure dessin_11(Canvas : Tcanvas;x,y : integer;Mode : integer);
|
||||
@@ -1694,6 +1694,7 @@ begin
|
||||
r:=Rect(x0,y0,x0+LargeurCell,y0+HauteurCell);
|
||||
FillRect(r);
|
||||
|
||||
Adr:=TCO[x,y].adresse;
|
||||
if (Adr<>0) and (detecteur[Adr].etat) then couleur:=clAllume
|
||||
else
|
||||
case mode of
|
||||
@@ -2631,7 +2632,7 @@ begin
|
||||
pen.width:=1;
|
||||
jy1:=yc - Epaisseur-1;
|
||||
jx1:=xc-(Epaisseur div 2);
|
||||
end;
|
||||
pen.width:=1;
|
||||
Polygon([point(jx1,jy1),Point(jx1+epaisseur,jy1+epaisseur),Point(jx1+epaisseur,jy1-epaisseur),Point(jx1,jy1-epaisseur)]);
|
||||
end;
|
||||
|
||||
@@ -3346,7 +3347,7 @@ begin
|
||||
TextOut(xOrg+xt,Yorg+yt,s);
|
||||
i:=detecteur[adresse].AdrTrain;
|
||||
if i<>0 then
|
||||
if i<>0 then
|
||||
begin
|
||||
i:=index_train_adresse(i);
|
||||
if i<>0 then
|
||||
begin
|
||||
@@ -5271,7 +5272,6 @@ begin
|
||||
Pen.color:=clGrille;
|
||||
Brush.Color:=clblue;
|
||||
//FillRect(r);
|
||||
SelectionAffichee:=false;
|
||||
Rectangle(rAncien);
|
||||
end;
|
||||
SelectionAffichee:=false;
|
||||
@@ -5313,17 +5313,15 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
begin
|
||||
// si voie ou rien ou signal ou quai
|
||||
if (Bimage=1) or (Bimage=0) or (Bimage=23) or (Bimage=31) or (Bimage=30) then
|
||||
EditTexte.Visible:=true;
|
||||
begin
|
||||
s:=Tco[XClicCell,YClicCell].Texte;
|
||||
EditTexte.Text:=s;
|
||||
EditTexte.Visible:=true;
|
||||
ComboRepr.Enabled:=true;
|
||||
end
|
||||
end;
|
||||
else
|
||||
begin
|
||||
formTCO.EditTexte.Visible:=false;
|
||||
formTCO.comboRepr.Enabled:=false;
|
||||
@@ -5334,7 +5332,7 @@ begin
|
||||
GroupBox1.Caption:='Configuration cellule '+s;
|
||||
XclicCellInserer:=XClicCell;
|
||||
YclicCellInserer:=YClicCell;
|
||||
ComboRepr.ItemIndex:=tco[XClicCell,yClicCell].repr;
|
||||
EditAdrElement.Text:=IntToSTR(tco[XClicCellInserer,YClicCellInserer].Adresse);
|
||||
EdittypeImage.Text:=IntToSTR(BImage);
|
||||
ComboRepr.ItemIndex:=tco[XClicCell,yClicCell].repr;
|
||||
ShapeCoulFond.Brush.Color:=tco[XClicCell,yClicCell].CouleurFond;
|
||||
@@ -5342,6 +5340,7 @@ begin
|
||||
if not(selectionaffichee) then _entoure_cell_clic;
|
||||
actualise; // actualise la fenetre de config cellule
|
||||
clicTCO:=false;
|
||||
end;
|
||||
|
||||
if button=mbRight then
|
||||
begin
|
||||
@@ -5450,7 +5449,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure TFormTCO.ButtonRedessineClick(Sender: TObject);
|
||||
end;
|
||||
begin
|
||||
Affiche_TCO;
|
||||
end;
|
||||
|
||||
@@ -5461,45 +5460,10 @@ begin
|
||||
//Affiche('Chgt adresse',clyellow);
|
||||
if clicTCO or not(formConfCellTCOAff) then exit;
|
||||
Val(EditAdrElement.Text,Adr,erreur);
|
||||
if Adr=0 then tco[XClicCell,YClicCell].repr:=2;
|
||||
if (erreur<>0) or (Adr<0) or (Adr>2048) then Adr:=0;
|
||||
|
||||
if Adr=0 then tco[XClicCell,YClicCell].repr:=2;
|
||||
|
||||
if tco[XClicCell,YClicCell].BImage=30 then
|
||||
begin
|
||||
index:=Index_feu(adr);
|
||||
if index=0 then exit
|
||||
else
|
||||
begin
|
||||
//Affiche('Feu '+intToSTR(Adr),clyellow);
|
||||
affiche_tco;
|
||||
end;
|
||||
end;
|
||||
|
||||
Affiche_cellule(XclicCell,YclicCell);
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormTCO.EditAdrElementKeyDown(Sender: TObject; var Key: Word;
|
||||
Shift: TShiftState);
|
||||
begin
|
||||
if key=VK_RETURN then
|
||||
begin
|
||||
efface_entoure;
|
||||
affiche_cellule(XClicCell,YClicCell);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormTCO.EditTypeImageKeyPress(Sender: TObject; var Key: Char);
|
||||
var Bimage,erreur : integer;
|
||||
begin
|
||||
if affevt then Affiche('TCC evt editTypeImageKeyPress',clorange);
|
||||
if actualize then exit;
|
||||
if ord(Key)=VK_RETURN then
|
||||
begin
|
||||
Key:=#0; // évite beeping
|
||||
Val(EditTypeImage.Text,Bimage,erreur);
|
||||
tco[XClicCell,YClicCell].Adresse:=Adr;
|
||||
formConfCellTCO.editAdrElement.Text:=intToSTR(Adr);
|
||||
tco_Modifie:=true;
|
||||
@@ -5624,57 +5588,24 @@ begin
|
||||
tco[XClicCell,YClicCell].BImage:=30;
|
||||
tco[XClicCell,YClicCell].Adresse:=0;
|
||||
tco[XClicCell,YClicCell].FeuOriente:=1;
|
||||
|
||||
tco[XClicCell,YClicCell].PiedFeu:=1;
|
||||
tco[XClicCell,YClicCell].y:=0;
|
||||
// ne pas convertir l'adresse sinon evt changement du composant et on écrase l'aspect EditAdrElement.Text:=IntToSTR( tco[XClicCell,YClicCell].Adresse);
|
||||
EdittypeImage.Text:=IntToSTR(tco[XClicCell,YClicCell].BImage);
|
||||
Dessin_feu(ImageTCO.Canvas,XClicCell,YClicCell);
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormTCO.ImagePalette30MouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
|
||||
var l,h : integer;
|
||||
begin
|
||||
l:=Formprinc.Image9feux.width; //57
|
||||
h:=Formprinc.Image9feux.height; //105
|
||||
ImagePalette30.BeginDrag(true);
|
||||
//ImageTemp:=ImagePalette30;
|
||||
BitBlt(OldBmp.Canvas.Handle,0,0,LargeurCell,HauteurCell,ImageTCO.Canvas.Handle,offsetSourisX,offsetSourisY,SRCCOPY);
|
||||
// StretchBlt(formTCO.ImageTemp.canvas.Handle,0,0,largeurCell,HauteurCell, // destination avec mise à l'échelle
|
||||
// formprinc.Image9feux.Canvas.Handle,0,0,l,h,srccopy);
|
||||
drag:=true;
|
||||
oldx:=offsetSourisX;oldy:=offsetSourisY;
|
||||
// debut_drag(ImagePalette30);
|
||||
|
||||
|
||||
|
||||
//imagePalette30.BeginDrag(true);
|
||||
//StretchBlt(formTCO.ImageTCO.canvas.Handle,0,0,largeurCell,HauteurCell, // destination avec mise à l'échelle
|
||||
// formprinc.Image9feux.Canvas.Handle,0,0,l,h,srccopy);
|
||||
|
||||
//Efface_Cellule(formTCO.ImageTCO.canvas,1,1,pmCopy);
|
||||
|
||||
{TransparentBlt(formTCO.ImageTemp.canvas.Handle,0,0,largeurCell,HauteurCell, // destination avec mise à l'échelle //50,50 ok 51,51 nok
|
||||
formprinc.Image9feux.Canvas.Handle,0,0,50,90,clblue);
|
||||
formtco.ImageTCO.repaint;
|
||||
}
|
||||
with formTCO.ImageTemp2.Canvas do
|
||||
begin
|
||||
pen.Color:=clfond;
|
||||
brush.Color:=clblack;
|
||||
Rectangle(0,0,91,91);
|
||||
tco[XClicCell,YClicCell].coulFonte:=clWhite;
|
||||
|
||||
tco[XClicCell,YClicCell].x:=0;
|
||||
//StretchBlt(formTCO.ImageTemp2.canvas.Handle,0,0,largeurCell,HauteurCell, // destination avec mise à l'échelle
|
||||
// formprinc.Image9feux.Canvas.Handle,0,0,50,90,srccopy);
|
||||
formtco.ImageTCO.repaint;
|
||||
// formTCO.ImageTemp.Canvas.Rectangle(0,0,91,91);
|
||||
formTCO.ImageTemp:=formTCO.ImageTemp2;
|
||||
BitBlt(formTCO.ImageTemp.canvas.Handle,0,0,20,20,formTCO.ImageTemp2.canvas.Handle,0,0,SRCCOPY);
|
||||
tco[XClicCell,YClicCell].y:=0;
|
||||
// ne pas convertir l'adresse sinon evt changement du composant et on écrase l'aspect EditAdrElement.Text:=IntToSTR( tco[XClicCell,YClicCell].Adresse);
|
||||
EdittypeImage.Text:=IntToSTR(tco[XClicCell,YClicCell].BImage);
|
||||
Dessin_feu(ImageTCO.Canvas,XClicCell,YClicCell);
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormTCO.ImagePalette30MouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
|
||||
var l,h : integer;
|
||||
//
|
||||
begin
|
||||
l:=Formprinc.Image9feux.width; //57
|
||||
h:=Formprinc.Image9feux.height; //105
|
||||
ImagePalette30.BeginDrag(true);
|
||||
BitBlt(OldBmp.Canvas.Handle,0,0,LargeurCell,HauteurCell,ImageTCO.Canvas.Handle,offsetSourisX,offsetSourisY,SRCCOPY);
|
||||
drag:=true;
|
||||
oldx:=offsetSourisX;oldy:=offsetSourisY;
|
||||
|
||||
@@ -5910,6 +5841,7 @@ begin
|
||||
BandeauMasque:=true;
|
||||
end;
|
||||
|
||||
procedure TFormTCO.ButtonAfficheBandeauClick(Sender: TObject);
|
||||
begin
|
||||
Panel1.Show;
|
||||
ButtonAfficheBandeau.visible:=false;
|
||||
@@ -5918,7 +5850,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure TFormTCO.ImageTCODblClick(Sender: TObject);
|
||||
tjdC : boolean;
|
||||
var Bimage,Adresse,i : integer;
|
||||
tjdC : boolean;
|
||||
begin
|
||||
if affEvt then Affiche('Double clic',clYellow);
|
||||
@@ -6363,14 +6295,14 @@ var oriente,piedFeu : integer;
|
||||
if actualize then exit;
|
||||
if TCO[XClicCell,YClicCell].Bimage=30 then
|
||||
begin
|
||||
TCO_modifie:=true;
|
||||
actualise; // met à jour la fenetre de config de la cellule
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormTCO.Signalgauchedelavoie1Click(Sender: TObject);
|
||||
begin
|
||||
signalG;
|
||||
TCO[XClicCell,YClicCell].PiedFeu:=1;
|
||||
Affiche_TCO;
|
||||
TCO_modifie:=true;
|
||||
actualise; // met à jour la fenetre de config de la cellule
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormTCO.Signalgauchedelavoie1Click(Sender: TObject);
|
||||
begin
|
||||
signalG;
|
||||
end;
|
||||
@@ -6392,8 +6324,8 @@ begin
|
||||
if tco[XClicCell,YClicCell].Bimage=30 then
|
||||
begin
|
||||
PopUpMenu1.Items[6].Enabled:=true;
|
||||
begin
|
||||
PopUpMenu1.Items[6][0].checked:=false;
|
||||
oriente:=tco[XClicCell,YClicCell].Feuoriente;
|
||||
if oriente=1 then
|
||||
begin
|
||||
PopUpMenu1.Items[6][0].checked:=false;
|
||||
PopUpMenu1.Items[6][1].checked:=false;
|
||||
@@ -6765,9 +6697,42 @@ begin
|
||||
begin
|
||||
change_couleur_fond;
|
||||
end;
|
||||
|
||||
|
||||
procedure TFormTCO.FormKeyPress(Sender: TObject; var Key: Char);
|
||||
begin
|
||||
if affevt then Affiche('TCO.FormKeyPress',clOrange);
|
||||
end;
|
||||
|
||||
procedure TFormTCO.ImagePalette1MouseDown(Sender: TObject;Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||
begin
|
||||
debut_drag(ImagePalette1);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
procedure TFormTCO.FormDragOver(Sender, Source: TObject; X, Y: Integer;
|
||||
State: TDragState; var Accept: Boolean);
|
||||
begin
|
||||
accept:=true;
|
||||
end;
|
||||
|
||||
procedure TFormTCO.EditTypeImageChange(Sender: TObject);
|
||||
var Bimage,erreur : integer;
|
||||
begin
|
||||
if clicTCO or not(formConfCellTCOAff) then exit;
|
||||
if affevt then Affiche('TCO evt editTypeImageChange',clorange);
|
||||
if actualize then exit;
|
||||
Val(EditTypeImage.Text,Bimage,erreur);
|
||||
if (erreur<>0) or not(Bimage in[0..22,24..25,30,31]) then
|
||||
begin
|
||||
exit;
|
||||
end;
|
||||
TCO_modifie:=true;
|
||||
tco[XClicCell,YClicCell].Bimage:=Bimage;
|
||||
formConfCellTCO.EditTypeImage.Text:=intToSTR(Bimage);
|
||||
actualise; // pour mise à jour de l'image de la fenetre FormConfCellTCO
|
||||
efface_entoure;
|
||||
affiche_cellule(XClicCell,YClicCell);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user