Добавление настроек в программу....?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Stalker1986
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 19.01.2009 (Пн) 7:23

Добавление настроек в программу....?

Сообщение Stalker1986 » 01.02.2009 (Вс) 8:02

Как можно реализовать форму настроек программы и сделать так чтобы эти настройки сохранялись при следующем запуске? Например настройки внешнего вида или размера формы окна. И вообще как это делается?

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Добавление настроек в программу....?

Сообщение Saturn.65 » 01.02.2009 (Вс) 9:28

Можешь писать данные в реестр, а потом при загрузке программы их считывать.
Главное, ребята, сердцем не стареть...

Йода
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 99
Зарегистрирован: 06.01.2008 (Вс) 21:04
Откуда: Московская область

Re: Добавление настроек в программу....?

Сообщение Йода » 01.02.2009 (Вс) 9:52

ИМХО, самый лучший вариант - создать один user-defined type(структуру) в котором будут находиться все настройки, и сохранять его в файл. Когда надо-загружать. Весь код(без учёта декларации структуры) занимает 6 строк:

Необходимые декларации:
Код: Выделить всё
Public Type OPTIONS_GLOBAL
...параметры которые надо сохранить
End Type

Public udtGlobalSettings As OPTIONS_GLOBAL

Сохранить настройки:
Код: Выделить всё
Open App.Path & "/Settings.bin" For Binary As #1
Put #1, , udtGlobalSettings
Close #1

Загрузить настройки:
Код: Выделить всё
Open App.Path & "/Settings.bin" For Binary As #1
Get #1, , udtGlobalSettings
Close #1
Sub or Function not defined

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Добавление настроек в программу....?

Сообщение Хакер » 01.02.2009 (Вс) 15:43

Всё же настройки, особенно размеры и положение окна, тулбаров и слайдеров, лучше хранить в реестре в HKCU, чтобы обеспечить многопользовательский подход.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Stalker1986
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 19.01.2009 (Пн) 7:23

Re: Добавление настроек в программу....?

Сообщение Stalker1986 » 02.02.2009 (Пн) 7:21

Йода писал(а):ИМХО, самый лучший вариант - создать один user-defined type(структуру) в котором будут находиться все настройки, и сохранять его в файл. Когда надо-загружать. Весь код(без учёта декларации структуры) занимает 6 строк:

Необходимые декларации:
Код: Выделить всё
Public Type OPTIONS_GLOBAL
...параметры которые надо сохранить
End Type

Public udtGlobalSettings As OPTIONS_GLOBAL

Сохранить настройки:
Код: Выделить всё
Open App.Path & "/Settings.bin" For Binary As #1
Put #1, , udtGlobalSettings
Close #1

Загрузить настройки:
Код: Выделить всё
Open App.Path & "/Settings.bin" For Binary As #1
Get #1, , udtGlobalSettings
Close #1


А можешь привести один пример? а то в общем виде что то не дошло (я ж говорю - чайник ещё), или хотя бы расписать с комментами.

Йода
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 99
Зарегистрирован: 06.01.2008 (Вс) 21:04
Откуда: Московская область

Re: Добавление настроек в программу....?

Сообщение Йода » 02.02.2009 (Пн) 8:00

1. Вариант Хакера более универсален.
2.
Stalker1986 писал(а):я ж говорю - чайник ещё

Копипастинг без понимания копируемого кода не поможет перестать тебе быть "Чайником"
Stalker1986 писал(а):или хотя бы расписать с комментами

Напиши (можно в лс), какие части моего кода вызывают у тебя трудности?
Sub or Function not defined

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Добавление настроек в программу....?

Сообщение Saturn.65 » 03.02.2009 (Вт) 18:15

Может написано и через зад, но сохраняет настройки. Запиши число, поставь галочку, закрой окно. При открытии окна настройки сохранятся: галочка будет стоять и число будет записано. На базе этого можно любые настройки сохранять.
Сохранение настроек.rar
(13.77 Кб) Скачиваний: 38
Главное, ребята, сердцем не стареть...

Йода
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 99
Зарегистрирован: 06.01.2008 (Вс) 21:04
Откуда: Московская область

Re: Добавление настроек в программу....?

Сообщение Йода » 04.02.2009 (Ср) 0:11

Saturn.65, таскать с собой OCX для работы с реестром, который является лишь обёрткой над соответствующим API я считаю неправильным. Почему? Да потому что...
во первых: теоретически быстрее вызвать API функцию, чем обёртку над ней (на практике разница обычно не заметна).
Во вторых: простота использования обёртки достигается как правило за счет урезания функционала. Если же обёртка полностью повторяет собой API функцию (лично я таких не видел), то нафиг она не нужна. К тому же использование подобной обёртки наверняка не будет проще, чем юзать API.
В третьих: каждую такую обёртку надо изучать, не факт что к ней в комплекте будет мануал.
В четвёртых: не факт, что обёртка написана без багов.
В пятых: зачем мне таскать с собой сторонний компонент?

Я написал простой пример для сохранения произвольного количества параметров в реестре через API(во вложении). От многих подобных он отличается тем, что в реестре сохраняется всё тот же user-defined type, а не каждый параметр по отдельности.
...и в последнее: лично у меня любые врапперы над API вызывают непреодолимый рвотный рефлекс. :pukel:
Вложения
prjRegistryDemo.rar
Сохранение настроек в реестре
(2.42 Кб) Скачиваний: 29
Sub or Function not defined


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 41

    TopList  
cron