![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
RadioGroup [D7, WinXP]
Chort © (2006-07-16 09:42:00)Здравствуйте! Решил сделать формочку для настройки на главной форме моей проги размера шрифта надписей кнопок программы.Поставил на формочку RadioGroup2, настроил 7 Items-ов
,В ONClick написал
procedure TFontForm.RadioGroup2Click(Sender: TObject);
begin
case Radiogroup2.ItemIndex of
0: Form1.IzdSpeedButton1.Font.Size:=10;
0: Form1.CloseSpeedButton1.Font.Size:=10;
0: Form1.ManufSpeedButton4.Font.Size:=10;
1: Form1.IzdSpeedButton1.Font.Size:=12;
1: Form1.CloseSpeedButton1.Font.Size:=12;
1: Form1.ManufSpeedButton4.Font.Size:=12;
2: Form1.IzdSpeedButton1.Font.Size:=14;
2: Form1.CloseSpeedButton1.Font.Size:=14;
2: Form1.ManufSpeedButton4.Font.Size:=14;
3: Form1.IzdSpeedButton1.Font.Size:=16;
3: Form1.CloseSpeedButton1.Font.Size:=16;
3: Form1.ManufSpeedButton4.Font.Size:=16;
end;
Здесь я написал пример для 4 Items :10,12,14,16 шрифты.
Использовал для настройки только трех кнопок(У меня их 8 шт)
В итоге при компиляции получаю 10 error : 'Duplicate case label'
Как решить эту проблему?
SergP (2006-07-16 13:37:00) [1]> [7] Chort © (16.07.06 13:03)
> Помогло! Спасибо! Вышлите свои ФИО и данные на softvok@ya.ru,
> я запишу Вас в список помощников разработки программы.(на
> англ.)
:-)
Не нужно...
Chort (2006-07-16 13:03:00) [2]Помогло! Спасибо! Вышлите свои ФИО и данные на softvok@ya.ru, я запишу Вас в список помощников разработки программы.(на англ.)
SergP (2006-07-16 11:41:00) [3]> [5] SergP © (16.07.06 11:39)
Ошибся
Const
FntSize:array[0..6] of integer = (6,8,10,12,14,16,18);
SergP (2006-07-16 11:39:00) [4]Либо так напиши:
procedure TFontForm.RadioGroup2Click(Sender: TObject);
Const
FntSize[0..6] of integer = (6,8,10,12,14,16,18);
begin
Form1.IzdSpeedButton1.Font.Size:=FntSize[Radiogroup2.ItemIndex];
Form1.TypeDSpeedButton2.Font.Size:=FntSize[Radiogroup2.ItemIndex];
...
end.
SergP (2006-07-16 11:35:00) [5]> Только при компиляции появляется один Warning: Variable
> 'i' might not have been initialized
> Както можно избежать этого?
Например присвоить переменной i какое-нить значение до выполнения case
Chort (2006-07-16 10:58:00) [6]to SergP. Огромное спасибо ,сделал
procedure TFontForm.RadioGroup2Click(Sender: TObject);
var
i:integer;
begin
case Radiogroup2.ItemIndex of
0: i:=6;
1: i:=8;
2: i:=10;
3: i:=12;
4: i:=14;
5: i:=16;
6: i:=18;
end;
Form1.IzdSpeedButton1.Font.Size:=i;
Form1.TypeDSpeedButton2.Font.Size:=i;
Form1.ManufSpeedButton4.Font.Size:=i;
Form1.TypePSpeedButton5.Font.Size:=i;
Form1.PlatfSpeedButton6.Font.Size:=i;
Form1.LangSpeedButton7.Font.Size:=i;
Form1.CategSpeedButton8.Font.Size:=i;
Form1.CloseSpeedButton1.Font.Size:=i;
end;
end.
Только при компиляции появляется один Warning: Variable 'i' might not have been initialized
Както можно избежать этого?
SergP (2006-07-16 10:29:00) [7]
...
case Radiogroup2.ItemIndex of
0: begin
Form1.IzdSpeedButton1.Font.Size:=10;
Form1.CloseSpeedButton1.Font.Size:=10;
Form1.ManufSpeedButton4.Font.Size:=10;
end;
1: begin
Form1.IzdSpeedButton1.Font.Size:=12;
Form1.CloseSpeedButton1.Font.Size:=12;
Form1.ManufSpeedButton4.Font.Size:=12;
end;
...
А вообще лучше было бы так:
procedure TFontForm.RadioGroup2Click(Sender: TObject);
var
i:integer;
begin
case Radiogroup2.ItemIndex of
0: i:=10;
1: i:=12;
...
end;
Form1.IzdSpeedButton1.Font.Size:=i;
Form1.CloseSpeedButton1.Font.Size:=i;
Form1.ManufSpeedButton4.Font.Size:=i;
end;
В некоторых случаях даже так удобнее:
Form1.IzdSpeedButton1.Font.Size:=Radiogroup2.ItemIndex*2+10;
Form1.CloseSpeedButton1.Font.Size:=Radiogroup2.ItemIndex*2+10;
Form1.ManufSpeedButton4.Font.Size:=Radiogroup2.ItemIndex*2+10;
Dmitrij_K (2006-07-16 10:00:00) [8]Справку читать пробывал?
Там очень доступно написано.