Форум: "Потрепаться";
Текущий архив: 2003.06.30;
Скачать: [xml.tar.bz2];
Внизнеменяется значение RadioButton Найти похожие ветки
← →
Alex_x (2003-06-11 15:51) [0]хочу в процедуре onShow формы изменить значение RadioButton1.Checked:=true; но оно не менятся, но срабатывает после показа формы если этот код всунуть в процедуру любой кнопки. Может в onShow его нельзя менять???
← →
clickmaker (2003-06-11 16:24) [1]Вы меня извините, конечно, на сдается мне, что Вы пургу гоните... Такой код прекрасно работает
procedure TForm1.FormShow(Sender: TObject);
begin
RadioButton1.Checked := true;
end;
← →
Sandman25 (2003-06-11 16:34) [2]Если RadioButton1 находится в одной группе с RadioButton2, и RadioButton2.Checked:=true выполняется позже присваивания RadioButton1.Checked:=true, то RadioButton1.Checked становится false. Таково предназначение связанных радиобатонов - только один из них может быть Checked.
← →
Alex_x (2003-06-11 17:27) [3]именно таким куском кода я єто пытаюсь сделать,
но потом никаких RadioButton2.Checked:=true и.т.д не выполяется
procedure TForm1.FormShow(Sender: TObject);
begin
RadioButton1.Checked := true;
end;
← →
Sandman25 (2003-06-11 17:44) [4]Я только что сделал тест. В D6 такое работает. Или покажите Ваш код, или у Вас накрылся Delphi.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
RadioButton1: TRadioButton;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormShow(Sender: TObject);
begin
RadioButton1.Checked := true;
end;
end.
← →
Alex_x (2003-06-11 17:55) [5]вы попропуте пожалуйса переключить на RadioButton2.Checked := true; потом закрить и открить форму
← →
Sandman25 (2003-06-11 18:05) [6]Да, действительно, так не работает. Хотя при отладке присваивание выполняется, и даже в ctrl+f4 показывает RadioButton1.checked = true.
Буду думать...
← →
Sandman25 (2003-06-11 18:13) [7]Получается бред какой-то.
Я на ту же форму поставил кнопку с обработчиком
procedure TForm2.Button1Click(Sender: TObject);
begin
caption := inttostr(ord(radiobutton1.checked)) + ":"
+ inttostr(ord(radiobutton2.checked));
end;
Так вот если я на кнопку тыкаю, то при следующем показе
Radiobutton1.checked := true срабатывает,
а если не нажимаю, то сохраняются значения из прошлого показа формы.
Попробуйте использовать GroupBox, может он всегда корректно работает.
← →
Sandman25 (2003-06-11 18:15) [8]Разобрался. Присвоение некорректно работает, если фокусе не на Radiobutton1.
Я написал
procedure TForm2.FormShow(Sender: TObject);
begin
ActiveControl := RadioButton1;
RadioButton1.Checked := true;
end;
И все заработало.
Хоть и непонятно почему :(
← →
Song (2003-06-11 18:22) [9]У меня всё работает отлично. Скажите как вы заставили это не сработать?
← →
Song (2003-06-11 18:23) [10]2Sandman25 © (11.06.03 18:15)
И даже если фокус не там, у меня всё равно всё работает:
procedure TForm1.FormShow(Sender: TObject);
begin
ActiveControl:=Button1;
RadioButton1.Checked:=True;
end;
← →
Sandman25 (2003-06-11 18:34) [11]Song
Вот 2 файла. Нажимаешь на кнопку, появляется вторая форма, выбираешь второй radiobutton, закрываешь форму (в крестик мышкой), нажимаешь кнопку опять - опять появляется вторая форма, но выбран второй radiobutton.
Если убрать комментарий, все работает правильно - при показе второй формы выбран первый radiobutton
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormShow(Sender: TObject);
begin
// ActiveControl := RadioButton1;
RadioButton1.Checked := true;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
caption := inttostr(ord(radiobutton1.checked)) + ":"
+ inttostr(ord(radiobutton2.checked));
end;
end.
← →
Sandman25 (2003-06-11 18:43) [12]Только что проверил.
В Delphi3 то же самое - нужен ActiveControl для правильной работы.
← →
Alex_x (2003-06-12 10:16) [13]Спасибо шо помагли, прикольный глюк :)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.06.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c