Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Сохранение предыдущих параметров


Автор: Chyslyvchyk 24.7.2004, 13:33
1) Как сделать, чтобы программа сохраняла последнее состояние CheckBox? Если последнее было checked, значит загружается следующий раз checked.

2) Не сохраняются данные в ComboBox. Что не так?
Код

procedure TMainForm.ComboBoxKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
if Key = 13 then
ComboBox.Items.Add(Combobox.Text);
end;

Автор: _hunter 24.7.2004, 13:37
1)
при закрытии формы сохраняй состояние всех компонентов ( состояние которых нужно сохранять smile.gif ) в файл/реестр
2)
посмотри вызывется ли у тебя TMainForm.ComboBoxKeyDown() -- скорее всего нет
попробуй отключить KeyPreview формы

Автор: Chyslyvchyk 24.7.2004, 13:45
Цитата
1) при закрытии формы сохраняй состояние всех компонентов ( состояние которых нужно сохранять  ) в файл/реестр

Ой-ё-ёй...

Цитата
2) посмотри вызывется ли у тебя TMainForm.ComboBoxKeyDown() -- скорее всего нет
попробуй отключить KeyPreview формы


Запускаю проект, пишу слово в ComboBox, нажимаю Enter, проверяю - записалось. Закрываю проект. Опять запускаю проект - в ComboBox только те значения, которые были прописаны ручками в Object Inspector, а того слова, что только что было записано - нет. sad.gif

Автор: _hunter 24.7.2004, 13:51
а... немного не так понял
дык так и должно быть -- ведь ты нигде специально не сохраняеш вводимый тест
( сохранять анологично ( при закрытии/определенном действии делаеш ComboBox.Items.SaveToFile(FileName); ) ) на OnShow делаеш LoadFromFile

Автор: Borland_Delphi_6 24.7.2004, 14:45
Самый простой способ сохранить настройки любого компонента - скачать LDU Tools, в нем будет фишка - Object Storage ( вроде так ), нужно тока будет путь в реестре указать и нужные параметры любого эллемента формы! thumbs-up.gif Все очень легко biggrin.gif

Автор: Cashey 24.7.2004, 16:03
Все, что вноситься юзером ручками не может быть сохранено после завершения работы программы, Поэтому все изменения надо где-то хранить, либо в реестре, либо в файле, для такой простой задачи целесообразно хранить все в ini файле

Автор: Chyslyvchyk 24.7.2004, 23:22
_hunter, ты лучший!!! Пасиба! thumbs-up.gif


Подскажите еще, как сравнить текст, что вводит юзвер в Combobox со строчками, что уже есть в Combobox листе.
Что-то типа:
Код
if Combobox.Text = одному из Items в Combobox
then
вывести сообщение "Блин, у тя уже есть такая запись!"


biggrin.gif

Автор: Borland_Delphi_6 25.7.2004, 00:02
Chyslyvchyk
Одна тема - один вопрос! ;)

Автор: Chyslyvchyk 25.7.2004, 00:41
Borland_Delphi_6, сорри, забываю правила....


Это:
Цитата
Подскажите еще, как сравнить текст, что вводит юзвер в Combobox со строчками, что уже есть в Combobox листе.
Что-то типа:
Код
if Combobox.Text = одному из Items в Combobox
then
вывести сообщение "Блин, у тя уже есть такая запись!"

перенесено http://forum.vingrad.ru/index.php?showtopic=26764

Автор: Chyslyvchyk 25.7.2004, 13:37
Цитата
1) при закрытии формы сохраняй состояние всех компонентов ( состояние которых нужно сохранять  ) в файл/реестр


Как сохранить состояние CheckBox в файл?

Автор: December 25.7.2004, 13:46
Сохранить состояние в TStrings (строчку-признак добавить) и сохранить TStrings.

Автор: _hunter 25.7.2004, 16:09
вообще-то проще всего сохранять состояние в TIniFile:
IniFile.WriteBool(CheckBox.Name, 'Checked', CheckBox.Checked); -- это при закрытии формы

а про реестр я упомянул потому, что туда можно сохранять информацию о принадлежности компонентов ( у тебя на разных формах могут быть боксы с одинаковыми именами ) путем создания "папок" ( типа такого: ИмяФормы\ИмяКомпонента )

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)