forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   MidletPascal (http://forum.boolean.name/forumdisplay.php?f=46)
-   -   нет прокрутки меню (http://forum.boolean.name/showthread.php?t=9701)

LIDERSERVIS 04.11.2009 05:51

нет прокрутки меню
 
Есть проблемка. Когда список меню showMenu или FormAddChoice очень большой - то есть конечные в списку выходят за экран тогда для этих меню прокрутка не действует и этих конечных пунктов наочно не видно. Есть ли из этого какойто выход наподобие FormAddString - когда созданый большой список FormAddString полностю просматривается. Мне наибольше подходит showMenu так как там есть процедура возращения индекса выбраного пункта. Помогите с проблемкой.

LIDERSERVIS 04.11.2009 11:14

Ответ: нет прокрутки меню
 
После безсонной ночи проблемку решыл. Может быть ещо комуто пригодится. Извините что 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;


GRAY_WOLF 04.11.2009 11:40

Ответ: нет прокрутки меню
 
Юзай canvas и lib_menu32 там все, что тебе надо есть.

LIDERSERVIS 04.11.2009 11:45

Ответ: нет прокрутки меню
 
Я в курсе что через canvas и lib_menu32 красивей - но через форми это быстрей и больше стандарных возможностей.

GRAY_WOLF 04.11.2009 18:01

Ответ: нет прокрутки меню
 
Цитата:

Сообщение от LIDERSERVIS (Сообщение 123250)
Я в курсе что через canvas и lib_menu32 красивей - но через форми это быстрей и больше стандарных возможностей.

Давай колись на сколько это быстрее?! А ты в курсе,что в канвасе с lib_menu32 , lib_font32, lib_resloader можно из текстового файла загружать в меню любое количество пунктов с прокруткой текста, если длина текста в меню превышает ширину дисплея.

LIDERSERVIS 04.11.2009 21:17

Ответ: нет прокрутки меню
 
Цитата:

Сообщение от GRAY_WOLF (Сообщение 123298)
Давай колись на сколько это быстрее?! А ты в курсе,что в канвасе с lib_menu32 , lib_font32, lib_resloader можно из текстового файла загружать в меню любое количество пунктов с прокруткой текста, если длина текста в меню превышает ширину дисплея.

А в чем спор ? Мое мнение что обычная форма не менее чем на 50% быстрее чем рисование. Для тек кому нужно вывод только данные - наилучший выбор через форму. Во первых все стандартизировано, не нужно большое количество параметров и большого буфера памяти, есть множество нужных для работы елементов формы с которыми легко работать.

odd 04.11.2009 23:58

Ответ: нет прокрутки меню
 
Я тоже за формы. Если программка простенькая и без изысков,
то легче воспользоваться обычными формами.
А вот для коммерческих программ приходится изгаляться на красоту,
иначе потребитель выберет программу конкурентов.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot