Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.02.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
1-66580
MystiX
2002-02-05 19:28
2002.02.21
Help!!!


3-66453
Dup
2002-01-28 15:41
2002.02.21
dbgrig из нескольких таблиц


6-66634
Иван Мхитаров
2001-12-03 13:45
2002.02.21
Использование TClientSocket внутри TServerClientThread


3-66427
___Nikolay
2002-01-26 16:58
2002.02.21
!!! СРОЧНО PLZ !!! ___КАК АРХИВИРОВАТЬ ФАЙЛЫ В БД____


1-66618
RUS1
2002-02-04 08:51
2002.02.21
Проблемы при создании ярлыка господа !!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский