Форум » GUI » Основные вопросы по переводу терминалки на GUI ? » Ответить

Основные вопросы по переводу терминалки на GUI ?

Andrey: Вот после некоторого продолжительного опыта написания прог на МиниГуи, хочу начать перетаскивать свою терминалку. И сразу несколько ГЛАВНЫХ вопросов, без которых никак не состоится "переезд".... У меня в терминалке есть: 1) ОДНА (для всех прог) единая функция редактирования таблиц, которой скармливаю настройки из ини-файлов. т.е. допустим в задаче 5 главных таблиц, которые обслуживаются ОДНИМ универсальным Tbrowse. 2) ОДНА единая функция редактирования справочников - настройки каждого тоже в ини-файле. 3) ОДНА единая функция показа/выбора справочника, тоже универсальная. По ходу обработки в основном Tbrowse в зависимости от редактируемого поля подсовываю данные из ини-файла, на ходу. Теперь под GUI могу открывать все 5 главных таблиц задачи, все справочники и т.д. НО DEFINE WINDOW имеет одно значение, и при запуске второго окна с тем же именем будет вылет задачи ! Можно использовать cFormName := "Win_" + HB_NToS( _GetId() ), тогда к чему привязываться при сохранении/восстановлении параметров окна в ини-файле ? Или можно пользоваться таким названием окна cFormName := "Win_ABONENT" , где Materials имя секции относящие к БД-абонентов ? С 5 таблицами допустим можно разобраться, а как быть со справочниками ? Их же несколько десятков. Т.е. я использую единую функция показа/выбора справочника - см. 3) Например справочник городов и справочник улиц пользователь настроил под себя (шрифты, расположение на экране, цвета и т.д.) в 1-ой таблице. Потом юзер бросает эту таблицу оставив окно справочника на экране и лезет во 2-ую таблицу (там тоже присутствую адресные справочники). И облом опять - вылет по одинаковому имени окна или нужно настраивать этот справочник для 2-ой таблице. Как быть ? А как быть со шрифтами в программе ? Определить шрифты вначале программы для главных таблиц, редактирования справочника и показа справочника. Как это сделать наглядно и дать юзеру инструмент для замены шрифтов ? Чем дальше в лес (в МиниГуи) тем больше дров (вопросов) ... Поделитесь пожалуйста опытом решения этих проблем.

Ответов - 4

SergKis: Andrey пишет:Чем дальше в лес (в МиниГуи) тем больше дров (вопросов) ... Поделитесь пожалуйста опытом решения этих проблем. используй классы: 1. пишешь базовый класс на один справочник 2. наследуешь от базового, меняешь, если надо, свойства и методы - есть другой справочник. 3.наследуешь от базового или от получ. в пункте 2, меняешь, если надо, свойства и методы - есть другой справочник и т.д 4. для документов поступаешь также.

Vlad04: Теперь под GUI могу открывать все 5 главных таблиц задачи, все справочники и т.д. НО DEFINE WINDOW имеет одно значение, и при запуске второго окна с тем же именем будет вылет задачи ! Окна имена меняй согласно назначения справочников. Эту проблему я поднимал раньше и она нормально решается для Brows и TsBrows. Разные справочники в разных окнах. А ini файлы одинаковые (по имени) для каждого пользователя сохраняешь в разных директориях . Директория содержит номер пользователя

Haz: Andrey пишет: вылет по одинаковому имени окна или нужно настраивать этот справочник для 2-ой таблице. Как быть ? в самом начале модуля справочника ( и не только ) перед DEFINE WINDOW FORM_1 ... используй конструкцию примерно такую IF IsWindowDefined(Form_1) Form_1.Restore() Return .T. END тогда при попытке выбрать из меню уже открытый и задвинутый куда нить в угол пользователем справочник - он появится на экране


Softlog86: Видимо название окна нужно в кавычки брать ? IsWindowDefined( 'Form_1') <---



полная версия страницы