Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
1-97705
MakNik
2003-06-18 10:27
2003.06.30
SaveDialog


11-97563
lamachok
2002-10-19 14:27
2003.06.30
о нем


14-97853
BofA
2003-06-12 14:07
2003.06.30
Как получить страницу из интернета в виде строки?


4-97937
DelBoy
2003-04-25 22:33
2003.06.30
Пересылка события нажатия клавиши


1-97627
madm
2003-06-19 15:50
2003.06.30
Как в TListView(vsReport) можно редактировать второй столбец?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский