Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2009, 23:08   #1
Максим-2
Пользователь
 
Аватар для Максим-2
 
Регистрация: 01.07.2007
Сообщений: 30
Восклицание почему Radiobutton не отжимается?

У нас есть форма1 на ней кнопка1.
При нажатии кнопки1 открывается форма 2 на ней Radiobutton-ы 3 шт
в зависимости от нажатия радиобаттона выводится соответсвующий Inputbox где вводятся данные, которые затем обрабатываются и вводятся в первую форму.
Внимание вопрос
первый раз все четко работает, но если повторно нажать кнопку1 на первой форме, при переходе ко второй форме радиобаттон оказывается уже нажатым! и никакие form2.radiobutton1.chekced:=false; не помагают его отжать!!!
В чем проблема, ребята?
Максим-2 вне форума Ответить с цитированием
Старый 20.11.2009, 23:41   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Странные вы вещи рассказываете...
Можете сделать
Код:
procedure TForm2.FormActivate(Sender: TObject);
begin
RadioButton1.Checked:=False;
end;
Да и по нажатию баттона (для проверки) - то же самое сделать.
И все работает...
mihali4 вне форума Ответить с цитированием
Старый 21.11.2009, 00:17   #3
Максим-2
Пользователь
 
Аватар для Максим-2
 
Регистрация: 01.07.2007
Сообщений: 30
По умолчанию

Ха! да в том то и дело, что слово в слово у меня в программе есть такой код, работает только первый раз! Второй раз запуская, без закрытия программы уже radiobutton1 нажат!!! по всей программе понатыканы Radiobutton1.chekced:= False; при построчном выполнении програмы видно,что она не перескакивает это обнуление, обрабатывает! но ...
это ничего не меняет, форма2 во второй раз выскакивает уже с нажатым радиобаттоном!!!
Максим-2 вне форума Ответить с цитированием
Старый 21.11.2009, 00:33   #4
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
По умолчанию

Попробуйте разрушать и при нажатии на кнопку заново создавать Form2.
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
NoName_emaNoN вне форума Ответить с цитированием
Старый 21.11.2009, 11:15   #5
Максим-2
Пользователь
 
Аватар для Максим-2
 
Регистрация: 01.07.2007
Сообщений: 30
По умолчанию

разрушать и создавать?
то есть пользоваться когда закрывается Form2
Form2.destroy;

а когда перехожу к ней
Form2.create;?
Спасибо, попробую
Максим-2 вне форума Ответить с цитированием
Старый 21.11.2009, 19:07   #6
Максим-2
Пользователь
 
Аватар для Максим-2
 
Регистрация: 01.07.2007
Сообщений: 30
По умолчанию

Ладно, объясню проще:
Создайте форму1 с кнопкой
в форме2 создайте радиобаттон
запустите программу, нажмите кнопку, выскочит форма2 на которой нажмите радиобаттон
теперь закройте форму2 и опять нажмите кнопку форма2 высветится с уже нажатым радиобаттоном, и никакие Form1.radiobutton1.checked:= False; и Form2.radiobutton.checked:=False; не помогут!!!
Вопрос : Почему???
Максим-2 вне форума Ответить с цитированием
Старый 21.11.2009, 19:12   #7
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Дак напишите
Код:
Form2.radiobutton.checked:=False;
После показа формы в коде кнопки.

т.е.

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 form2.Show;
 form2.RadioButton1.Checked := false;
end;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 21.11.2009, 19:21   #8
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Максим-2 незнаю что вам не нравит(ь)ся, но предложенНый вариант вЫше, про разрушение при закрытии и создании при нажатии на кнопке формы2, действительно работает.

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
Form2.show;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form2.Destroy;
end;
И удалите создание формы2 из Auto-Create в опциях проекта.

[EDIT]

Способ Neeter'a тоже рабочий )

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 form2.Show;
 form2.RadioButton1.Checked := false;
end;

Последний раз редактировалось mihali4; 21.11.2009 в 22:32.
W0LF вне форума Ответить с цитированием
Старый 21.11.2009, 19:55   #9
Максим-2
Пользователь
 
Аватар для Максим-2
 
Регистрация: 01.07.2007
Сообщений: 30
По умолчанию

второй код (Способ Neeter'a) точно не действует, проверял
а первый - попробую, спасибо большое!

И удалите создание формы2 из Auto-Create в опциях.
это где?

Последний раз редактировалось Максим-2; 21.11.2009 в 19:58.
Максим-2 вне форума Ответить с цитированием
Старый 21.11.2009, 20:11   #10
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Мы вам оба сказали что способ рабочий. Сначала проверьте на новом проекте, прежде чем опровергать.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание radiobutton Яр|/||< (^_^) Общие вопросы Delphi 6 30.07.2009 22:29
radiobutton Bon'ka Компоненты Delphi 4 16.05.2009 21:56
RadioButton Pavelok Общие вопросы Delphi 3 14.05.2009 14:05
RadioButton(Delphi) 2009 Помощь студентам 9 09.03.2009 16:03
помощь с radiobutton paralitic Компоненты Delphi 1 06.06.2007 09:15