--- /dev/null
+// Redimensionnement du texte des références de tous les composants\r
+\r
+Procedure PCB_ResizeRefDes_All;\r
+Var\r
+ Board : IPCB_Board;\r
+ Comp : IPCB_Component;\r
+ Iterator : IPCB_BoardIterator;\r
+\r
+Begin\r
+ Pcbserver.PreProcess;\r
+\r
+ Board := PCBServer.GetCurrentPCBBoard;\r
+ If Not Assigned(Board) Then\r
+ Begin\r
+ ShowMessage('The Current Document is not a Protel PCB Document.');\r
+ Exit;\r
+ End;\r
+ \r
+ // Setup Board iterator\r
+ Iterator := Board.BoardIterator_Create; \r
+ Iterator.AddFilter_ObjectSet(MkSet(eComponentObject)); \r
+ Iterator.AddFilter_LayerSet(AllLayers); \r
+ Iterator.AddFilter_Method(eProcessAll);\r
+ \r
+ Comp := Iterator.FirstPCBObject;\r
+ While (Comp <> Nil) Do\r
+ Begin\r
+ // On ne modifie pas le numéro du PCB, qui est la référence du logo de compagnie\r
+ If CompareString(Comp.Pattern, 'LOGOCOMPANY', 7) Then\r
+ Begin\r
+ Comp := Iterator.NextPCBObject;\r
+ Continue;\r
+ End;\r
+\r
+ If CompareString(UpperCase(Comp.Pattern), 'MIRE', 4) Then\r
+ Begin\r
+ Comp := Iterator.NextPCBObject;\r
+ Continue;\r
+ End;\r
+\r
+ If CompareString(UpperCase(Comp.Pattern), 'CRACK', 5) Then\r
+ Begin\r
+ Comp := Iterator.NextPCBObject;\r
+ Continue;\r
+ End;\r
+\r
+ // On ne modifie pas les fiducials\r
+ If CompareString(UpperCase(Comp.Pattern), 'FIDG', 4) Then\r
+ Begin\r
+ Comp := Iterator.NextPCBObject;\r
+ Continue;\r
+ End;\r
+\r
+ // On ne modifie pas la légende des couches\r
+ If CompareString(UpperCase(Comp.Pattern), 'LAYERS', 6) Then\r
+ Begin\r
+ Comp := Iterator.NextPCBObject;\r
+ Continue;\r
+ End;\r
+ \r
+ // Call resize function\r
+ ResizeRefDes(Comp);\r
+ \r
+ Comp := Iterator.NextPCBObject;\r
+ End;\r
+ \r
+ Board.BoardIterator_Destroy(Iterator);\r
+ \r
+ Pcbserver.PostProcess;\r
+ Client.SendMessage('PCB:Zoom', 'Action=Redraw', 255, Client.CurrentView);\r
+End;\r