Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для мобильных телефонов > MidletPascal

Ответ
 
Опции темы
Старый 10.10.2010, 22:10   #1
sk13
AnyKey`щик
 
Аватар для sk13
 
Регистрация: 09.10.2010
Сообщений: 16
Написано одно полезное сообщение
Вопрос Исправьте код пожалуйста

Program Ded
function mainmenu(n:integer):integer;
var 
cmsmssetings,help, exit,langs,balans,help,about,updates ,stat,popolnenie,balansinteger;  
    
play,backclicked 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_OK1);  
    
addCommand(play);
    
     
clicked:=EmptyCommand;
    
repeat  
        delay
(200);  
        
clicked := getClickedCommand;  
    
until clicked <> EmptyCommand;  
        
mainmenu:=menuGetSelectedIndex;        
    
    
RemoveCommand(play);
            
  
    if 
menuGetSelectedIndex = exit then begin saveStorehaltend;
    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, 11:39   #2
cherepets
Бывалый
 
Аватар для cherepets
 
Регистрация: 18.08.2009
Сообщений: 744
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Исправьте код пожалуйста

всё читать лень, но сразу скажу, что в конце должна быть точка, а не точка с запятой
(Offline)
 
Ответить с цитированием
Старый 04.11.2010, 10:28   #3
Rameron
Оператор ЭВМ
 
Регистрация: 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, 18:08   #4
fall
Оператор ЭВМ
 
Регистрация: 08.12.2010
Адрес: Белорусь
Сообщений: 25
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Исправьте код пожалуйста

Чтобы не плодить новых тем, позволю себе воспользоваться этой, ведь суть вопроса та же.

Набросал код, но он работает не так как задумывалось.
Почему-то если выбрать пункт меню, то соответствующая процедура текст не выводит. Если процедуру вызвать до вывода меню, то текст отображаеться. Видно какая-то мелочь, но никак не могу разобраться...

program BusList;

uses font32;

var
  
okclickedcommand
  
whkeyinteger;  
   


   

procedure cls2;
begin
  setColor
(255255255);
  
fillRect(00wh);
  
delay(200)
end;


   
   
procedure ShowList(sstring);
var
  
htext integer;
begin 

  textwindow
(22w-2h-12); 
  
htext := format(s0);
  
cls2;
  
drawtextwindow;
  
  
repaint;
  
delay(2000);
end;


  
  
procedure ShowFirstMenu;
var 
    
p1p2 integer
  exit, 
nextclicked ,cmdQuitcommand;  
  
begin 

  ShowMenu
('Выберите остановку'CH_IMPLICIT); 
     
  
p1   := MenuAppendString('Halt'); 
  
p2   := MenuAppendString('Вывести текст'); 
    
  
next := CreateCommand('Далее'CM_SCREEN0); 
  
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;
  
:= getHeight;
  
  
font32.init(1);
  
font(0);
  
loadfont('Verdana_7'); 

// Если выводить текст до вывода меню, то все впорядке.
// ShowList('Test test test test test test test test');  

  
ShowFirstMenu;  

  
end

Последний раз редактировалось fall, 11.12.2010 в 19:55. Причина: Исправил код
(Offline)
 
Ответить с цитированием
Старый 11.12.2010, 19:46   #5
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Исправьте код пожалуйста

Убери ShowCanvas; из процедуры ShowFirstMenu;
(Offline)
 
Ответить с цитированием
Старый 11.12.2010, 20:01   #6
fall
Оператор ЭВМ
 
Регистрация: 08.12.2010
Адрес: Белорусь
Сообщений: 25
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Исправьте код пожалуйста

Неа, не помогло (код в своем посте также обновил).
Если убрать ClearForm то даже после выбора пункта, меню продолжает находиться на экране и нормально функционировать. Текст не выводиться.
Может нужно как-то уничтожать меню перед выводом текста?..
Прикрепил архив с проектом к посту.

UPD:
Сообщение от odd Посмотреть сообщение
Убери ShowCanvas; из процедуры ShowFirstMenu;
Безрезультатно.
Вложения
Тип файла: zip BusList.zip (30.7 Кб, 183 просмотров)
(Offline)
 
Ответить с цитированием
Старый 12.12.2010, 07:08   #7
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,886
Написано 1,182 полезных сообщений
(для 3,287 пользователей)
Ответ: Исправьте код пожалуйста

Ctrl+A -> Delete
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
barsunduk (20.06.2012)
Старый 12.12.2010, 07:37   #8
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,360
Написано 482 полезных сообщений
(для 865 пользователей)
Ответ: Исправьте код пожалуйста

fall, выведи в дебаг заходит ли прога в нужный IF вообще.
(Offline)
 
Ответить с цитированием
Старый 12.12.2010, 09:46   #9
odd
Мастер
 
Аватар для odd
 
Регистрация: 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)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
fall (12.12.2010)
Старый 12.12.2010, 10:51   #10
fall
Оператор ЭВМ
 
Регистрация: 08.12.2010
Адрес: Белорусь
Сообщений: 25
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Исправьте код пожалуйста

Nex, я так безнадежен?
odd, спасибо, работает!
Да и мне кажется, что нужно писать if MenuGetSelectedIndex = 0 или if MenuGetSelectedIndex = 1, а не сравнивать их с p1 или p2.
Пример брал из мануалки "MPhelp_by_odd.chm"
(Offline)
 
Ответить с цитированием
Старый 13.12.2010, 14:22   #11
fall
Оператор ЭВМ
 
Регистрация: 08.12.2010
Адрес: Белорусь
Сообщений: 25
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Исправьте код пожалуйста

А как обработать нажатие центральной кнопки (которая между стрелок)?
(Offline)
 
Ответить с цитированием
Старый 14.12.2010, 09:33   #12
cherepets
Бывалый
 
Аватар для cherepets
 
Регистрация: 18.08.2009
Сообщений: 744
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Исправьте код пожалуйста

key:=keytoaction(getkeypressed);
if key=GA_FIRE then MeaninglessProcedure1;
(Offline)
 
Ответить с цитированием
Старый 13.04.2011, 06:59   #13
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: Исправьте код пожалуйста

Сообщение от Rameron Посмотреть сообщение
3) exit нельзя использовать как название переменной - оно зарезервировано.
Хм, я использовал для своих проектов Exit:boolean, все норм.
(Offline)
 
Ответить с цитированием
Старый 29.04.2012, 14:49   #14
Deport
Оператор ЭВМ
 
Аватар для Deport
 
Регистрация: 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)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 01:10.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com