Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.21;
Скачать: CL | DM;

Вниз

Множество настроек - как организовать?   Найти похожие ветки 

 
VovanV   (2002-02-03 23:55) [0]

Пишу некую программку. В ней предусмотрено большое количество различных настроек.

Вопрос: Как организовать их просмотр, изменение?

Обычно делают так:
Некое специально окно - настройки.
Окно разделено на две части - левую и правую.
В левой части - список разделов.

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

Реализация:
Воплощение я представляю так: Левая часть(список разделов настроек) - ListBox
При выборе какого-либо раздела. Уничтожается все, что было в правой части. И там создаются(в коде программы) всякие новые TEdit, TComboBox и т.п. в которых настройки касающиеся только этого раздела.

Что мне в этом не нравится: При большом количестве настроек довольно муторно постоянно создавать новые TEdit, TComboBox и т.п. А потом их уничтожать.

Может как-то по другому лучше это реализовать? Компонент? Кто как делает подобные вещи? Каков алгоритм?


 
Виктор Щербаков ©   (2002-02-04 09:00) [1]

TPageControl


 
Юрий Федоров ©   (2002-02-04 10:02) [2]

Можно не уничтожать и создавать, а накидать панелей (или фреймов), из которых только одна visible = true, а слева на мой взгляд лучше TTreeView.
Я писал фреймы от общего предка, в котором было 2 абстрактных метода, типа LoadParams и SaveParams (загрузка\сохранение в реестр\ини-файл)


 
VovanV   (2002-02-04 12:48) [3]

а если самому создавать и уничтожать, то программа будет меньше места занимать? Или может более оптимальный код будет?


 
Юрий Федоров ©   (2002-02-04 13:09) [4]

Кода будет больше, а памяти занимать меньше


 
VovanV   (2002-02-04 16:37) [5]

А объем дискового пространства?

Вообще, имеет ли смысл возится с тем, чтобы в коде создавать все элементы? Кнопки, TEdit и т.п.?


 
KSergey ©   (2002-02-04 16:56) [6]

>Вообще, имеет ли смысл возится с тем, чтобы в коде создавать все элементы? Кнопки, TEdit и т.п.?

А зачем вам тогда собственно Delphi с его огромными библиотеками? Возьмите и слепипе все это без использования каких-либо библиотек (хоть и на Delphi, но без использования VCL, как модно говорить "используя только WinAPI"). И места и памяти займет минимум.

Вот только зачем?


 
MaratFromTomsk   (2002-02-05 08:03) [7]

На мой взгляд, правильно делать страницы свойств.
а в них отрисовывать то что надо
ну примерно так как это в Дельфе сделано
свойства среды, редактора ...

я считаю неправильным использование каких либо общих редакторов
типа Object Inspector для выполнения этой работы.
если ты не знаешь какие свойства у тебя д.б.
это означает что ты не знаешь какую программу ты пишешь ...


 
Ura   (2002-02-05 11:06) [8]

Цель: создать неизменяемый код программы, а изменять извне только список настроек?
Все равно придеться внутри хранить объект настроек!!!
Предложение такое...
Каждый класс настроек т.е. название класса настроек + название каждой настройки + тип переменной каждой настройки + форма для их редактирования = DLL
Алгоритм такой:
1. Сканируешь список DLL с настройками.
2. В список слева занисишь название класса настроек (из DLL)+ адрес на функцию вызова формы для редактирования
3. Создаешь структуру взяв из DLL название настроек и их тип.
4. Передаешь в DLL ссылку ко компонент правой панели в который будем встраивать форму для редактирования настроек + еще кое что.
5. При активизации настройки
а) уничтожаешь форму которая сейчас в правой панели
б) создаешь форму для данной настройки
в) либо она сома дочится (адрес передали то), либо дочишь ее сам
г) отображаешь форму...

Примечание: Все равно надо будет перекомпилировать при изменении колличества настроек или изменении названий настроек. Но выгода тоже есть небольшая... можно обработки настроек менять :-) можно внешний вид :-).




Страницы: 1 вся ветка

Текущий архив: 2002.02.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
1-66561
maks_f
2002-02-05 14:40
2002.02.21
Как получить процедуру из DLL


3-66435
Alan
2002-01-27 12:22
2002.02.21
Добавление таблицы в базу MS SQL Server 7.0


1-66527
sammy
2002-02-07 08:38
2002.02.21
Удаление файлов.


1-66572
Алиса
2002-02-05 15:29
2002.02.21
Глюк с while?


1-66586
yaJohn
2002-02-05 18:13
2002.02.21
Shtrih kodi.