|
11.10.2010, 02:10
|
#1
|
AnyKey`щик
Регистрация: 09.10.2010
Сообщений: 16
Написано одно полезное сообщение
|
Исправьте код пожалуйста
Program Ded function mainmenu(n:integer):integer; var cmsms, setings,help, exit,langs,balans,help,about,updates ,stat,popolnenie,balans: integer; play,back, clicked : command; Begin showMenu('Главное меню', CH_IMPLICIT);//главное меню cmsms:= menuAppendStringimage('Отправить смс',imA[1]); stat:=menuAppendStringimage('Статус сообщения',imA[2]); balans:=menuAppendStringimage('Баланс кода',imA[3]); setings := menuAppendStringimage('Прикольные СМСки',imA[4]); popolnenie:=menuAppendStringimage('Приобрести код',imA[5]); help := menuAppendStringimage('Справка',imA[6]); about:= menuAppendStringimage('О программе',imA[7]); updates:=menuAppendStringimage('Обновление',imA[8]); exit := menuAppendStringimage('Выход',imA[9]); ui.list_set_selected(n); play := createCommand('Выбрать', CM_OK, 1); addCommand(play); clicked:=EmptyCommand; repeat delay(200); clicked := getClickedCommand; until clicked <> EmptyCommand; mainmenu:=menuGetSelectedIndex; RemoveCommand(play); if menuGetSelectedIndex = exit then begin saveStore; halt; end; if menuGetSelectedIndex = updates then update; if menuGetSelectedIndex = cmsms then sendSMS; if menuGetSelectedIndex = setings then PROCcoolsms; if menuGetSelectedIndex = balans then balansForm; if menuGetSelectedIndex = stat then checksmsid;// проверка статуса if menuGetSelectedIndex = popolnenie then checkcantpay; if menuGetSelectedIndex = help then showhelp; if menuGetSelectedIndex = about then showabout; end;
Пишет ошибку: 'unexpected token '<EOF>''
|
(Offline)
|
|
11.10.2010, 15:39
|
#2
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Исправьте код пожалуйста
всё читать лень, но сразу скажу, что в конце должна быть точка, а не точка с запятой
|
(Offline)
|
|
04.11.2010, 13:28
|
#3
|
Оператор ЭВМ
Регистрация: 04.11.2010
Сообщений: 38
Написано одно полезное сообщение
|
Ответ: Исправьте код пожалуйста
1) В начале после Program Ded должна стоять ;
2) function mainmenu(n:integer):integer; - смысл строки?
3) exit нельзя использовать как название переменной - оно зарезервировано.
4) Массив imA[] не объявлен.
5) ui.list_set_selected(n); - n, я так понял, переменная, но ты её не объявил
6) if menuGetSelectedIndex = exit then begin saveStore; halt; end; - кажись, синтаксис не соблюден.
Всё, что нашел,но ошибок может быть и больше.
|
(Offline)
|
|
11.12.2010, 21:08
|
#4
|
Оператор ЭВМ
Регистрация: 08.12.2010
Адрес: Белорусь
Сообщений: 25
Написано 3 полезных сообщений (для 3 пользователей)
|
Ответ: Исправьте код пожалуйста
Чтобы не плодить новых тем, позволю себе воспользоваться этой, ведь суть вопроса та же.
Набросал код, но он работает не так как задумывалось.
Почему-то если выбрать пункт меню, то соответствующая процедура текст не выводит. Если процедуру вызвать до вывода меню, то текст отображаеться. Видно какая-то мелочь, но никак не могу разобраться...
program BusList; uses font32; var ok, clicked: command; w, h, key: integer; procedure cls2; begin setColor(255, 255, 255); fillRect(0, 0, w, h); delay(200) end; procedure ShowList(s: string); var htext : integer; begin textwindow(2, 2, w-2, h-12); htext := format(s, 0); cls2; drawtextwindow; repaint; delay(2000); end; procedure ShowFirstMenu; var p1, p2 : integer; exit, next, clicked ,cmdQuit: command; begin ShowMenu('Выберите остановку', CH_IMPLICIT); p1 := MenuAppendString('Halt'); p2 := MenuAppendString('Вывести текст'); next := CreateCommand('Далее', CM_SCREEN, 0); AddCommand(next); ShowCanvas; repeat delay(100); clicked := GetClickedCommand; until clicked <> EmptyCommand; ClearForm; if clicked = next then begin if MenuGetSelectedIndex = p1 then halt; if MenuGetSelectedIndex = p2 then ShowList('Test test test test test test test test'); end; end; begin w := getWidth; h := getHeight; font32.init(1); font(0); loadfont('Verdana_7'); // Если выводить текст до вывода меню, то все впорядке. // ShowList('Test test test test test test test test'); ShowFirstMenu; end.
Последний раз редактировалось fall, 11.12.2010 в 22:55.
Причина: Исправил код
|
(Offline)
|
|
11.12.2010, 22:46
|
#5
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Исправьте код пожалуйста
Убери ShowCanvas; из процедуры ShowFirstMenu;
|
(Offline)
|
|
11.12.2010, 23:01
|
#6
|
Оператор ЭВМ
Регистрация: 08.12.2010
Адрес: Белорусь
Сообщений: 25
Написано 3 полезных сообщений (для 3 пользователей)
|
Ответ: Исправьте код пожалуйста
Неа, не помогло (код в своем посте также обновил).
Если убрать ClearForm то даже после выбора пункта, меню продолжает находиться на экране и нормально функционировать. Текст не выводиться.
Может нужно как-то уничтожать меню перед выводом текста?..
Прикрепил архив с проектом к посту.
UPD:
Сообщение от odd
Убери ShowCanvas; из процедуры ShowFirstMenu;
|
Безрезультатно.
|
(Offline)
|
|
12.12.2010, 10:08
|
#7
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Исправьте код пожалуйста
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.12.2010, 10:37
|
#8
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Ответ: Исправьте код пожалуйста
fall, выведи в дебаг заходит ли прога в нужный IF вообще.
|
(Offline)
|
|
12.12.2010, 12:46
|
#9
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Исправьте код пожалуйста
Переделай
if MenuGetSelectedIndex = p2 then ShowList('Test test test test test test test test');
на
if MenuGetSelectedIndex = p2 then begin ShowCanvas; ShowList('Test test test test test test test test'); Repaint; Delay(5000); end;
Да и мне кажется, что нужно писать if MenuGetSelectedIndex = 0 или if MenuGetSelectedIndex = 1, а не сравнивать их с p1 или p2.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.12.2010, 13:51
|
#10
|
Оператор ЭВМ
Регистрация: 08.12.2010
Адрес: Белорусь
Сообщений: 25
Написано 3 полезных сообщений (для 3 пользователей)
|
Ответ: Исправьте код пожалуйста
Nex, я так безнадежен?
odd, спасибо, работает!
Да и мне кажется, что нужно писать if MenuGetSelectedIndex = 0 или if MenuGetSelectedIndex = 1, а не сравнивать их с p1 или p2.
|
Пример брал из мануалки "MPhelp_by_odd.chm"
|
(Offline)
|
|
13.12.2010, 17:22
|
#11
|
Оператор ЭВМ
Регистрация: 08.12.2010
Адрес: Белорусь
Сообщений: 25
Написано 3 полезных сообщений (для 3 пользователей)
|
Ответ: Исправьте код пожалуйста
А как обработать нажатие центральной кнопки (которая между стрелок)?
|
(Offline)
|
|
14.12.2010, 12:33
|
#12
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Исправьте код пожалуйста
key:=keytoaction(getkeypressed);
if key=GA_FIRE then MeaninglessProcedure1;
|
(Offline)
|
|
13.04.2011, 10:59
|
#13
|
Разработчик
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений (для 319 пользователей)
|
Ответ: Исправьте код пожалуйста
Сообщение от Rameron
3) exit нельзя использовать как название переменной - оно зарезервировано.
|
Хм, я использовал для своих проектов Exit:boolean, все норм.
|
(Offline)
|
|
29.04.2012, 18:49
|
#14
|
Оператор ЭВМ
Регистрация: 06.03.2009
Сообщений: 38
Написано 3 полезных сообщений (для 3 пользователей)
|
Ответ: Исправьте код пожалуйста
Ребята мне сейчас самому понадобилась функция выбора элемента но блин из за кучи нагромождений пока искал и правил потратил 15минут.... вот решил сделать маленький тестер кому надо делать меню
program BusList;
var
p1,p2:integer;
next,clicked:command;
begin
ShowMenu('Выберите диапазон', CH_IMPLICIT);
p1 := MenuAppendString('Нулевой');
p2 := MenuAppendString('Первый');
next := CreateCommand('Далее', CM_SCREEN, 0);
AddCommand(next);
repeat delay(100);clicked := GetClickedCommand;until clicked <> EmptyCommand;
if MenuGetSelectedIndex = p1 then begin
//ВАШ КОД ПОД ВЫБРАННЫМ ПЕРВЫМ ЭЛЕМЕНТОМ
end;
if MenuGetSelectedIndex = p2 then begin
//ВАШ КОД ПОД ВЫБРАННЫМ ВТОРЫМ ЭЛЕМЕНТОМ
end;
end.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:52.
|