Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234

Как при старте программы восстановить в субменю Checked true из ini файла

25.12.2015, 15:59. Показов 1303. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Вот столкнулся с такой проблемой .
во время работы с программой в суб-меню я выбираю какие либо опции выбираю параметр и сразу же записываю их данные в ини файл.
все прекрасно! но как при старте возобновить ранее выбранные параметры из сохраненных настроек?

C++
1
2
3
4
TMenuItem *m = dynamic_cast <TMenuItem *> (Sender);
Ini->WriteInteger("Report Settings","Coloun MaxWidth",colwidth);
Ini->WriteString("Report Settings","Menu",m->Name);
Ini->WriteInteger("Report Settings","Mark Menu",m->MenuIndex);
пробовал много вариантов но чёт не получается
вот к примеру при старте в меню N1601 должен чекнут
C++
1
2
3
[CPP]// MainMenu1->Items->Name("N1601")->
 // TMenuItem *we = dynamic_cast <TMenuItem *> (we->Find("N1601"));
    // we->Checked = true;
[/CPP]
Изображения
 
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.12.2015, 15:59
Ответы с готовыми решениями:

Нужно, чтобы при checkbox.checked=true я мог набирать текст в textbox-е, ну и соответственно при checkbox.checked=false - нет.
есть checkbox и textbox. Нужно, чтобы при checkbox.checked=true я мог набирать текст в textbox-е, ну и соответственно при...

Сохранение текста из программы в текстовый документ и загрузка из того же файла при старте программы
Инфа записывается в stringGadget и при нажатии кнопки вставляеттся в один из пяти Listview ( в зависимости от того что выбрано в...

создание текстового файла при старте программы
Добрый вечер, нужно создать текстовый файл при запуске моей программе(log.txt) в папке с программой а если существует файл то уже нечего не...

10
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
25.12.2015, 16:28  [ТС]
типа так но это только в меню. а мне надо в суб меню.
C++
1
MainMenu1->FindItem(6,0)->Checked = true;
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33377 / 21501 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
25.12.2015, 16:30
Придется писать рекурсивную функцию поиска элемента в меню по его Caption-у, все готовые встроенные методы ищут только на верхнем уровне.
0
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
25.12.2015, 16:35
На ум приходит примерно такая конструкция:
C++
1
2
3
4
5
TMenuItem *mi =MainMenu1->FindItem(6,0);
if(mi){
 int i=Ini->ReadInteger("Report Settings","Mark Menu",-1);
 if(i>=0)  mi=mi->Items[i] ->Checked = true;
}
Хотя
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
25.12.2015, 16:44  [ТС]
volvo,
пробовал по Caption-у
C++
1
TMenuItem *we = dynamic_cast <TMenuItem *> (we->Find("N1601"));
компилируется без ошибки
но при старте программы вылетает ошибка!

Добавлено через 55 секунд
Hikari,
не сработало.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33377 / 21501 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
25.12.2015, 16:45
Я ж только что написал:
Цитата Сообщение от volvo Посмотреть сообщение
все готовые встроенные методы ищут только на верхнем уровне.
А у тебя к тому же в we - мусор...
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
25.12.2015, 16:46  [ТС]
volvo,
можно любой пример?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33377 / 21501 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
25.12.2015, 17:03
Лучший ответ Сообщение было отмечено lifeforce как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
TMenuItem *SearchItem(TMenuItem *mi, String s)
{
    TMenuItem *it = mi->Find(s);
    if(it) return it;
 
    for(int i = 0; i < mi->Count; i++)
    {
        it = mi->operator [](i)->Find(s);
        if(it) return it;
 
        it = SearchItem(mi->operator [](i), s);
        if(it) return it;
    }
    return 0;
}
TMenuItem *SearchMainMenu(TMainMenu *mm, String s)
{
    for(int i = 0; i < mm->Items->Count; i++)
    {
        TMenuItem *it = SearchItem(mm->Items->operator [](i), s);
        if(it) return it;
    }
    return 0;
}
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    SearchMainMenu(MainMenu1, "N1601")->Checked = true;
}
1
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
25.12.2015, 17:09  [ТС]
volvo,
при старте ошибка.
пытаюсь разобраться.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33377 / 21501 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
25.12.2015, 17:33
Ну не знаю, у меня нормально находит айтем и отмечает его.
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
25.12.2015, 18:35  [ТС]
функция находит "N1601"
поставив
C++
1
ShowMessage(s);
выводит что нашел но не чекает

Добавлено через 30 минут
volvo,
ну ни вкакую не хочет работать!
может причина что там пользую радио-айтем?

Добавлено через 31 минуту
volvo,
все заработало!
C++
1
SearchMainMenu(MainMenu1, String(colwidth))->Checked = true;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.12.2015, 18:35
Помогаю со студенческими работами здесь

Загрузить данные из файла в memo при старте программы
здравствуйте! подскажите как можно загрузить данные из файла в memo при старте программы. т.е. не по нажатию кнопки , а именно...

Считывание пароля для .mdb из файла при старте программы
Всем доброго времени суток. Помогите решить проблему со считыванием пароля из файла для базы Access. Есть ADOConnection, ADOQuery на 1ой...

Восстановить данные из ini-файла в select
Всем привет. Есть ini-файл вида: forename=forename1 surname=surname1

Как можно задать checked или что то еще другим значениям на сайте ? А то при использовании checked для дргого
Как можно задать checked или что то еще другим значениям на сайте ? А то при использовании checked для дргого элемента, первый перестает...

Как отследить удерживание кнопки при старте программы?
Например хочу чтобы при нажатой Volume UP и запуске моего приложения чтото происходило. Все перерыл, но везде одно и то же про...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru