Advertisement
mixster

Untitled

Jun 28th, 2010
391
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.63 KB | None | 0 0
  1. program MSIForm;
  2.  
  3. const
  4.  
  5.  
  6. PANEL_COUNT = 5;
  7. PANEL_1 = 0;
  8. PANEL_2 = 1;
  9. PANEL_3 = 2;
  10. PANEL_4 = 3;
  11. PANEL_5 = 4;
  12.  
  13.  
  14. IMG_COUNT = 23;
  15. // Used in frmMain
  16. IMG_BGND = 0;
  17. IMG_X_NORM = 1;
  18. IMG_Q_NORM = 2;
  19. IMG_LOAD_TAB_NORM = 3;
  20. IMG_SAVE_TAB_NORM = 4;
  21. IMG_TAB_NORM_1 = 5;
  22. IMG_TAB_NORM_2 = 6;
  23. IMG_TAB_NORM_3 = 7;
  24. IMG_TAB_NORM_4 = 8;
  25.  
  26. IMG_LOC_MAP = 9;
  27. IMG_LOC_NAV = 10;
  28. IMG_LOC_EXIT_NORM = 11;
  29. IMG_LOC_BORD_TOP = 12;
  30. IMG_LOC_BORD_BOTTOM = 13;
  31. IMG_LOC_BORD_LEFT = 14;
  32. IMG_LOC_BORD_RIGHT = 15;
  33. IMG_LOC_BOX_TOP = 16;
  34. IMG_LOC_BOX_LEFT = 17;
  35. IMG_LOC_BOX_RIGHT = 18;
  36. IMG_LOC_BOX_BOTTOM = 19;
  37.  
  38. // Used in Panel 0 (Is also used for frmMain)
  39. IMG_LOC_ICON_NORM = 20;
  40. IMG_LOC_LABEL = 21;
  41. IMG_TAB_HINT = 22;
  42.  
  43. // Used in Panel 1
  44.  
  45. // Used in Panel 2
  46.  
  47. // Used in Panel 3
  48.  
  49. // Used in Panel 4
  50.  
  51. BITMAP_COUNT = 31;
  52. BGND = 0;
  53. X_NORM = 1;
  54. X_HOVER = 2;
  55. Q_NORM = 3;
  56. Q_HOVER = 4;
  57. LOAD_TAB_NORM = 5;
  58. LOAD_TAB_HOVER = 6;
  59. SAVE_TAB_NORM = 7;
  60. SAVE_TAB_HOVER = 8;
  61. TAB_NORM_1 = 9;
  62. TAB_NORM_2 = 10;
  63. TAB_NORM_3 = 11;
  64. TAB_NORM_4 = 12;
  65. TAB_HOVER_1 = 13;
  66. TAB_HOVER_2 = 14;
  67. TAB_HOVER_3 = 15;
  68. TAB_HOVER_4 = 16;
  69. LOC_ICON_NORM = 17;
  70. LOC_ICON_HOVER = 18;
  71. LOC_MAP = 19;
  72. LOC_NAV = 20;
  73. LOC_EXIT_NORM = 21;
  74. LOC_EXIT_HOVER = 22;
  75. LOC_BORD_TOP = 23;
  76. LOC_BORD_BOTTOM = 24;
  77. LOC_BORD_LEFT = 25;
  78. LOC_BORD_RIGHT = 26;
  79. LOC_BOX_TOP = 27;
  80. LOC_BOX_LEFT = 28;
  81. LOC_LABEL = 29;
  82. TAB_HINT = 30;
  83.  
  84. var
  85. frmMain: TForm;
  86. time: TTimer;
  87.  
  88. tImages: Array[0..IMG_COUNT - 1] of TImage;
  89.  
  90. frmBitmaps: Array [0..BITMAP_COUNT - 1] of Integer;
  91.  
  92. isActiveImage: Array[0..IMG_COUNT - 1] of Boolean;
  93. isLeftTab: Array[IMG_TAB_NORM_1..IMG_TAB_NORM_4] of Boolean;
  94. isActivePanel: Array[0..PANEL_COUNT - 1] of Boolean;
  95.  
  96. MapDragStartX, MapDragStartY: Integer;
  97.  
  98.  
  99. procedure OnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  100. var
  101. BoundL, BoundT: Extended;
  102. begin
  103. case sender of
  104. tImages[IMG_LOC_MAP]:
  105. begin
  106. MapDragStartX := x;
  107. MapDragStartY := y;
  108. end;
  109. tImages[IMG_LOC_NAV]:
  110. begin
  111. GetMousePos(x, y);
  112. with tImages[IMG_LOC_BOX_TOP] do
  113. SetBounds({L} x + (x - left), {T} y + (y - top), {W} 83, {H} 1);
  114.  
  115. if tImages[IMG_LOC_BOX_TOP].Left < 376 then
  116. tImages[IMG_LOC_BOX_TOP].Left := 376;
  117. if tImages[IMG_LOC_BOX_TOP].Top < 216 then
  118. tImages[IMG_LOC_BOX_TOP].Top := 216;
  119. if tImages[IMG_LOC_BOX_TOP].Left > 494 then
  120. tImages[IMG_LOC_BOX_TOP].Left := 494;
  121. if tImages[IMG_LOC_BOX_TOP].Top > 322 then
  122. tImages[IMG_LOC_BOX_TOP].Top := 322;
  123.  
  124. with tImages[IMG_LOC_BOX_LEFT] do
  125. SetBounds({L} tImages[IMG_LOC_BOX_TOP].Left, {T} tImages[IMG_LOC_BOX_TOP].Top + 1, {W} 1, {H} 55);
  126. with tImages[IMG_LOC_BOX_RIGHT] do
  127. SetBounds({L} tImages[IMG_LOC_BOX_TOP].Left + 83, {T} tImages[IMG_LOC_BOX_TOP].Top + 1, {W} 1, {H} 55);
  128. with tImages[IMG_LOC_BOX_BOTTOM] do
  129. SetBounds({L} tImages[IMG_LOC_BOX_TOP].Left, {T} tImages[IMG_LOC_BOX_TOP].Top + 55, {W} 83, {H} 1);
  130.  
  131. BoundL := -(x - 155 - 376) * 7.234;
  132. BoundT := -(y - 140 - 216) * 7.234;
  133.  
  134. tImages[IMG_LOC_MAP].Left := Round(BoundL);
  135. tImages[IMG_LOC_MAP].Top := Round(BoundT);
  136.  
  137. if tImages[IMG_LOC_MAP].Left > 0 then
  138. tImages[IMG_LOC_MAP].Left := 0;
  139. if tImages[IMG_LOC_MAP].Top > 0 then
  140. tImages[IMG_LOC_MAP].Top := 0;
  141. if tImages[IMG_LOC_MAP].Left < -345 then
  142. tImages[IMG_LOC_MAP].Left := -345;
  143. if tImages[IMG_LOC_MAP].Top < -354 then
  144. tImages[IMG_LOC_MAP].Top := -354;
  145. end;
  146. end;
  147. end;
  148.  
  149. var sended: Tobject;
  150. move, accel, cons: integer;
  151. procedure TimerTabClick(Sender: TObject);
  152. var
  153. senderTab, i, CurrentPanel: Integer;
  154. begin
  155. for i := IMG_TAB_NORM_1 to IMG_TAB_NORM_4 do
  156. if (Sended = tImages[i]) then
  157. senderTab := i;
  158.  
  159. if not(isLeftTab[senderTab]) then
  160. begin
  161. for i := IMG_TAB_NORM_1 to senderTab do
  162. begin
  163. if not(isLeftTab[i]) then
  164. begin
  165. tImages[i].Left := tImages[i].Left - accel;
  166. if move = 0 then
  167. cons := tImages[i].Left;
  168. accel := accel + 2;
  169. move:= move + accel;
  170. end;
  171. if move >= 380 then
  172. begin
  173. tImages[i].Left := cons - 380;
  174. isLeftTab[i] := True;
  175. move := 0;
  176. time.ENABLED := false;
  177. end;
  178. end;
  179. CurrentPanel := sendertab - IMG_TAB_NORM_1 + 1;
  180. end else
  181. begin
  182. for i := IMG_TAB_NORM_4 downto senderTab do
  183. begin
  184. if (isLeftTab[i]) then
  185. begin
  186. tImages[i].Left := tImages[i].Left + accel;
  187. if move = 0 then
  188. cons := tImages[i].Left;
  189. accel := accel + 2;
  190. move := move + accel;
  191. end;
  192. if move >= 380 then
  193. begin
  194. tImages[i].Left := cons + 380;
  195. isLeftTab[i] := False;
  196. move := 0;
  197. time.ENABLED := false;
  198. end;
  199. end;
  200. CurrentPanel := sendertab - IMG_TAB_NORM_1;
  201. end;
  202.  
  203. for i := PANEL_1 to PANEL_5 do
  204. begin
  205. if i = CurrentPanel then
  206. isActivePanel[i] := True
  207. else
  208. isActivePanel[i] := False;
  209. end;
  210.  
  211. WriteLn(CurrentPanel);
  212.  
  213. for i := IMG_LOC_ICON_NORM to IMG_TAB_HINT do
  214. tImages[i].Visible := isActivePanel[PANEL_1];
  215. end;
  216.  
  217. procedure TabClick(Sender: TObject);
  218. begin
  219. if not time.ENABLED then
  220. begin
  221. accel := 0;
  222. time.enabled := not time.enabled;
  223. sended := Sender;
  224. end;
  225. end;
  226.  
  227. procedure LocViewer(Sender: TObject);
  228. var i: Integer;
  229. begin
  230. case Sender of
  231. tImages[IMG_LOC_ICON_NORM]:
  232. begin
  233. for i := IMG_LOC_MAP to IMG_LOC_BOX_BOTTOM do
  234. tImages[i].Visible := True;
  235. for i := IMG_LOC_ICON_NORM to IMG_TAB_HINT do
  236. tImages[i].Visible := False;
  237. end;
  238.  
  239. tImages[IMG_LOC_EXIT_NORM]:
  240. begin
  241. for i := IMG_LOC_MAP to IMG_LOC_BOX_BOTTOM do
  242. tImages[i].Visible := False;
  243. for i := IMG_LOC_ICON_NORM to IMG_TAB_HINT do
  244. tImages[i].Visible := isActivePanel[PANEL_1];
  245. end;
  246. end;
  247. end;
  248.  
  249. procedure Clicked(Sender: TObject);
  250. var
  251. i: Integer;
  252. begin
  253. for i := 0 to BITMAP_COUNT - 1 do
  254. FreeBitmap(frmBitmaps[i]);
  255. frmMain.ModalResult := mrOk;
  256. end;
  257.  
  258. procedure MouseMoved(Sender: TObject; Shift: TShiftState; x, y: Integer);
  259. var
  260. hi, i, bmp, xdif, ydif: Integer;
  261. BoundL, BoundT: Extended;
  262. imgSwap, bmpArr, imgArr: Array of Integer;
  263. begin
  264. case Sender of
  265. tImages[IMG_BGND], tImages[IMG_LOC_MAP]:
  266. begin
  267. bmpArr := [ X_NORM, Q_NORM, LOAD_TAB_NORM,
  268. SAVE_TAB_NORM, TAB_NORM_1, TAB_NORM_2,
  269. TAB_NORM_3, TAB_NORM_4, LOC_ICON_NORM, LOC_EXIT_NORM ]
  270.  
  271. imgArr := [ IMG_X_NORM, IMG_Q_NORM, IMG_LOAD_TAB_NORM,
  272. IMG_SAVE_TAB_NORM, IMG_TAB_NORM_1, IMG_TAB_NORM_2,
  273. IMG_TAB_NORM_3, IMG_TAB_NORM_4, IMG_LOC_ICON_NORM, IMG_LOC_EXIT_NORM ]
  274.  
  275. hi := High(bmpArr);
  276. for i := 0 to hi do
  277. begin
  278. if (not isActiveImage[imgArr[i]]) then
  279. Continue;
  280.  
  281. bmp := frmBitmaps[bmpArr[i]];
  282. DrawBitmap(bmp,tImages[imgArr[i]].Canvas,0,0);
  283. isActiveImage[imgArr[i]] := False;
  284. end;
  285. end;
  286.  
  287. tImages[IMG_X_NORM], tImages[IMG_Q_NORM], tImages[IMG_LOAD_TAB_NORM], tImages[IMG_SAVE_TAB_NORM],
  288. tImages[IMG_TAB_NORM_1], tImages[IMG_TAB_NORM_2], tImages[IMG_TAB_NORM_3], tImages[IMG_TAB_NORM_4],
  289. tImages[IMG_LOC_ICON_NORM], tImages[IMG_LOC_EXIT_NORM]:
  290.  
  291. begin
  292. case Sender of
  293. tImages[IMG_X_NORM]:
  294. imgSwap := [IMG_X_NORM, frmBitmaps[X_HOVER]];
  295.  
  296. tImages[IMG_Q_NORM]:
  297. imgSwap := [IMG_Q_NORM, frmBitmaps[Q_HOVER]];
  298.  
  299. tImages[IMG_LOAD_TAB_NORM]:
  300. imgSwap := [IMG_LOAD_TAB_NORM, frmBitmaps[LOAD_TAB_HOVER]];
  301.  
  302. tImages[IMG_SAVE_TAB_NORM]:
  303. imgSwap := [IMG_SAVE_TAB_NORM, frmBitmaps[SAVE_TAB_HOVER]];
  304.  
  305. tImages[IMG_TAB_NORM_1]:
  306. imgSwap := [IMG_TAB_NORM_1, frmBitmaps[TAB_HOVER_1]];
  307.  
  308. tImages[IMG_TAB_NORM_2]:
  309. imgSwap := [IMG_TAB_NORM_2, frmBitmaps[TAB_HOVER_2]];
  310.  
  311. tImages[IMG_TAB_NORM_3]:
  312. imgSwap := [IMG_TAB_NORM_3, frmBitmaps[TAB_HOVER_3]];
  313.  
  314. tImages[IMG_TAB_NORM_4]:
  315. imgSwap := [IMG_TAB_NORM_4, frmBitmaps[TAB_HOVER_4]];
  316.  
  317. tImages[IMG_LOC_ICON_NORM]:
  318. imgSwap := [IMG_LOC_ICON_NORM, frmBitmaps[LOC_ICON_HOVER]];
  319.  
  320. tImages[IMG_LOC_EXIT_NORM]:
  321. imgSwap := [IMG_LOC_EXIT_NORM, frmBitmaps[LOC_EXIT_HOVER]];
  322. end;
  323.  
  324. if (isActiveImage[imgSwap[0]]) then
  325. Exit;
  326.  
  327. DrawBitmap(imgSwap[1],tImages[imgSwap[0]].Canvas,0,0);
  328. isActiveImage[imgSwap[0]] := True;
  329.  
  330.  
  331.  
  332. bmpArr := [ X_NORM, Q_NORM, LOAD_TAB_NORM,
  333. SAVE_TAB_NORM, TAB_NORM_1, TAB_NORM_2,
  334. TAB_NORM_3, TAB_NORM_4, LOC_ICON_NORM, LOC_EXIT_NORM ]
  335.  
  336. imgArr := [ IMG_X_NORM, IMG_Q_NORM, IMG_LOAD_TAB_NORM,
  337. IMG_SAVE_TAB_NORM, IMG_TAB_NORM_1, IMG_TAB_NORM_2,
  338. IMG_TAB_NORM_3, IMG_TAB_NORM_4, IMG_LOC_ICON_NORM, IMG_LOC_EXIT_NORM ]
  339.  
  340. hi := High(bmpArr);
  341. for i := 0 to hi do
  342. begin
  343. if (not isActiveImage[imgArr[i]]) then
  344. Continue;
  345.  
  346. if (i = imgSwap[0] - 1) then // Must be chaged if orders are chaNged
  347. Continue;
  348. if imgSwap[0] = IMG_LOC_EXIT_NORM then
  349. if (i = imgSwap[0] - 2) then
  350. Continue;
  351. if imgSwap[0] = IMG_LOC_ICON_NORM then
  352. if (i = imgSwap[0] - 12) then
  353. Continue;
  354.  
  355.  
  356. bmp := frmBitmaps[bmpArr[i]];
  357. DrawBitmap(bmp,tImages[imgArr[i]].Canvas,0,0);
  358. isActiveImage[imgArr[i]] := False;
  359. end;
  360.  
  361. end;
  362. end;
  363. case sender of
  364. tImages[IMG_LOC_MAP]:
  365. begin
  366. if not IsMouseButtonDown(1) then exit;
  367. xdif := x - MapDragStartX;
  368. ydif := y - MapDragStartY;
  369. {if (xdif < 5) and (ydif < 5) then
  370. begin
  371. GetMousePos(x, y);
  372. tImages[IMG_LOC_MAP].Left := tImages[IMG_LOC_MAP].Left - (x - 300 - 100);
  373. tImages[IMG_LOC_MAP].Top := tImages[IMG_LOC_MAP].Top - (y - 200 - 100);
  374. end else
  375. begin}
  376. tImages[IMG_LOC_MAP].Left := tImages[IMG_LOC_MAP].Left + xdif;
  377. tImages[IMG_LOC_MAP].Top := tImages[IMG_LOC_MAP].Top + ydif;
  378. //end;
  379.  
  380. if tImages[IMG_LOC_MAP].Left > 0 then
  381. tImages[IMG_LOC_MAP].Left := 0;
  382. if tImages[IMG_LOC_MAP].Top > 0 then
  383. tImages[IMG_LOC_MAP].Top := 0;
  384. if tImages[IMG_LOC_MAP].Left < -854 then
  385. tImages[IMG_LOC_MAP].Left := -854;
  386. if tImages[IMG_LOC_MAP].Top < -765 then
  387. tImages[IMG_LOC_MAP].Top := -765;
  388.  
  389. {1454 201
  390. 1165 161
  391.  
  392. 600 83
  393. 400 55
  394.  
  395. 7.234
  396. }
  397.  
  398. BoundL := -tImages[IMG_LOC_MAP].Left / 7.234 + 376;
  399. BoundT := -tImages[IMG_LOC_MAP].Top / 7.234 + 216;
  400.  
  401.  
  402. with tImages[IMG_LOC_BOX_TOP] do
  403. SetBounds({L} Round(BoundL), {T} Round(BoundT), {W} 83, {H} 1);
  404.  
  405. if tImages[IMG_LOC_BOX_TOP].Left < 376 then
  406. tImages[IMG_LOC_BOX_TOP].Left := 376;
  407. if tImages[IMG_LOC_BOX_TOP].Top < 216 then
  408. tImages[IMG_LOC_BOX_TOP].Top := 216;
  409. if tImages[IMG_LOC_BOX_TOP].Left > 494 then
  410. tImages[IMG_LOC_BOX_TOP].Left := 494;
  411. if tImages[IMG_LOC_BOX_TOP].Top > 322 then
  412. tImages[IMG_LOC_BOX_TOP].Top := 322;
  413.  
  414. with tImages[IMG_LOC_BOX_LEFT] do
  415. SetBounds({L} tImages[IMG_LOC_BOX_TOP].Left, {T} tImages[IMG_LOC_BOX_TOP].Top + 1, {W} 1, {H} 55);
  416. with tImages[IMG_LOC_BOX_RIGHT] do
  417. SetBounds({L} tImages[IMG_LOC_BOX_TOP].Left + 83, {T} tImages[IMG_LOC_BOX_TOP].Top + 1, {W} 1, {H} 55);
  418. with tImages[IMG_LOC_BOX_BOTTOM] do
  419. SetBounds({L} tImages[IMG_LOC_BOX_TOP].Left, {T} tImages[IMG_LOC_BOX_TOP].Top + 55, {W} 83, {H} 1);
  420. end;
  421. tImages[IMG_LOC_NAV]:
  422. begin
  423. if not IsMouseButtonDown(1) then exit;
  424. GetMousePos(x, y);
  425. with tImages[IMG_LOC_BOX_TOP] do
  426. SetBounds({L} x - 55 - 100, {T} y - 40 - 100, {W} 83, {H} 1);
  427.  
  428. if tImages[IMG_LOC_BOX_TOP].Left < 376 then
  429. tImages[IMG_LOC_BOX_TOP].Left := 376;
  430. if tImages[IMG_LOC_BOX_TOP].Top < 216 then
  431. tImages[IMG_LOC_BOX_TOP].Top := 216;
  432. if tImages[IMG_LOC_BOX_TOP].Left > 494 then
  433. tImages[IMG_LOC_BOX_TOP].Left := 494;
  434. if tImages[IMG_LOC_BOX_TOP].Top > 322 then
  435. tImages[IMG_LOC_BOX_TOP].Top := 322;
  436.  
  437. with tImages[IMG_LOC_BOX_LEFT] do
  438. SetBounds({L} tImages[IMG_LOC_BOX_TOP].Left, {T} tImages[IMG_LOC_BOX_TOP].Top + 1, {W} 1, {H} 55);
  439. with tImages[IMG_LOC_BOX_RIGHT] do
  440. SetBounds({L} tImages[IMG_LOC_BOX_TOP].Left + 83, {T} tImages[IMG_LOC_BOX_TOP].Top + 1, {W} 1, {H} 55);
  441. with tImages[IMG_LOC_BOX_BOTTOM] do
  442. SetBounds({L} tImages[IMG_LOC_BOX_TOP].Left, {T} tImages[IMG_LOC_BOX_TOP].Top + 55, {W} 83, {H} 1);
  443.  
  444. BoundL := -(x - 155 - 376) * 7.234;
  445. BoundT := -(y - 140 - 216) * 7.234;
  446.  
  447. tImages[IMG_LOC_MAP].Left := Round(BoundL);
  448. tImages[IMG_LOC_MAP].Top := Round(BoundT);
  449.  
  450. if tImages[IMG_LOC_MAP].Left > 0 then
  451. tImages[IMG_LOC_MAP].Left := 0;
  452. if tImages[IMG_LOC_MAP].Top > 0 then
  453. tImages[IMG_LOC_MAP].Top := 0;
  454. if tImages[IMG_LOC_MAP].Left < -854 then
  455. tImages[IMG_LOC_MAP].Left := -854;
  456. if tImages[IMG_LOC_MAP].Top < -765 then
  457. tImages[IMG_LOC_MAP].Top := -765;
  458. end;
  459. end;
  460. end;
  461.  
  462. procedure MouseMoveEvents(Sender: TObject; Shift: TShiftState; x, y: Integer);
  463. begin
  464.  
  465. end;
  466.  
  467. procedure OnClickEvents(Sender: TObject);
  468. begin
  469.  
  470. end;
  471.  
  472. procedure InitForm;
  473. var
  474. Image, bmp: Integer;
  475. hi, i: Integer;
  476. bmpArr: TStringArray;
  477. xy, wh: TPointArray;
  478. visibl: TBoolArray;
  479. begin
  480. bmpArr := ['BGND','X_NORM','X_HOVER','Q_NORM','Q_HOVER','LOAD_TAB_NORM','LOAD_TAB_HOVER','SAVE_TAB_NORM','SAVE_TAB_HOVER','TAB_NORM_1','TAB_NORM_2','TAB_NORM_3','TAB_NORM_4','TAB_HOVER_1','TAB_HOVER_2','TAB_HOVER_3','TAB_HOVER_4','LOC_ICON_NORM','LOC_ICON_HOVER','LOC_MAP','LOC_NAV','LOC_EXIT_NORM','LOC_EXIT_HOVER','LOC_BORD_TOP','LOC_BORD_BOTTOM','LOC_BORD_LEFT','LOC_BORD_RIGHT','LOC_BOX_TOP','LOC_BOX_LEFT','LOC_LABEL','TAB_HINT'];
  481. hi := High(frmBitmaps);
  482. for i := 0 to hi do
  483. frmBitmaps[i] := LoadBitmap(ScriptPath + 'Bitmaps\' + bmpArr[i] + '.png');
  484.  
  485. {
  486. MAIN FORM
  487. }
  488.  
  489. frmMain := TForm.Create(nil);
  490. with frmMain do
  491. begin
  492. SetBounds({L} 100, {T} 100, {W} 600, {H} 400);
  493. //Position := poScreenCenter;
  494. //Width := 600;
  495. //Height := 400;
  496. BorderStyle := bsNone;
  497. end;
  498.  
  499. time := TTimer.Create(frmMain);
  500. time.ONTIMER := @TimerTabClick;
  501. time.INTERVAL := 10;
  502. time.ENABLED := false;
  503.  
  504. xy := [Point(0,0),Point(575,7),Point(557,7),Point(7,69),Point(81,69),Point(390,100),Point(440,100),Point(490,100),Point(540,100),Point(179,204),Point(-300,0),Point(369,209),Point(475,7),Point(0,0), Point(0,393), Point(0,7), Point(593,7), Point(Round(-tImages[IMG_LOC_MAP].Left / 7.234 + 376), Round(-tImages[IMG_LOC_MAP].Top / 7.234 + 216)), Point(tImages[IMG_LOC_BOX_TOP].Left, tImages[IMG_LOC_BOX_TOP].Top + 1), Point(tImages[IMG_LOC_BOX_TOP].Left + 83, tImages[IMG_LOC_BOX_TOP].Top + 1), Point(tImages[IMG_LOC_BOX_TOP].Left, tImages[IMG_LOC_BOX_TOP].Top + 55),} Point(156,250), Point(208,379)];
  505. wh := [Point(600,400),Point(18,18),Point(18,18),Point(74,22),Point(74,22),Point(50,290),Point(50,290),Point(50,290),Point(50,290),Point(40,41),Point(1454,1165),Point(215,175),Point(119,22),Point(600,7),Point(600,7), Point(7,386), Point(7,386), Point(83, 1), Point(1,55), Point(1,55), Point(83,1), Point(87,11), Point(174,10)];
  506. visibl := [true, true,true,true,true, true, true, true,true, false, false, false, false, false, false, false, false, false, false, false, true, true];
  507.  
  508. for Image := 0 to IMG_COUNT - 1 do
  509. begin
  510. tImages[Image] := TImage.Create(frmMain);
  511. with tImages[Image] do
  512. begin
  513. Parent := frmMain;
  514. SetBounds(xy[i].x, xy[i].y, wh[i].x, wh[i].y);
  515. if i = 0 then
  516. bmp := frmBitmaps[i]
  517. else
  518. bmp := frmBitmaps[2 * i - 1];
  519. OnMouseMove := @MouseMoveEvents;
  520. OnClick := @OnClickEvents;
  521. isActiveImage[i] := False;
  522. if (i > IMG_TAB_NORM_1) and (i < IMG_TAB_NORM_4) then
  523. isLeftTab[i] := false;
  524. visible := Visibl[i];
  525. end;
  526. DrawBitmap(bmp, tImages[Image].canvas, 0, 0);
  527. end;
  528.  
  529. isActivePanel[Panel_1] := True;
  530. isActivePanel[Panel_2] := False;
  531. isActivePanel[Panel_3] := False;
  532. isActivePanel[Panel_4] := False;
  533. isActivePanel[Panel_5] := False;
  534.  
  535.  
  536. end;
  537.  
  538. procedure SafeInitForm;
  539. var
  540. v: TVariantArray;
  541. begin
  542. setarraylength(V, 0);
  543. ThreadSafeCall('InitForm', v);
  544. end;
  545.  
  546. procedure ShowFormModal;
  547. begin
  548. frmMain.ShowModal;
  549. end;
  550.  
  551. procedure SafeShowFormModal;
  552. var
  553. v: TVariantArray;
  554. begin
  555. setarraylength(V, 0);
  556. ThreadSafeCall('ShowFormModal', v);
  557. end;
  558.  
  559. var finall: integer;
  560. begin
  561. try
  562. SafeInitForm;
  563. SafeShowFormModal;
  564. finally
  565. for finall := 0 to BITMAP_COUNT - 1 do
  566. FreeBitmap(frmBitmaps[finall]);
  567. //except
  568. // Writeln(ExceptionToString(ExceptionType, ExceptionParam));
  569. end;
  570. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement