![]() |
Помогите с boolean!!!
Прошу помочь! Я знаю что более нормальная программа работает при использовании булеанов. Тоесть
procedure Init; begin ... end; procedure h; begin init:=true; end; В чём вопрос? У меня подобное компилит без проблем, но на эмуляторе и телефоне тупо вылетает. Я буду очень благодарен если мне обьяснят как осуществить: 1) Прорисовка картинки) 2) При нажатии на обьект (к примеру) иконку, init=true; 3) Init "живёт", пока не нажмут на что-то другое. Заранее спасибо. |
Ответ: Помогите с boolean!!!
Пиши на j2me, тогда подскажу.:p
|
Ответ: Помогите с boolean!!!
эм, компилиться???
инит - процедура, ты ей присваиваешь тру и оно компилится??? полный бред... var init:boolean; т.е. просто переменную создаем, процедуре нельзя ниче присвоить |
Ответ: Помогите с boolean!!!
Нет, это не то. Вот код:
Program test; Var intro, paint:boolean; procedure intro; begin прорисовка картинки; ожидание нажатия на координаты; {при нажатии на нужные координаты paint=true}; procedure paint; begin прорисовка картинок; delay(-1); end; Procedure data; begin intro:=true; paint:=false; end; Procedure intro; Begin data; end. Что тут неправильно??? |
Ответ: Помогите с boolean!!!
delay(-1); Улыбнуло
|
Ответ: Помогите с boolean!!!
|
Ответ: Помогите с boolean!!!
люди...мне кто-то поможет???
|
Ответ: Помогите с boolean!!!
Во первых ты куда-то дел главный цикл + у тебя 2 раза повторяется процедура intro + количество end-ов не совпадает с количеством begin-ов + delay (-1) уже само собой должно насторожить, ты пытаешься сказать программе чтобы она ждала -1 секунду (вообщем эта строчка чоть и откомпилится но будет запорывать твою программу)
|
Ответ: Помогите с boolean!!!
но прога компилится...а в приложении белый экран..=(
|
Ответ: Помогите с boolean!!!
нет она не компилится
|
Ответ: Помогите с boolean!!!
Я 1 энд тут не дописал. Но у меня в исходнике есть. Что за цикл? И ещё...ты почем на свой сайт не заходишь?
|
Ответ: Помогите с boolean!!!
Захожу, смотрю кто что написал, ты первый кто что-то написал вообще
|
Ответ: Помогите с boolean!!!
Program test;
Var intro, paint:boolean; procedure p_intro; begin прорисовка картинки; ожидание нажатия на координаты; {при нажатии на нужные координаты paint=true}; end; procedure p_paint; begin прорисовка картинок; delay(1000); end; Procedure data; begin intro:=true; paint:=false; end; Begin data; end. |
Ответ: Помогите с boolean!!!
Слушай! Огромное спасибо! Я тебя не забуду хД Я хочу тебе помочь с сайтом и прогой! Если есть время давай займемся серьёзно этим! Ещё рас спасибо!
|
Ответ: Помогите с boolean!!!
Пиши в личку
|
Ответ: Помогите с boolean!!!
а почему procedure p_paint;?
|
Ответ: Помогите с boolean!!!
ну просто есть переменная с названием intro и paint, потом сложно будет в этом разбираться, путаться будешь, или вообще не скомпилится
|
Ответ: Помогите с boolean!!!
Что-то не могу понять, что значит
Код:
Procedure data; Да еще и при том, что переменная и процедура имеют одинаковые имена. |
Ответ: Помогите с boolean!!!
я не знаю...помогли бы лучше...я вообще в булеанах не понимаю...может кто обьяснит толком? Прошу! Мне оч надо!
|
Ответ: Помогите с boolean!!!
Так я вот и спрашиваю - что нужно получить в итоге?
|
Ответ: Помогите с boolean!!!
В общем Boolean - логический тип данных который может принимать два значения true или false (да или нет). Используется много где. например если я хочу чтобы чтобы после какого-то действия чтото или не выполнялось или выполнялось
var p:boolean; a,b,i:integer; p:=false; for i:=1 to 100 do begin a:=a+i; if a>150 then p:=true; if p<> true then b:=b+a; end; |
Ответ: Помогите с boolean!!!
впринцыпе чуть понял, если что то ещё спрошу. Не закрывайтепока тему
|
Ответ: Помогите с boolean!!!
Что не так:
Program LaFull; Var int:image; bulLogin:boolean; Procedure login; begin drawImage(int,0,0); repaint; delay(-1); end; Procedure data; begin bulLogin:=true; if (bulLogin=true) then login; int:=LoadImage('/int.png'); end; begin data; end. ????? Всё компилит, а экран белый! |
Ответ: Помогите с boolean!!!
Код:
if (bulLogin=true) then login; |
Ответ: Помогите с boolean!!!
Bruteo!!!! Огромнейшее спасибо тебе!!!! Я так мучался из-за этого! Ты меня прямо спас!!! Я тебе очень благодарен! Огромнейшее спасибо!!!
|
Ответ: Помогите с boolean!!!
Program LaFull;
Var int,log,mouse,tab,ping:image; w,h,key,x,y:integer; bulLogin,bulMouse,bulPing:boolean; Procedure Pings; begin drawImage(int,0,0); drawImage(ping,w-85,h-69); repaint; end; Procedure mouseX; begin Key:=KeyToAction(getKeyPressed); if (Key=GA_LEFT) then X:=X-2; if (Key=GA_RIGHT) then X:=X+2; if (Key=GA_UP) then Y:=Y-2; if (Key=GA_DOWN) then Y:=Y+2; if x<0 then x:=0; if y<0 then y:=0; if y>getheight-5 then y:=getheight-5; if x>getwidth-5 then x:=getwidth-5; drawImage(mouse,x,y); repaint; end; Procedure login; begin repeat drawImage(int,0,0); drawImage(log,w-98,h-31); drawImage(tab,getwidth-118,getheight-86); repaint; if (x>45) and (y>185) and (x<115) and (y<200) and (KeyToAction(getKeyPressed)=GA_FIRE) then bulPing:=true; until (x>-100) and (y>-100) and (x<-50) and (y<-50) and (KeyToAction(getKeyPressed)=GA_FIRE); end; Procedure data; begin x:=getwidth/2; y:=getheight/2; w:=getwidth/2; h:=getheight/2; bulMouse:=true; bulLogin:=true; bulPing:=false; int:=LoadImage('/int.png'); log:=loadimage('/log.png'); mouse:=loadimage('/mouse.png'); tab:=loadimage('/tab.png'); ping:=LoadImage('/ping.png'); if (bulPing=true) then bulLogin:=false; if (bulMouse=true) then mouseX; if (bulLogin=true) then login; if (bulPing=true) then Pings; end; begin data; end. Почему не двигается мышь?, та которая mouse? И как задержать процедуру без делай норм? |
Ответ: Помогите с boolean!!!
чёт я вообще недоганяю... зачем тебе там эти всякие булеаны? а чем тебе delay(100) не устраивает? можно ещё так:
var ms:integer; begin ms:=GetRelativeTimeMs; ... код ... while GetRelativeTimeMs-ms<100 do // задержка begin end; end. тут задержка будет ровно 100мс, т.к. тут считается время выполнения цикла. |
Ответ: Помогите с boolean!!!
Нет, мне нужны именно булеаны. Как сделать чтобы перемещался курсор?? ПОМОГИТЕ!! Прошу
|
Ответ: Помогите с boolean!!!
вот код:
Код:
Program NewProject1; |
Ответ: Помогите с boolean!!!
Спасибо огромное
|
Ответ: Помогите с boolean!!!
Незачто.
|
Ответ: Помогите с boolean!!!
Вот! Новая проблема...Мышь не работает...Вот код:
Program LaFull; Var int,log,mouse,tab,ping:image; w,h,key,x,y:integer; bulLogin,bulMouse,bulPing:boolean; Procedure Pings; begin repeat drawImage(int,0,0); drawImage(ping,w-85,h-69); repaint; until false; end; Procedure mouseX; begin repeat Key:=getKeyPressed; if (Key=GA_LEFT) then X:=X-2; if (Key=GA_RIGHT) then X:=X+2; if (Key=GA_UP) then Y:=Y-2; if (Key=GA_DOWN) then Y:=Y+2; if x<0 then x:=0; if y<0 then y:=0; if y>getheight-5 then y:=getheight-5; if x>getwidth-5 then x:=getwidth-5; until false; end; Procedure login; begin repeat drawImage(int,0,0); drawImage(log,w-98,h-31); drawImage(tab,getwidth-118,getheight-86); drawImage(mouse,x,y); repaint; if (x>45) and (y>185) and (x<115) and (y<200) and (KeyToAction(getKeyPressed)=GA_FIRE) then bulPing:=true; until false; end; Procedure data; begin repeat x:=getwidth/2; y:=getheight/2; w:=getwidth/2; h:=getheight/2; bulMouse:=true; bulLogin:=true; bulPing:=false; int:=LoadImage('/int.png'); log:=loadimage('/log.png'); mouse:=loadimage('/mouse.png'); tab:=loadimage('/tab.png'); ping:=LoadImage('/ping.png'); if (bulPing=true) then bulLogin:=false; if (bulLogin=true) then login; if (bulPing=true) then Pings; if (bulMouse=true) then MouseX; until false; end; begin repeat data; until false; end. Обьясню: При запуске сразу должно отображаться всё из Login, мышь должна бегать из MouseX, при нажатии на координаты Login закрывается, Мышь (MouseX) работает дальше, а Pings запускается...Тоесть мышь работает всё время! Как это зделать, на основе этого кода желательно. Кто поможет, буду очень благодарен! |
Ответ: Помогите с boolean!!!
Мышь не работает, потому что после нажатия на координаты Login закрывается, прога доходит до
if (bulPing=true) then Pings; где и остается в бесконечном цикле. можно изменить на Procedure Pings; begin repeat drawImage(int,0,0); drawImage(ping,w-85,h-69); mouseX; drawImage(mouse,x,y); repaint; until false; end; Procedure mouseX; begin Key:=getKeyPressed; if (Key=GA_LEFT) then X:=X-2; if (Key=GA_RIGHT) then X:=X+2; if (Key=GA_UP) then Y:=Y-2; if (Key=GA_DOWN) then Y:=Y+2; if x<0 then x:=0; if y<0 then y:=0; if y>getheight-5 then y:=getheight-5; if x>getwidth-5 then x:=getwidth-5; end; |
Ответ: Помогите с boolean!!!
И ещё:
Procedure login; begin repeat drawImage(int,0,0); drawImage(log,w-98,h-31); drawImage(tab,getwidth-118,getheight-86); MouseX; drawImage(mouse,x,y); repaint; if (x>45) and (y>185) and (x<115) and (y<200) and (KeyToAction(getKeyPressed)=GA_FIRE) then bulPing:=true; until bulping=true; end; Вроде должна заработать. А вообще, прога очень коряво написана. Использование repeat ... until false; приводит к бесконечному циклу без возможности выйти из него (единственный способ - halt, но это выход из программы), а у тебя таких циклов целых четыре! Или например: процедура data каждый виток цикла загружает изображения заново,а смысл?! В общем, еще учиться, учиться и учиться! |
Ответ: Помогите с boolean!!!
Спасибо и на этом)) а ты не мог бы зделать чуть лучше код? Я просто как не смотрю, никак не делается =(
|
Ответ: Помогите с boolean!!!
В само вычисление не вдавался, просто исправил недочеты с использованием функций.
Procedure data; begin x:=getwidth/2; y:=getheight/2; w:=getwidth/2; h:=getheight/2; bulPing:=false; int:=LoadImage('/int.png'); log:=loadimage('/log.png'); mouse:=loadimage('/mouse.png'); tab:=loadimage('/tab.png'); ping:=LoadImage('/ping.png'); login; Pings; end; |
Ответ: Помогите с boolean!!!
Нет, не работает всёровно =((
Нет, не работает всёровно =(( блина помогите |
Ответ: Помогите с boolean!!!
Как. Что именно не работает?
В смысле, что работает? Выложи сам проект, а то у меня нет ни картинок ни возможности проверить. |
Ответ: Помогите с boolean!!!
процедура mouseX должна быть указана выше процедуры pings, потому что внутри pings есть вызов процедуры mouseX;
Держи трофей Program LaFull; Var int,log,mouse,tab,ping:image; w,h,key,x,y:integer; bulPing:boolean; Procedure mouseX; begin Key:=getKeyPressed; if (Key=GA_LEFT) then X:=X-2; if (Key=GA_RIGHT) then X:=X+2; if (Key=GA_UP) then Y:=Y-2; if (Key=GA_DOWN) then Y:=Y+2; if x<0 then x:=0; if y<0 then y:=0; if y>getheight-5 then y:=getheight-5; if x>getwidth-5 then x:=getwidth-5; drawimage(mouse,x,y); end; Procedure Pings; begin repeat drawImage(int,0,0); drawImage(ping,w-85,h-69); mouseX; repaint; until false; end; Procedure login; begin repeat drawImage(int,0,0); drawImage(log,w-98,h-31); drawImage(tab,getwidth-118,getheight-86); MouseX; repaint; if (x>45) and (y>185) and (x<115) and (y<200) and (KeyToAction(getKeyPressed)=GA_FIRE) then bulPing:=true; until bulping=true; end; Procedure data; begin x:=getwidth/2; y:=getheight/2; w:=getwidth/2; h:=getheight/2; bulPing:=false; int:=LoadImage('/int.png'); log:=loadimage('/log.png'); mouse:=loadimage('/mouse.png'); tab:=loadimage('/tab.png'); ping:=LoadImage('/ping.png'); login; Pings; end; begin data; end. Если не будет работать, то ошибка в названиях изображений. (их у меня нет, проверит не могу) |
Ответ: Помогите с boolean!!!
Вложений: 1
Исправил
|
Часовой пояс GMT +4, время: 01:23. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot