Показать сообщение отдельно
Старый 04.11.2009, 11:14   #2
LIDERSERVIS
Оператор ЭВМ
 
Регистрация: 20.10.2009
Сообщений: 49
Написано 2 полезных сообщений
(для 3 пользователей)
Ответ: нет прокрутки меню

После безсонной ночи проблемку решыл. Может быть ещо комуто пригодится. Извините что rem по украински. Мне так быстрей.

----
BEGIN

KIL_STORINOK:=0; // кількість виведених сторінок на екран
MAX_KIL_POZ:=10; // максимально дозволена кількість позицій в меню
E:=true; //  значення кінця даних в сокеті (або інший вид даних - наприклад масив) для зчитування
	
REPEAT
...  ініціалізація командних кнопок
...  загрузка загальних даних якщо Е = true   (якщо Е = false - означає що є ще попередньозавантажені дані)
  REPEAT
          REPEAT
          if кількість позицій меню <= MAX_KIL_POZ then (ініціалізація меню (поетапно) ..  ініціалізовані дані знищуються поетапно з масива/сокета загружених попередньо) 
          Е = false	
          UNTIL  вивід з циклу MAX_KIL_POZ
     if кількість позицій меню = MAX_KIL_POZ then (KIL_STORINOK=KIL_STORINOK + 1 .. вихід з цикла ..  Е = false)  else
     if кінець даних then (KIL_STORINOK=KIL_STORINOK + 1  ..  E:=true) 
  UNTIL цикл перевірки кінця даних 

       REPEAT
            if нажата клавіша <ВИБІР ПОЗИЦІЇ> then ... вираховуємо реальний index для вибраного меню  INDEX=MAX_KIL_POZ * (KIL_STORINOK - 1) + (indexВРІЗАНОГО_МЕНЮ_ВИВЕДЕНОГО_НА_ЕКРАН + 1)	
            if нажата клавіша <ОБНОВИТИ> then  (... виходим з циклу команд  ..  if  Е=true then KIL_STORINOK:=0;)	
            if нажата клавіша <ВИХІД> then 	...  вихід з циклу команд і меню + підчищення даних які залишилися для зчитування (щоб при наступному вході в меню їх не зчитати а починати з чистого листа)
       UNTIL цикл команд
UNTIL цикл ініціалізації меню

END;
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Harter (04.11.2009)