![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
КАК ЗАДАТЬ РАНДОМ И ВЫВЕСТИ В ЛЭЙБЛ? [D7]
Сергей © (2013-09-09 13:44:00)Ребята, у меня есть 4 радиобаттона в моей программе, при нажатии на битбтн (в совокупности с одной из радиокнопок) должно выдаваться рандомное текстовое значение в лэйбл. Для каждого радиобаттона есть 4 варианта рандомного текста. Как осуществить то, чтобы каждый раз, при повторных нажатиях (при одном радиобаттоне) в лэйбл каждый раз выводилось рандомное значение, прошу помочь мне! Заранее очень благодарен
[ВладОшин] (2013-09-09 14:23:00) [1]array[1..4, 0..3] :)
[ВладОшин] (2013-09-09 14:05:00) [2]type
TForm1 = class(TForm)
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private { Private declarations }
public { Public declarations }
A: array[0..3, 0..3] of string;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i: integer;
R: TRadioButton;
begin
for i := 0 to ComponentCount - 1 do
begin
if Components[i] is TRadioButton then
begin
R := TRadioButton(Components[i]);
if R.Checked then
Caption := A[R.tag][Random(4)];
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i, j: Integer;
R: TRadioButton;
begin
for i := 0 to ComponentCount - 1 do
begin
if Components[i] is TRadioButton then
begin
R := TRadioButton(Components[i]);
R.tag := StrToInt(Copy(R.Name, Length(R.ClassName), Length(R.Name)));
end;
end;
for i := 0 to 3 do
for j := 0 to 3 do
A[i][j] := Format('RadioButton%d Value%d',[i,j]);
end;
Wadimka (2013-09-09 14:03:00) [3]ну конкретно задача, сколько текстовых сообщений в каждом радиобанное, если не много то можно массив сделать
допустим
uses math;
var
ArrayStr:array[1..4] of array[1..5] of String;
begin
//n - max = 5
ArrayStr[1][1]:='Строка 1 для RadioBut1';
ArrayStr[1][2]:='Строка 2 для RadioBut1';
ArrayStr[1][n]:='Строка n для RadioBut1';
ArrayStr[2][1]:='Строка 1 для RadioBut2';
и т.д.
if Radiobut1.checked then label1.caption:=ArrayStr[1][RandomRange(1, 5)];
if Radiobut2.checked then label1.caption:=ArrayStr[2][RandomRange(1, 5)];
и т.д.
Если текста много, то лучше использовать TStringList вместо массива
end;
Плохиш (2013-09-09 13:54:00) [4]ЛЭЙБЛ
.Text :=<4 варианта рандомного текста>[Random(4)];