On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 3677
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.11.14 01:18. Заголовок: Основные вопросы по переводу терминалки на GUI ?


Вот после некоторого продолжительного опыта написания прог на МиниГуи, хочу начать перетаскивать свою терминалку. И сразу несколько ГЛАВНЫХ вопросов, без которых никак не состоится "переезд"....

У меня в терминалке есть:
1) ОДНА (для всех прог) единая функция редактирования таблиц, которой скармливаю настройки из ини-файлов.
т.е. допустим в задаче 5 главных таблиц, которые обслуживаются ОДНИМ универсальным Tbrowse.
2) ОДНА единая функция редактирования справочников - настройки каждого тоже в ини-файле.
3) ОДНА единая функция показа/выбора справочника, тоже универсальная. По ходу обработки в основном Tbrowse в зависимости от редактируемого поля подсовываю данные из ини-файла, на ходу.

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

А как быть со шрифтами в программе ?
Определить шрифты вначале программы для главных таблиц, редактирования справочника и показа справочника.
Как это сделать наглядно и дать юзеру инструмент для замены шрифтов ?

Чем дальше в лес (в МиниГуи) тем больше дров (вопросов) ...
Поделитесь пожалуйста опытом решения этих проблем.


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 4 [только новые]


постоянный участник




Пост N: 426
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.11.14 12:35. Заголовок: Andrey пишет:Чем дал..


Andrey пишет:
 цитата:
Чем дальше в лес (в МиниГуи) тем больше дров (вопросов) ...
Поделитесь пожалуйста опытом решения этих проблем.


используй классы:
1. пишешь базовый класс на один справочник
2. наследуешь от базового, меняешь, если надо, свойства и методы - есть другой справочник.
3.наследуешь от базового или от получ. в пункте 2, меняешь, если надо, свойства и методы - есть другой справочник и т.д
4. для документов поступаешь также.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 462
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 05.11.14 14:29. Заголовок: Теперь под GUI могу..



 цитата:

Теперь под GUI могу открывать все 5 главных таблиц задачи, все справочники и т.д.
НО DEFINE WINDOW имеет одно значение, и при запуске второго окна с тем же именем будет вылет задачи !


Окна имена меняй согласно назначения справочников.
Эту проблему я поднимал раньше и она нормально решается для Brows и TsBrows. Разные справочники в разных окнах.
А ini файлы одинаковые (по имени) для каждого пользователя сохраняешь в разных директориях . Директория содержит номер пользователя

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 333
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 05.11.14 18:58. Заголовок: Andrey пишет: выле..


Andrey пишет:

 цитата:
вылет по одинаковому имени окна или нужно настраивать этот справочник для 2-ой таблице. Как быть ?



в самом начале модуля справочника ( и не только ) перед DEFINE WINDOW FORM_1 ...
используй конструкцию примерно такую

IF IsWindowDefined(Form_1)
Form_1.Restore()
Return .T.
END

тогда при попытке выбрать из меню уже открытый и задвинутый куда нить в угол пользователем справочник - он появится на экране


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 183
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 06.11.14 11:04. Заголовок: Видимо название окна..


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


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 253
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет