Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранить изменения на форме в RadioGroup 
:(
    Опции темы
Самозванка
Дата 23.1.2007, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Девушка в стиле IT
**


Профиль
Группа: Завсегдатай
Сообщений: 484
Регистрация: 5.9.2006
Где: USA

Репутация: нет
Всего: 40



Есть форма, на которой расположена radiogroup с разными кнопочками. Это у меня является формой настроек.  К примеру сначала выбрана первая кнопка... Запускаю прогу, хочу изменить ее на вторую или другую, изменяю, а после закрытия этой формы, и потом последующего ее открытия все равно checked первой кнопки, как сделать чтобы он изменялся и сохранялся?
PM MAIL ICQ   Вверх
Anikmar
Дата 23.1.2007, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Сохранить изменения вручную. Например в регистре или в ini файле.
PM MAIL ICQ   Вверх
Самозванка
Дата 23.1.2007, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Девушка в стиле IT
**


Профиль
Группа: Завсегдатай
Сообщений: 484
Регистрация: 5.9.2006
Где: USA

Репутация: нет
Всего: 40



Я хочу чтобы изменялись checked по кнопке ОК.
А это проще нельзя сделать без ini файлов?

Добавлено @ 17:52 
И еще, после закрытия мной этой формы, мне надо чтобы в памяти как то оставался , какой button был выбран, чтобы использовать это в другой форме, опираясь на эту форму.
PM MAIL ICQ   Вверх
Anikmar
Дата 23.1.2007, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Существуют сторонние библиотеки, которые содержат компоненты для сохранения форм. 

Лично я использую созранение в ini-файле.
Формы-формами, а настройки нужны при запуске программы, формы на этот момент просто не существует.


Цитата(Самозванка @  23.1.2007,  17:49 Найти цитируемый пост)
И еще, после закрытия мной этой формы, мне надо чтобы в памяти как то оставался , какой button был выбран, чтобы использовать это в другой форме, опираясь на эту форму.

Для этого существует главная форма, в которой можно держать глобальные переменные настроек. Можно и в отдельном модуле.
Лично я создаю отдельный модуль с классом MyGlobalVars, в котором держу все настройки, а при запуске программы создаю объект этого класса - он глобальный, виден всем, в нем держу настройки.
PM MAIL ICQ   Вверх
Самозванка
Дата 23.1.2007, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Девушка в стиле IT
**


Профиль
Группа: Завсегдатай
Сообщений: 484
Регистрация: 5.9.2006
Где: USA

Репутация: нет
Всего: 40



Спасибо. А если не трудно, хотелось бы увидеть пример такого кода с сохранениями настроек, я такое раньше некогда не использовала просто и не представляю как это реализовать.
PM MAIL ICQ   Вверх
Anikmar
Дата 23.1.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



В моем проекте есть служебный класс для хранения настроек.

При запуске программы я их считываю при помощи такого метода:
Код

bool TLCC_SysParam::LoadParam(void)
{
    AnsiString ExePath;
    
    iFile = new TIniFile(IniFile);
    // [LCC]
    FileNetConfig = iFile->ReadString("LCC","FileNetConfig","");
    LastSelectUser = iFile->ReadInteger("LCC","LastSelectUser",0);
    LastUpdate = iFile->ReadInteger("LCC","LastUpdate",0);
    UpdateName = iFile->ReadString("LCC","UpdateName","");
    UpdateExe = iFile->ReadString("LCC","UpdateExe","");
    FlagAutoSave = iFile->ReadInteger("LCC","AutoSaveConfig",1);

    // [LCCL_DataBase]
    NameLogFileAdminDB = iFile->ReadString("LCCL_DataBase","NameLogFileAdminDB","");
    MaxSizeLogFileAdminDB = iFile->ReadInteger("LCCL_DataBase","MaxSizeLogFileAdminDB",1);
    ModeLogFileAdminDB = iFile->ReadInteger("LCCL_DataBase","ModeLogFileAdminDB",0);

    // [LCCL_Journal]
    NameLogFileJournal = iFile->ReadString("LCCL_Journal","NameLogFileJournal","");
    ModeLogFileJournal = iFile->ReadInteger("LCCL_Journal","ModeLogFileJournal",1);
    MaxSizeLogFileJournal = iFile->ReadInteger("LCCL_Journal","MaxSizeLogFileJournal",5000);
    ModeWorkJournal = iFile->ReadInteger("LCCL_Journal","ModeWorkJournal",1);

    // [COLORS]
    ColorOrderTitle =
        (TColor)(iFile->ReadInteger("COLORS","ColorOrderTitle",clBtnShadow));
    ColorNoOrderTitle =
        (TColor)(iFile->ReadInteger("COLORS","ColorNoOrderTitle",clBtnFace));

    // [SOUNDS]
    ExePath = ExtractFilePath(Application->ExeName);

    ErrorFileSoundComErr = iFile->ReadString(
        "SOUNDS",
        "ErrorFileSoundComErr",
        ExePath + "MEDIA\\Error.wav");
    ErrorFileSoundValErr = iFile->ReadString(
        "SOUNDS",
        "ErrorFileSoundValErr",
        ExePath + "MEDIA\\ErrorValidate.wav");
    ErrorFileSoundDBErr = iFile->ReadString(
        "SOUNDS",
        "ErrorFileSoundDBErr",
        ExePath + "MEDIA\\ErrorLock.wav");
    ErrorFileSoundCFDErr = iFile->ReadString(
        "SOUNDS",
        "ErrorFileSoundCFDErr",
        ExePath + "MEDIA\\ErrorCFD.wav");
    ErrorFileSoundPrgErr = iFile->ReadString(
        "SOUNDS",
        "ErrorFileSoundPrgErr",
        ExePath + "MEDIA\\ErrorPrg.wav");

    delete iFile;
    return true;
}


А записываю, соответственно так:
Код

bool TLCC_SysParam::SaveParam(AnsiString sName)
{
    if (!FlagInit) return false;
    if (sName == "") sName = IniFile;

    if (!FileExists(sName))
        MAN_TextMessage("Создан файл локальной конфигурации: \n" + sName);

    iFile = new TIniFile(sName);

    // [LCC}
    iFile->WriteString("LCC","FileNetConfig",FileNetConfig);
    iFile->WriteInteger("LCC","LastSelectUser",LastSelectUser);
    iFile->WriteInteger("LCC","LastUpdate",LastUpdate);
    iFile->WriteString("LCC","UpdateName",UpdateName);
    iFile->WriteString("LCC","UpdateExe",UpdateExe);
    iFile->WriteInteger("LCC","AutoSaveConfig",FlagAutoSave);


    // [LCCL_DataBase]
    iFile->WriteString("LCCL_DataBase","NameLogFileAdminDB",NameLogFileAdminDB);
    iFile->WriteInteger("LCCL_DataBase","MaxSizeLogFileAdminDB",MaxSizeLogFileAdminDB);
    iFile->WriteInteger("LCCL_DataBase","ModeLogFileAdminDB",ModeLogFileAdminDB);

    // [LCCL_Journal]
    iFile->WriteString("LCCL_Journal","NameLogFileJournal",NameLogFileJournal);
    iFile->WriteInteger("LCCL_Journal","ModeLogFileJournal",ModeLogFileJournal);
    iFile->WriteInteger("LCCL_Journal","MaxSizeLogFileJournal",MaxSizeLogFileJournal);
    iFile->WriteInteger("LCCL_Journal","ModeWorkJournal",ModeWorkJournal);

    // [COLORS]
    iFile->WriteInteger("COLORS","ColorOrderTitle",ColorOrderTitle);
    iFile->WriteInteger("COLORS","ColorNoOrderTitle",ColorNoOrderTitle);

    // [SOUNDS]
    iFile->WriteString("SOUNDS","ErrorFileSoundComErr",ErrorFileSoundComErr);
    iFile->WriteString("SOUNDS","ErrorFileSoundValErr",ErrorFileSoundValErr);
    iFile->WriteString("SOUNDS","ErrorFileSoundDBErr",ErrorFileSoundDBErr);
    iFile->WriteString("SOUNDS","ErrorFileSoundCFDErr",ErrorFileSoundCFDErr);
    iFile->WriteString("SOUNDS","ErrorFileSoundPrgErr",ErrorFileSoundPrgErr);

    delete iFile;

    return true;
}



Это сообщение отредактировал(а) Anikmar - 23.1.2007, 18:16
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1124 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.