Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 17.04.2019
Сообщений: 76
RAD XE3+

Как поставить галочку в CheckBox, если в реестре стоит значение =1 ?

26.10.2019, 21:56. Показов 1968. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте как поставить галочку CheckBox если в реестре стоит значение 1 а если стоит 0 то не ставить галочку
Delphi
1
2
3
4
5
6
Reg := TRegistry.Create;
reg := TRegistry.Create(KEY_WRITE or KEY_WOW64_64KEY);
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('SYSTEM\CurrentControlSet\services\usbhub\hubg',true);
reg.WriteInteger('DisableOnSoftRemove',1);
reg.CloseKey;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.10.2019, 21:56
Ответы с готовыми решениями:

Как поставить галочку в CheckBox на интернет-странице?
Суть проблемы вот в чём При создании программы авторегера на сайте присутствует компонент checkbox на котором надо нажать галочку и вот...

Как программно, командой или ключом в реестре поставить эту галочку - раздавать интернет другим ПК?
Как программно (владею Object Pascal), командой или ключом в реестре поставить эту галочку - "разрешить другим пользователям сети...

Как снять галочку с checkBox?
неработает код, какой синтакс? private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { //...

33
Модератор
 Аватар для D1973
9902 / 6440 / 2454
Регистрация: 21.01.2014
Сообщений: 27,338
Записей в блоге: 3
27.10.2019, 06:43
Студворк — интернет-сервис помощи студентам
cyberkeybord, попробуйте скомпилировать свое приложение в той же разрядности, что и разрядность ОС...
0
0 / 0 / 0
Регистрация: 17.04.2019
Сообщений: 76
27.10.2019, 06:58  [ТС]
по тыкал не канает придется тогда обойтись без галочки (
0
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,328
27.10.2019, 07:19
Цитата Сообщение от cyberkeybord Посмотреть сообщение
а почему тогда при повторном запуске программы чекбоксе не стоит галочка ?
А неизвестно. Приложи сюда проект и может увидим что мешает программе.

Добавлено через 10 минут
Блин, открывать же и на чтение надо!
Delphi
1
2
3
4
5
6
7
8
9
10
  reg:=TRegistry.Create(KEY_WRITE or KEY_READ or KEY_WOW64_64KEY); // Здесь добавить KEY_READ
  reg.RootKey:=HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEM\CurrentControlSet\services\usbhub\hubg', false);
  try
    CheckBox1.Checked := reg.ReadBool('DisableOnSoftRemove');
  except
    CheckBox1.Checked := false; // Или true, смотря что вам нужно по умолчанию.
  end;
  reg.CloseKey;
  reg.Free;
Добавлено через 1 минуту
Что интересно, в Delphi 7 и без KEY_READ считывало значение, а в XE3 уже не хочет.
1
0 / 0 / 0
Регистрация: 17.04.2019
Сообщений: 76
27.10.2019, 07:36  [ТС]
TestSource.zip
0
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,328
27.10.2019, 10:21
cyberkeybord, см. выше. В Create добавить параметр KEY_READ.
0
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,180
27.10.2019, 11:35
Цитата Сообщение от AzAtom Посмотреть сообщение
Verevkin, почему?
Патамушта замалчивание исключения - это костыль троешника.
Цитата Сообщение от AzAtom Посмотреть сообщение
Что делать, если параметра ещё нет в реестре/файле настроек, первый запуск программы?
Надо не допускать возникновения такой ситуации.
Delphi
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
procedure TForm1.Button1Click(Sender: TObject);
var
  reg: TRegistry;
  success: boolean;
const
  key = 'Software\0';
  name = 'DisableOnSoftRemove';
begin
  success:= false;
  try
    reg:= TRegistry.Create();
    try
      reg.RootKey:= HKEY_CURRENT_USER;
      if not reg.KeyExists(key)
        then exit;
      
      success:= reg.OpenKey(key, false);
      
      if reg.ValueExists(name)
        then CheckBox1.Checked := reg.ReadBool(name);
    finally
      if success
        then reg.CloseKey();
      reg.Free();
    end;
  except on E: Exception do
    ShowExceptionDlg(E); // вывод причины ошибки
  end;
end;
Но если исключение всёж произойдёт, нужно на него как-то отреагировать, т.к. в данном случае это внештатная ситуация. Например - вывести сообщение на экран/в лог причину исключения/его класс.
0
0 / 0 / 0
Регистрация: 17.04.2019
Сообщений: 76
27.10.2019, 13:31  [ТС]
короче делал так вроде пашет может тоже кому пригодится
TestSource.zip
0
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,328
27.10.2019, 15:14
Цитата Сообщение от Verevkin Посмотреть сообщение
Патамушта замалчивание исключения - это костыль троешника.
Смотря какое исключение. Тот же TRegistry бросает исключение, когда нет такого ключа, а MiniReg просто не меняет значение переменной без никаких исключений, что хорошо подходит для данного случая. Ну нет так нет, что теперь, вешаться? При выходе из программы создадим нужный параметр и вопрос закрыт.

Добавлено через 5 минут
Цитата Сообщение от cyberkeybord Посмотреть сообщение
делал так вроде пашет
А этот момент не понят:
Delphi
1
2
3
  reg.WriteInteger('DisableOnSoftRemove',0);
  reg.WriteBool('DisableOnSoftRemove1', CheckBox1.Checked);
  Reg.DeleteValue('DisableOnSoftRemove1');
Зачем DisableOnSoftRemove, если при старте проверяется только DisableOnSoftRemove1?
Зачем DisableOnSoftRemove1 записывается и тут же удаляется?
0
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,180
27.10.2019, 15:16
Цитата Сообщение от AzAtom Посмотреть сообщение
Ну нет так нет, что теперь, вешаться? При выходе из программы создадим нужный параметр и вопрос закрыт.
Из-за таких халтурщиков у нас ракеты падают и подводные лодки тонут, люди гибнут.
0
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,328
27.10.2019, 15:24
Verevkin, ну да, конечно. В крайнем случае, при отсутствии параметра чекбокс можно сделать серым, что значит "нет параметра в реестре". Хуже, когда при запуске программы она начинает сыпать исключения, кучи окон с ошибками "Того нет, этого нет, катастрофа, настройку галки не смогла прочитать, поэтому работать не буду" и требует установку, потому, что этот параметр создаётся только установщиком во время установки программы. Вот за такое действительно, нужно лишать зарплаты.

Добавлено через 1 минуту
Смотрю на кучи программ и такое ощущение, что программисты иногда/часто забывают, что программы людям нужны, чтобы с их помощью делать что-то полезное, а не для того, чтобы постоянно обслуживать и обновлять эти программы.

Добавлено через 1 минуту
На счёт ракет можете быть спокойны - мои поделки туда не попадут - я программист-любитель, пишу для себя и очень редко мои программы попадают в общий доступ.

Надеюсь, программы киберклавиатуры тоже не попадут на ракеты.
0
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,180
27.10.2019, 15:26
Цитата Сообщение от AzAtom Посмотреть сообщение
Хуже, когда при запуске программы она начинает сыпать исключения
Мой кусок кода посмотри.
0
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,328
27.10.2019, 16:16
Verevkin, посмотрел. Суть одна - есть параметр - читаем, нет - не читаем.
Тогда уж, лучше здесь использовать MiniReg - там внутри уже все проверки по уму реализованы, а наружу торчит всего одна функция:
Delphi
1
2
3
4
5
6
7
var
  v: dword;
begin
  v := 1; // Default value
  RegGetDWORD(HKEY_CURRENT_USER, 'Software\0\DisableOnSoftRemove', v);
  CheckBox1.Checked := v <> 0;
end;
Или так:
Delphi
1
2
3
4
5
6
7
8
var
  v: dword;
begin
  v := 1; // Default value
  if RegGetDWORD(HKEY_CURRENT_USER, 'Software\0\DisableOnSoftRemove', v) then
    CheckBox1.Checked := v <> 0
  else
    CheckBox1.State := cbGrayed;
И будет очень информативно, корректно и без всяких исключений, с которыми непонятно что делать простому пользователю.
0
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,180
27.10.2019, 16:39
Цитата Сообщение от AzAtom Посмотреть сообщение
Суть одна - есть параметр - читаем, нет - не читаем.
Дело не в задаче, а в подходе к программированию.
0
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,328
27.10.2019, 16:57
Verevkin, у нас разные подходы к общению с пользователем. Я считаю, если пользователю не нужно проводить дополнительных действий при возникновении ошибки, то не нужно выдавать целое окно с этой ошибкой, чтобы пользователю приходилось что-то дополнительно нажимать. Максимум в виде подсказки.

Добавлено через 2 минуты
Verevkin, более тщательную обработку ошибок приму к сведению.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.10.2019, 16:57
Помогаю со студенческими работами здесь

Как сохранить значение (стоит галочка или нет) в checkBox?
Как сохранить значение (стоит галочка или нет) в checkBox?

Как сохранить значение (стоит галочка или нет) в checkBox?
Необходимо, чтобы при перезапуске программы значение checkbox не изменялось ( если при выходе из программы стояла галочка, то при запуске...

Как поставить галочку на элементе в Checkedlistbox
Сделал вот такое foreach (string r in checkedListBox1.Items) { if (r...

Как при правильном ответе ставить галочку в CheckBox
Люди, как правильно написать код чтобы когда ответ был верен(из message box) ставилась галочка в CheckBox и не убиралась???

Как поставить в элементе DataGridViewCheckBoxCell галочку программным способом
Здравствуйте, подскажите пожалуйста как программным методом поставить галочку (установить значение true) программным способом в компонент в...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru