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

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

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

Ответ
 
Опции темы
Старый 15.07.2009, 17:40   #1
DJ PhoeniX
AnyKey`щик
 
Регистрация: 15.07.2009
Адрес: Интернет
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Проблема: глючное меню

Собственно, делаю расписание электричек
Проблему увидите сами из исходника.
Как я понял, после прохода, он просто автоматом нажимает первый пункт меню.
Как выловить и исправить?
Вложения
Тип файла: zip Elektrichka2009.zip (102.7 Кб, 569 просмотров)
(Offline)
 
Ответить с цитированием
Старый 16.07.2009, 19:53   #2
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Проблема: глючное меню

Сообщение от DJ PhoeniX Посмотреть сообщение
Собственно, делаю расписание электричек
Проблему увидите сами из исходника.
Как я понял, после прохода, он просто автоматом нажимает первый пункт меню.
Как выловить и исправить?
Вот так будет правильнее и без глюков:

Program Elektrichka2009;
Uses typStringList;

var
  
vects, list, linestattypStringList.TStringList;
  
idnowdointeger;
  
cmdcmdOKcmdExitcommand;
  exit: 
boolean;
  
procedure Load;
var
  
res:resource;
  
b:integer;
  
s:string;
  
time:integer;
begin
  ShowCanvas
;
  
DrawImage(LoadImage('/logo.png'),0,0);
  
SetColor(0,128,0); 
  
DrawText('Загрузка...', (GetWidth GetStringWidth('Загрузка...'))/2GetHeight 20);
  
repaintDelay(5000);
  
  {
  
// Это я закомментировал пока, нет файлов, не откуда считывать
  
res:=OpenResource('/vects.lst');
  
repeat
    b
:=ReadByte(res); // Не проще ли сразу строками считывать? Побайтно это жутко долго.
    
s:=s+chr(b);
  
until b=eof;
  
vects:=SetStringList(s,chr(13));
  
res:=OpenResource('/trains.lst');
  
repeat
    b
:=ReadByte(res); // то же
    
s:=s+chr(b);
  
until b=eof;
  list:=
SetStringList(s,chr(13));
  }
end;
  

begin
    Load
ShowForm;
    
repeat
        ClearForm
;
        
ShowMenu('Главное меню',CH_IMPLICIT);
        
id:=MenuAppendString('Показать расписание');
        
id:=MenuAppendString('Ближайший поезд');
        
id:=MenuAppendString('Найти поезд');
        
id:=MenuAppendString('Выход');
        
cmdOK:=CreateCommand('ОК'CM_OK1);
        
cmdExit:=CreateCommand('Выход'CM_EXIT2);
        
AddCommand(cmdOK); // Тут немного непонятно. Клавиша выбора там уже и так есть, но ладно.
        
AddCommand(cmdExit);
        
Repaint;
        
cmd := EMPTYCOMMAND;
        
repeat
            cmd
:=GetClickedCommand;
            if 
cmd=cmdExit then Halt;
            
Delay(50); // Вставь тут небольшую паузу. Система же должна считывать клавиатуру.    
        
until cmd=cmdOk;
        
ShowForm;
        if 
MenuGetSelectedIndex=0 then nowdo:=else
        if 
MenuGetSelectedIndex=1 then nowdo:=else
        if 
MenuGetSelectedIndex=2 then nowdo:=else
        if 
MenuGetSelectedIndex=3 then Halt// или break
        
ShowAlert('NowDo'''+nowdoLoadImage('/icon.png'), ALERT_INFO);
        
RepaintDelay(3000);
    
until false;
end
(Offline)
 
Ответить с цитированием
Старый 16.07.2009, 20:17   #3
DJ PhoeniX
AnyKey`щик
 
Регистрация: 15.07.2009
Адрес: Интернет
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Проблема: глючное меню

Сделал так, теперь не работает центральная клавиша... ладно, поколбашусь с KeyToAction & Ko...
(Offline)
 
Ответить с цитированием
Старый 23.07.2009, 21:53   #4
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Проблема: глючное меню

Сделай графическое меню с помощью либы Lib_menu32 и не мучайся.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как программно узнать имя пункта меню который был выбран (Обычное/стандартные меню)? Richik Основной форум 5 25.05.2009 23:20
Меню AndruXa Blitz3D 18 05.10.2007 21:44
Проблема с меню Dizels 2D-программирование 33 09.11.2005 22:38


Часовой пояс GMT +4, время: 20:20.


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