Advertisement
Guest User

cell_component

a guest
Mar 6th, 2013
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.02 KB | None | 0 0
  1. unit Cell_Component;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, StdCtrls, pngimage, ExtCtrls;
  8.  
  9. type
  10. TBattery = class(TFrame)
  11. BatteryIcon: TImage;
  12. DeleteIcon: TImage;
  13. ValueEdit: TEdit;
  14. VoltLabel: TLabel;
  15. BatteryTimer: TTimer;
  16. Connector1: TImage;
  17. Connector2: TImage;
  18. OhmEdit: TEdit;
  19. OhmLabel: TLabel;
  20. procedure DeleteIconMouseDown(Sender: TObject; Button: TMouseButton;
  21. Shift: TShiftState; X, Y: Integer);
  22. procedure DeleteIconMouseMove(Sender: TObject; Shift: TShiftState; X,
  23. Y: Integer);
  24. procedure DeleteIconMouseLeave(Sender: TObject);
  25. procedure BatteryIconMouseDown(Sender: TObject; Button: TMouseButton;
  26. Shift: TShiftState; X, Y: Integer);
  27. procedure BatteryIconMouseUp(Sender: TObject; Button: TMouseButton;
  28. Shift: TShiftState; X, Y: Integer);
  29. procedure BatteryTimerTimer(Sender: TObject);
  30. procedure Connector2MouseMove(Sender: TObject; Shift: TShiftState; X,
  31. Y: Integer);
  32. procedure Connector1MouseMove(Sender: TObject; Shift: TShiftState; X,
  33. Y: Integer);
  34. procedure Connector1MouseLeave(Sender: TObject);
  35. procedure Connector2MouseLeave(Sender: TObject);
  36. procedure DeleteIconClick(Sender: TObject);
  37. procedure Connector1Click(Sender: TObject);
  38. procedure Connector2Click(Sender: TObject);
  39. private
  40. public
  41. Volts,Resistance: Extended;
  42. P: TPoint;
  43. ID:Integer;
  44.  
  45. end;
  46.  
  47. var
  48. ComponentID, ComponentID2:Integer;
  49. Connected, ConnectedUp, ConnectedDown, Parralel, FirstUp,
  50. FirstDown, Connected1,Connected2: Boolean;
  51.  
  52.  
  53. Procedure Register;
  54.  
  55. implementation
  56.  
  57. uses Circuits;
  58.  
  59.  
  60. {$R *.dfm}
  61.  
  62.  
  63. Procedure Register;
  64. begin
  65. RegisterComponents('MyFrames',[TBattery]);
  66. end;
  67.  
  68. Function CheckConnection(UP,DOWN: Boolean):Boolean;
  69. begin
  70. if (UP=True) and (DOWN=True) then
  71. Result := True
  72. Else
  73. Result := False;
  74. end;
  75.  
  76. Procedure AddToList(Up,Down:Boolean);
  77. begin
  78. if CheckConnection(Up,Down) then
  79. begin
  80. LinePoints[Count].Start := Start;
  81. LinePoints[Count].Finish := Finish;
  82. LinePoints[Count].ID := Count;
  83. ComponentID := Count;
  84. Count := Count + 1;
  85. LinePoints[0].Start := LinePoints[0].Start;
  86. end;
  87. end;
  88.  
  89. Procedure AddToArray;
  90. begin
  91. LinePoints[Count].Start := Start;
  92. LinePoints[Count].Finish := Finish;
  93. LinePoints[Count].ID := Count;
  94. ComponentID := Count;
  95. Count := Count + 1;
  96. end;
  97.  
  98. Procedure AddToArrayD;
  99. begin
  100. LinePoints[Count].Start := Start;
  101. LinePoints[Count].Finish := Finish;
  102. LinePoints[Count].ID := Count;
  103. ComponentID2 := Count;
  104. Count := Count + 1;
  105. end;
  106.  
  107. ///// CONNECTORS //////
  108. procedure TBattery.Connector1Click(Sender: TObject);
  109. begin
  110. if ConnectedUp = False then
  111. begin
  112. if ActiveConnection = true then
  113. begin
  114. Finish.X := Left+38;
  115. Finish.Y := Top+30;
  116. //AddToList(ConnectedUp,ConnectedDown);
  117. //DrawLines;
  118. AddToArray;
  119. ConnectedUp := True;
  120. ActiveConnection := False;
  121. Connected1 := True;
  122. FirstUp := False;
  123. end
  124. else
  125. begin
  126. Start.X := Left+38;
  127. Start.Y := Top+30;
  128. FirstUp:= True;
  129. Connected1:=True;
  130. ComponentID:= Count;
  131. ActiveConnection := True;
  132. ConnectedUp := True;
  133. end;
  134. end;
  135. end;
  136.  
  137. procedure TBattery.Connector2Click(Sender: TObject);
  138. begin
  139. if ConnectedDown = False then
  140. begin
  141. if ActiveConnection = true then
  142. begin
  143. Finish.X := Left+38;
  144. Finish.Y := Top+120;
  145. //AddToList(ConnectedUp,ConnectedDown);
  146. //DrawLines;
  147. AddToArrayD;
  148. ConnectedDown := True;
  149. ActiveConnection := False;
  150. Connected2 := True;
  151. FirstDown:=False;
  152. end else
  153. begin
  154. Start.X := Left+38;
  155. Start.Y := Top+120;
  156. FirstDown:= True;
  157. Connected2:=True;
  158. ComponentID2:= Count;
  159. ActiveConnection := True;
  160. ConnectedDown := True;
  161. end;
  162. end;
  163.  
  164. end;
  165.  
  166. procedure TBattery.BatteryIconMouseDown(Sender: TObject; Button: TMouseButton;
  167. Shift: TShiftState; X, Y: Integer);
  168. begin
  169. BatteryTimer.Enabled := True;
  170. end;
  171.  
  172. procedure TBattery.BatteryIconMouseUp(Sender: TObject; Button: TMouseButton;
  173. Shift: TShiftState; X, Y: Integer);
  174. begin
  175. BatteryTimer.Enabled:= False;
  176. end;
  177.  
  178. procedure TBattery.Connector1MouseLeave(Sender: TObject);
  179. begin
  180. Connector1.Picture.LoadFromFile('Connector.png');
  181. end;
  182.  
  183. procedure TBattery.Connector1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
  184. begin
  185. Connector1.Picture.LoadFromFile('Connector Over.png');
  186. end;
  187.  
  188. procedure TBattery.Connector2MouseLeave(Sender: TObject);
  189. begin
  190. Connector2.Picture.LoadFromFile('Connector.png');
  191. end;
  192.  
  193. procedure TBattery.Connector2MouseMove(Sender: TObject; Shift: TShiftState; X,
  194. Y: Integer);
  195. begin
  196. Connector2.Picture.LoadFromFile('Connector Over.png');
  197. end;
  198.  
  199. ///// DELETING /////
  200.  
  201. procedure TBattery.DeleteIconClick(Sender: TObject);
  202. begin
  203. Free;
  204. end;
  205.  
  206. procedure TBattery.DeleteIconMouseDown(Sender: TObject; Button: TMouseButton;
  207. Shift: TShiftState; X, Y: Integer);
  208. begin
  209. DeleteIcon.Picture.LoadFromFile('Delete Down Icon.png');
  210. end;
  211.  
  212. procedure TBattery.DeleteIconMouseLeave(Sender: TObject);
  213. begin
  214. DeleteIcon.Picture.LoadFromFile('Delete Icon.png');
  215. end;
  216.  
  217. procedure TBattery.DeleteIconMouseMove(Sender: TObject; Shift: TShiftState; X,
  218. Y: Integer);
  219. begin
  220. DeleteIcon.Picture.LoadFromFile('Delete Over Icon.png');
  221. end;
  222.  
  223.  
  224. ///// TIMERS /////
  225.  
  226. procedure TBattery.BatteryTimerTimer(Sender: TObject);
  227. begin
  228. GetCursorPos(P);
  229. top := P.Y-50;
  230. left := P.X-35;
  231.  
  232. if Connected1 then
  233. begin
  234. if FirstUp then
  235. begin
  236. LinePoints[ComponentID].Start.X := Cell[ID].Left+35;
  237. LinePoints[ComponentID].Start.Y := Cell[ID].Top;//+30;
  238. end else
  239. begin
  240. LinePoints[ComponentID].Finish.X := Cell[ID].Left+35;
  241. LinePoints[ComponentID].Finish.Y := Cell[ID].Top;//+30;
  242. end;
  243. end;
  244.  
  245. if Connected2 then
  246. begin
  247. if FirstDown then
  248. begin
  249. LinePoints[ComponentID2].Start.X := Cell[ID].Left+35;
  250. LinePoints[ComponentID2].Start.Y := Cell[ID].Top+90;
  251. end else
  252. begin
  253. LinePoints[ComponentID2].Finish.X := Cell[ID].Left+35;
  254. LinePoints[ComponentID2].Finish.Y := Cell[ID].Top+90;
  255. end;
  256. end;
  257.  
  258.  
  259. end;
  260.  
  261. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement