Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
 вопрос с checkbox и dropdownlistbox  [new]
Montesuma
Member

Откуда:
Сообщений: 19
Здравствуйте!
Есть у меня еще один нестандартный вопрос :). Заключается он в следующем. Есть dropdownlistbox и checkbox. Допустим, что пользователь что-то выбрал из dropdownlistbox и в checkbox'е поставил флажок. Нужно сделать так, чтобы после перезапуска приложения, а так же после перезагрузки системы и последующего запуска приложения, элемент checkbox.Checked был равен true, а в dropdownlistbox'е сохранились те данные, которые были введены пользователем до перезапуска приложения. Другими словами, эти элементы должны сохранять настройки пользователя. Возможно ли это реализовать средствами ПБ? Если кто-то сталкивался, подскажите пожалуйста в какую сторону копать.

Заранее благодарен.
21 сен 10, 20:21    [9477736]     Ответить | Цитировать Сообщить модератору
 Re: вопрос с checkbox и dropdownlistbox  [new]
AIS
Member

Откуда:
Сообщений: 1695
Montesuma,
перед закрытием приложения сохраняй значения (например, в INI-файле) этих элементов, а при открытии приложения - считывай и устанавливай эти значения в них.
22 сен 10, 00:08    [9478623]     Ответить | Цитировать Сообщить модератору
 Re: вопрос с checkbox и dropdownlistbox  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
Ну или как нормальные люди делают, пиши в БД...
22 сен 10, 19:28    [9485114]     Ответить | Цитировать Сообщить модератору
 Re: вопрос с checkbox и dropdownlistbox  [new]
Montesuma
Member

Откуда:
Сообщений: 19
AIS
Montesuma,
перед закрытием приложения сохраняй значения (например, в INI-файле) этих элементов, а при открытии приложения - считывай и устанавливай эти значения в них.


Проблема в том, что мне никогда не приходилось работать с ini файлами. Тут надо понимать как работать с параметрами в ini файле (ключами). Погуглил по форуму и по сети, толкового ничего не нашел по ini файлам. Если знаете где можно почитать по ini файлам, или скинете какой-нибудь кусок кода по работе с ним - буду признателен. Создал файл ini в папке с проэктом, в него по нажатию на чекбокс пишу checkbox.Checked = TRUE. Потом на событии Open пишу такое:

integer li_FileNum
string ls_Emp_Input
long ll_FLength

ll_FLength = FileLength("путь к файлу")
li_FileNum = FileOpen("путь к файлу", LineMode!, Write!, LockWrite!, Append!)
FileRead(li_FileNum, ls_Emp_Input)
FileClose(li_FileNum)

После появления формы флажок на чекбоксе не стоит, либо чтение не происходит, либо в самом ini файле должно быть еще что-то, чего я не знаю. Понимаю что полный примитивизм, но просто я раньше с ini файлами не работал и как следствие, где-то туплю. Я понимаю что делаю что-то не то, но что - не понимаю :(

Филлип
Это мое приложение не работает с БД. Но всеравно спасибо.
22 сен 10, 20:19    [9485306]     Ответить | Цитировать Сообщить модератору
 Re: вопрос с checkbox и dropdownlistbox  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
Montesuma

Это мое приложение не работает с БД. Но все равно спасибо.

На PowerBuilderе? Гвозди микроскопом?
22 сен 10, 20:27    [9485340]     Ответить | Цитировать Сообщить модератору
 Re: вопрос с checkbox и dropdownlistbox  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3154
Montesuma

Я понимаю что делаю что-то не то, но что - не понимаю :(

Выкиньте весь свой код, прочитайте в help'е про ProfileString/SetProfileString и т.д. и творчески перепишите его.
23 сен 10, 09:47    [9486625]     Ответить | Цитировать Сообщить модератору
 Re: вопрос с checkbox и dropdownlistbox  [new]
AIS
Member

Откуда:
Сообщений: 1695
Филипп
Ну или как нормальные люди делают, пиши в БД...

Интересно, а где "нормальные люди" берут данные необходимые при старте ПО до момента подключения к БД?Картинка с другого сайта.
P.S. Хотя, конечно, есть ещё вариант - засорять реестр.
23 сен 10, 10:28    [9486950]     Ответить | Цитировать Сообщить модератору
 Re: вопрос с checkbox и dropdownlistbox  [new]
shut-up-and-skate
Member

Откуда: ВАО
Сообщений: 4259
ini-файлы используй
запись SetProfileString
чтение profilestring
23 сен 10, 11:22    [9487525]     Ответить | Цитировать Сообщить модератору
 Re: вопрос с checkbox и dropdownlistbox  [new]
Montesuma
Member

Откуда:
Сообщений: 19
Спасибо за ваши ответы, поковырял я эти функции и видимо чето все-равно не догоняю. Есть два DDLB и на каждый висит по переменной.
Пишу в файл:
SetProfileString('путь к файлу', 'Application', 'ls_h', ls_h)
SetProfileString('путь к файлу', 'Application', 'ls_m', ls_m)


Все прекрасно пишется в файл и присваивается новое значение переменным. В общем работает.

Пытаюсь прочитать из файла:
ProfileString('путь к файлу', 'Application', 'ls_h', '0')
ProfileString('путь к файлу', 'Application', 'ls_m', '0')

И ничего... В заданных элементах управления не отображаються значения сохраненные в ini файле.
Не пойму я в чем шутка юмора. Что только не пробовал...
23 сен 10, 18:58    [9491859]     Ответить | Цитировать Сообщить модератору
 Re: вопрос с checkbox и dropdownlistbox  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
AIS
Филипп
Ну или как нормальные люди делают, пиши в БД...

Интересно, а где "нормальные люди" берут данные необходимые при старте ПО до момента подключения к БД?Картинка с другого сайта.
P.S. Хотя, конечно, есть ещё вариант - засорять реестр.

нормальные люди понимают, что там где сегодня 2 сеттинга, записанные в ini file или registry, послезавтра будет 22.
Выбор из dropdownlistbox и в checkbox'е поставленный флажок ну сршенно не напоминают дейтствия, независимые от некоего набора данных, отсюда и упоминание БД. Но поскольку оратор гвозди микроскопом забивает, то что тут обсуждать :-)
23 сен 10, 19:01    [9491882]     Ответить | Цитировать Сообщить модератору
 Re: вопрос с checkbox и dropdownlistbox  [new]
AIS
Member

Откуда:
Сообщений: 1695
Montesuma
...Пытаюсь прочитать из файла:
ProfileString('путь к файлу', 'Application', 'ls_h', '0')
ProfileString('путь к файлу', 'Application', 'ls_m', '0')

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

ProfileString возвращает строковое значение.
В зависимости от его значения, надо "что-то устанавливать".
Например, если при checkbox.Checked = TRUE Вы сохранили '1', то в событии "constructor" для "checkbox", можно вставить следующее:
 if ls_return='1' then
    checkbox.Checked = TRUE
 else
    checkbox.Checked = FALSE
 end if
23 сен 10, 20:17    [9492179]     Ответить | Цитировать Сообщить модератору
 Re: вопрос с checkbox и dropdownlistbox  [new]
VanoR
Member

Откуда: оттуда
Сообщений: 711
тоже свое "Я" вставлю )
checkbox.Checked = ( ProfileString('путь к файлу', 'Application', 'ls_h', '0') = '1' )
23 сен 10, 21:08    [9492300]     Ответить | Цитировать Сообщить модератору
 Re: вопрос с checkbox и dropdownlistbox  [new]
Montesuma
Member

Откуда:
Сообщений: 19
Фух, разобрался, работает :) Большое всем спасибо за помощь, очень признателен. Особенно AIS'у и VanoR'у. Вам отдельная благодарность :)
24 сен 10, 14:35    [9496911]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить