powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как программно по условию IF уcтановить RadioButton
23 сообщений из 23, страница 1 из 1
Как программно по условию IF уcтановить RadioButton
    #39853517
Sensor230
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста кто знает, что не так?
В DataModule1 есть переменная UserLevel:string, при скрытии главной формы Form1.Hide и вызове Form2 переменной присваивается значение из стольбца "Должность"
Код: pascal
1.
2.
3.
begin
UserLevel:=(DataModule1.ADOQuery1.FieldByName('Должность').AsString);
end;


На Form2 есть RadioGroup1 с двумя радиокнопками (0:UserAdmin, 1:UserNotAdmin), надо при вызове Form2 проверять значение переменной UserLevel и если оно равно или не равно 'Администратор' то установить соответсвующие радиокнопки (UserAdmin или UserNotAdmin)
Делал так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
if  (UserLevel = 'Администратор') then
  begin
  RadioGroup2.ItemIndex:=0;
  FlagZayavka:='СтЗаявка';
  end
  else
  begin
  RadioGroup2.ItemIndex:=1;
  FlagZayavka:='СтЗаявление';
  end;


Не получается.... Спасибо.
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39853529
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sensor230,
Код: pascal
1.
2.
3.
4.
5.
6.
  FlagZayavka:='СтЗаявка';
  if  (UserLevel = 'Администратор') then 
    RadioGroup2.ItemIndex := 0
  else
    RadioGroup2.ItemIndex := 1
  ;
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39853531
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sensor230В DataModule1 есть переменная UserLevel:string, при скрытии главной формы Form1.Hide и вызове Form2 переменной присваивается значение из стольбца "Должность"
Зачем? Это заведомая лажа. Так просто не должно быть никогда.

Sensor230Делал так: .... Не получается....
Что именно не получается? Отладка - это тупой механический процесс. Начните с того места, где точно всё в порядке, пройдите по шагам до того места, где точно не так, и на каждом шагу смотрите - что меняется, что не меняется и соответствует ли это тому, что Вы хотите.

Хотя вообще-то это делается куда проще:

Код: pascal
1.
RadioGroup.ItemIndex := Ord(UserLevel = 'Заявка');


Вслепую мой хрустальный шар говорит, что у Вас где-нибудь затесалась ещё и локальная переменная UserLevel, и до значения из модуля данных Вы не дотягиваетесь.
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39853578
Sensor230
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerSensor230В DataModule1 есть переменная UserLevel:string, при скрытии главной формы Form1.Hide и вызове Form2 переменной присваивается значение из стольбца "Должность"
Зачем? Это заведомая лажа. Так просто не должно быть никогда.
Просто все формы в программе динамические. На первой форме авторизация, после авторизации данные текущего пользователя (ФИО, должность, и еще парочка параметров) храняться в переменных из DataModule1 и запрашиваются по необходимости из любой активной формы. Каждая форма при
fForm1:= TfForm1.Create(Nil) запрашивает эти первичные значения переменных из DataModule1.
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39853588
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sensor230Просто все формы в программе динамические. На первой форме авторизация, после авторизации данные текущего пользователя (ФИО, должность, и еще парочка параметров) храняться в переменных из DataModule1 и запрашиваются по необходимости из любой активной формы. Каждая форма при
fForm1:= TfForm1.Create(Nil) запрашивает эти первичные значения переменных из DataModule1.
И как эти формы узнают о DataModule1? Он везде прописан в uses?
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39853589
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sensor230,

Про интерфейсы я молчу, ибо изначальный вопрос предполагает незнание их.
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39853592
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sensor230На первой форме авторизация, после авторизации данные текущего пользователя
Тогда они должны присваиваться никак не при вызове Form2.
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39853619
Sensor230
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GatorSensor230Просто все формы в программе динамические. На первой форме авторизация, после авторизации данные текущего пользователя (ФИО, должность, и еще парочка параметров) храняться в переменных из DataModule1 и запрашиваются по необходимости из любой активной формы. Каждая форма при
fForm1:= TfForm1.Create(Nil) запрашивает эти первичные значения переменных из DataModule1.
И как эти формы узнают о DataModule1? Он везде прописан в uses?
Естественно во всех формах прописан DataModule1. и все функции и процедуры из модуля вызываются и работают, затык в том, что на одной из форм есть RadioGroup1 с двумя кнопками и задача в том, чтобы при создании формы отмечалась первая или вторая кнопка в соответствии с условием.
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39853620
Sensor230
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerSensor230На первой форме авторизация, после авторизации данные текущего пользователя
Тогда они должны присваиваться никак не при вызове Form2.
Может я где не правильно выразился, но... При нажатии кнопки авторизации сравнивается логин и пароль с данными таблицы, если совпадают то из этой же таблицы тащатся другие данные в т.ч. должность авторизуемого. все это (вытащенное) сохраняется в переменных в DataModule1, создается новая форма уже со значением переменных из модуля, а форма авторизации закрывается.
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39853677
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё это можно сделать прямо в dpr, без DataModule'ей. может будет удобнее?
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39853682
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да и с датамодулем я как-то проблем не вижу. отладку пробовал? там 5 строк кода, все должно быть сразу видно что где не так.
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39853704
Sensor230
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makhaonда и с датамодулем я как-то проблем не вижу. отладку пробовал? там 5 строк кода, все должно быть сразу видно что где не так.
Пробывал и отладку, вообще всё что можно, по кнопкам код работает (ну если его назначить на кнопку), а вот ни по одному из событий создания формы этот же код работать не хочет, я и подумал может кто подскажет. после каждой строки кода даже ShowMessage выводил - все проскочило как надо, а кнопки как не чекинились, так и не чекинятся... Ладно... Спасибо за помощь. Попробую начать сначала
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39853705
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sensor230makhaonда и с датамодулем я как-то проблем не вижу. отладку пробовал? там 5 строк кода, все должно быть сразу видно что где не так.
Пробывал и отладку, вообще всё что можно, по кнопкам код работает (ну если его назначить на кнопку), а вот ни по одному из событий создания формы этот же код работать не хочет, я и подумал может кто подскажет. после каждой строки кода даже ShowMessage выводил - все проскочило как надо, а кнопки как не чекинились, так и не чекинятся... Ладно... Спасибо за помощь. Попробую начать сначалаВообще делают не так. Если вы каждому работнику вводите его должность строкой, то есть шанс, что одни и теже должности будут в разных местах введены по-разному. Большие и маленькие буквы, дефисы, по-разному написанная должность. Нужно сделать отдельную табличку с должностями, а в таблице работников уже дается ссылка на эту таблицу - id должности. И в вашем коде сравнивались бы не строки а целые числа.
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39853958
Sensor230
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
s62,
Нет, это исключено. Программа для себя, максимум на 10 рабочих мест с хранением БД на общем локальном диске и все пользователи выбирают или галочки или из списка, в ручную вбивается только 3-4 поля, которые не критичны к каким либо ошибкам, все остальное формируется из заранее созданного набора данных.
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39853959
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sensor230,

чудеса прямо )
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39853995
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про 17-ю строку уже писали? :)
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39854209
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sensor230Делал так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
if  (UserLevel = 'Администратор') then
  begin
  RadioGroup2.ItemIndex:=0;
  FlagZayavka:='СтЗаявка';
  end
  else
  begin
  RadioGroup2.ItemIndex:=1;
  FlagZayavka:='СтЗаявление';
  end;



Не получается.... Спасибо.В этом коде ошибок нет
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39854235
Фотография sasha27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Докпро 17-ю строку уже писали? :)
Не, про шар тока было )))
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39854534
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sensor230На Form2 есть RadioGroup1 с двумя радиокнопками (0:UserAdmin, 1:UserNotAdmin), надо при вызове Form2 проверять значение переменной UserLevel и если оно равно или не равно 'Администратор' то установить соответсвующие радиокнопки (UserAdmin или UserNotAdmin)
Так может просто не те кнопки устанавливаешь ибо в том что ты показал RadioGroup2
Sensor230Делал так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
if  (UserLevel = 'Администратор') then
  begin
  RadioGroup2.ItemIndex:=0;
  FlagZayavka:='СтЗаявка';
  end
  else
  begin
  RadioGroup2.ItemIndex:=1;
  FlagZayavka:='СтЗаявление';
  end;
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39854827
Sensor230
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m7mSensor230На Form2 есть RadioGroup1 с двумя радиокнопками (0:UserAdmin, 1:UserNotAdmin), надо при вызове Form2 проверять значение переменной UserLevel и если оно равно или не равно 'Администратор' то установить соответсвующие радиокнопки (UserAdmin или UserNotAdmin)
Так может просто не те кнопки устанавливаешь ибо в том что ты показал RadioGroup2
Sensor230Делал так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
if  (UserLevel = 'Администратор') then
  begin
  RadioGroup2.ItemIndex:=0;
  FlagZayavka:='СтЗаявка';
  end
  else
  begin
  RadioGroup2.ItemIndex:=1;
  FlagZayavka:='СтЗаявление';
  end;




Нет все правильно с выбором группы кнопок, это я тут (на форуме) очепятался с названием, чтоб не писать вам свои мудрёные имена радиокнопок. Проблема частично решилась, если оставить в логическом блоке только один оператор присвоения чекина кнопкам, то все работает, а если добавляешь в блок ещё и просвоение значение переменной FlagZayavka, то перестает работать RadioGroup.ItemIndex:=, Даже таймер на 10 секунд засовывал в Form.OnActivate и всё равно не чикинится по условию, хотя повторюсь, что этот же блок с кнопки работает без проблем. Скорее всего в Delphi какой глюк, может в винде...
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39854847
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sensor230Скорее всего в Delphi какой глюк, может в винде...
скорее, в твоей логике :)

Так не бывает: у всех работает, у тебя - нет. Сделай тестовую программку, воспроизводящую проблему и выложи на всеобщее обозрение. Народ точно укажет причину ошибки. А абстрактные советы и догадки тебе уже накидали выше крыши. Я, например, в первый раз увидел
Код: pascal
1.
RadioGroup.ItemIndex := Ord(UserLevel = 'Заявка');


познавательно
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39854856
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sensor230ещё и просвоение значение переменной FlagZayavka,А это переменная? Не свойство класса с сеттером?
...
Рейтинг: 0 / 0
Как программно по условию IF уcтановить RadioButton
    #39854919
Sensor230
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем сделал так (работает и ладно, хотя изначально в планах было обойтись меньшим количеством строк):
На основной (Form1) форме добавил Label1 после авторизации вытащенное из запроса должность хранится еще и в Label1.Caption
Код: pascal
1.
2.
3.
4.
UserRang:=(ADOQuery1.FieldByName('usDolj').AsString);
Label1.Caption:=UserRang;
Form2.Show;
Hide;


и при запуске Form2.Create условие проверяется не по RangUser а по Form1.Label1.Caption и по рультату чекинится соответствующая кнопка RadioGroup1
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
if  (Form1.Label1.Caption = 'Администратор') then
begin
RadioGroup1.ItemIndex:=0;
end;
if  (Form1.Label1.Caption <> 'Администратор') then
begin
RadioGroup1.ItemIndex:=1;
end;


А инициализацию переменной FlagZayavka вынес отдельно
Код: pascal
1.
2.
3.
4.
case RadioGroup1.ItemIndex of
      0: FlagZayavka:='СтЗаявка';
      1: FlagZayavka:='СтЗаявление';
      end;


Смысл всей замуты вот в чем- есть общий журнал задач. Создавать и записывать задачи в журнал могут все пользователи, задачи разделяются на "заявки" и "заявления" , администраторы могут создавать и заявки и заявления, а НЕадминистраторы только заявки. В заявлениях администраторы могут менять все данные, а в заявках только заполняется 2 поля, остальные же данные или по умолчанию в соответствии с должностью или выбор из набора данных. Поэтому чекин радиокнопок автоматом при создании формы и считывание чекина при создании задачи (за исключением администраторов, они чекин могут менять в ручную).Внешняя форма задачи одинаковая и для заявок и для заявлений.
И таки да, СПАСИСБО ВСЕМ за помощь и советы!!! Думаю тему можно закрыть ввиду частности случая ))))
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как программно по условию IF уcтановить RadioButton
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]