Edit7_ctl:getText(),(A, Stoimost1), (B, Stoimost2), (C, Stoimost3), (D, Stoimost4), (E, Stoimost5), (F, Stoimost6), (G, Stoimost7), (H, Stoimost8),=Stoimost1+Stoimost2+Stoimost3+Stoimost4+Stoimost5+Stoimost6+Stoimost7+Stoimost8,=toString(Stoimost),_ctl:setText(Summa),!.
onPushButtonClick (_Source)=button: defaultAction ().
Тепер при натисканні кнопки «Вивести вартість» у поле Edit буде виводиться вартість конфігурації комп'ютера.
5. Опис роботи програми
При запуску програми Build? Execute (Ctrl + F5) з'являється вікно. При натисканні клавіші F7 (File? New) з'являється вікно форми sostavPC.
Код до пункту File New в TaskWindow.pro:
: window: menuItemListener. (_ Source, _MenuTag): -=sostavPC: new (_Source) ,: show ().
Примітка: при виборі пункту File New відобразити вміст форми sostavPC на екран.
Для вибору пристроїв використовуються поля зі списком - listEdit_ctl. Щоб при завантаженні форми варіанти для вибору пристрою відразу з'являлися в списку, використовується предикат onShow. Його код:
predicates: window: showListener. (_ Source, _Data):-=listEdit_ctl:tryGetVpiWindow(),=listEdit1_ctl:tryGetVpiWindow(),=listEdit4_ctl:tryGetVpiWindow(),=listEdit2_ctl:tryGetVpiWindow(),=listEdit6_ctl:tryGetVpiWindow(),=listEdit3_ctl:tryGetVpiWindow(),=listEdit7_ctl:tryGetVpiWindow(),=listEdit5_ctl:tryGetVpiWindow(),!,:lboxAdd (Mainboard, [«ASUSTeK DSBF-D/SAS/2GBL (RTL) Dual Socket771 lt; i5000P gt;», «GigaByte GA-P35-DS4 (RTL) Socket775», «INTEL S3000AHV (RTL) Socket775 lt; i3000 gt;»]) ,: lboxAdd (Cpu, [«Intel Xeon X5355 BOX Active or 1U Passive 2.66 gt;», «Intel Pentium 4 3.4», «AMDATHLON - 64 X2 +4600 +»]) ,: lboxAdd (Video, [«Albatron NVidia GeForce4 Ti4200 »,« 512Mb lt; PCI-E gt; DDR Gigabyte GV-NX86T512H (RTL) »,« 768Mb lt; PCI-E gt; DDR MSI MS-V801 NX8800GTX-T2D768E-HD-OC (RTL) »]) ,: lboxAdd ( Ram, [«HYUNDAI/HYNIX DDR-II DIMM 1Gb lt; PC - 5300 gt;», «Corsair lt; TWIN3X2048-1333C9DHX gt; DDR-III DIMM 2Gb lt; PC - 10664 gt;», «Kingmax DDR-II DIMM 2Gb KIT 2 * 1Gb lt; PC - 8500 gt; »]) ,: lboxAdd (Rom, [« RAM amp; DVDR/RW amp; CDRW ASUS DRW - 1814BL »,« RAM amp; DVDR/RW amp; CDRW LG GSA-E50L »,« RAM amp; DVDR/RW amp; CDRW TSST SH-S203D »]) ,: lboxAdd (Power, [« ZALMAN lt; CNPS8700 LED gt; (RTL) Cooler for Socket775/754/939/940/AM2 »,« HighPaq lt; FSC-H004-Silver gt; »,« Glacial Tech lt; Igloo 7320 TC (E) gt; Cooler for Socket AM2/754/939/940/F »]) ,: lboxAdd (Monitor, [« 19 MONITOR Acer AL1916Cs »,« 17 MONITOR 0.20 Samsung SyncMaster 793DF »,« 17 'MONITOR ASUS VB171D BK »]) ,: lboxAdd (Hdd, [« 750.0 Gb SATA-II 300 Hitachi 7200rpm »,« 250 Gb SATA-II 300 Seagate Barracuda 7200rpm »,« 500 Gb SATA-II 300 Western Digital 7200rpm »]).
onShow (_, _).
Після того як вибрані всі пристрої треба натиснути на кнопку «Вивести вартість», після цього в полі cost_edit_ctl виводиться вартість конфігурації.
Оброблювач кнопки «Вивести вартість»:
predicates
onPushButtonClick: button: clickResponder.
clauses (_Source)=button: defaultAction: -=listEdit_ctl: getText (),=listEdit1_ctl: getText (),=listEdit2_ctl:getText(),=listEdit3_ctl:getText(),=listEdit4_ctl:getText(),=listEdit5_ctl:getText(),=listEdit6_ctl:getText(),=listEdit7_ctl:getText(),(A, Stoimost1), (B, Stoimost2), (C, Stoimost3), (D, Stoimost4), (E, Stoimost5), (F, Stoimost6), (G, Stoimost7), (H, Stoimost8),=Stoimost1+Stoimost2+Stoimost3+Stoimost4+Stoimost5+Stoimost6+Stoimost7+Stoimost8,=toString(Stoimost),_ctl:setText(Summa),!.(_Source) =Button: defaultAction ().
6. Керівництво користувача
1) Для запуску програми вибрати на панелі завдань команду Build? Execute (запуск) або натиснути клавіші Ctrl + F5. На екрані з'явиться вікно:
. Натисніть File? New або клавішу F7 і з'явиться форма:
3) Виберіть з випадаючих списків потрібні пристрої:
) Натисніть кнопку «Вивести вартість», щоб дізнатися вартість конфігурації комп'ютера:
Висновок
У цій роботі були використані і представлені основні можливості мови програмування Visual Prolog v. 7.4 для написання програми по вибору складу ПК. Visual Prolog v. 7.4 надає розробнику багаті можливості по створенню подібних програм.
Список літератури
1) Костров Б.В., Ручкин В.М., Фулін В.А...