Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
ВнизCheckBox Найти похожие ветки
← →
Ламер 2.Х © (2007-04-30 15:24) [0]Здравствуйте! Подскажите пожалуйста, что делать?
у меня есть несколько CheckBox мне надо поочередно проверить их значения в цикле!
Как корректно обратится к этим элементам, изменяя их имена в цикле?
← →
turbouser © (2007-04-30 15:37) [1]
var
Comp: TComponent;
...
Comp := FindComponent("CheckBox1");
if Comp <> nil then
TCheckBox(Comp).Checked := True;
← →
Ламер 2.Х © (2007-04-30 15:41) [2]Спасибо большое счас попробую
← →
{RASkov} © (2007-04-30 18:32) [3]Вот держи пример позновательный, накидай на форму много разных контролов в их числе должно быть множество TCheckBox"ов, "раскидай" их как по форме, так и "размести некоторые на панелях"...
рrocedure TForm.ButtonClick(...);
var N: Integer; FCheck: TCheckBox;
begin
for N:=ComponentCount-1 downto 0 do
if Components[N] is TCheckBox then begin //Проверка - является ли очередной компонент TCheckBox"ом
FCheck:=Components[N] as TCheckBox; //Приравневаем с приведением типа - временную переменную.
FCheck.Checked:=not FCheck.Checked; //Далее работаем с ней как с "обычным" TCheckBox"ом
if FCheck.Checked then FCheck.Caption:="Установлен"
else FCheck.Caption:="Снят";
end;
end;
Так же попробуй вместо ComponentCount и Components[N] использовать ControlCount и, соответственно, Controls[N]..... Разницу, думаю, сам поймешь...
> Как корректно обратится к этим элементам, изменяя их имена в цикле?
А вот этого делать не к чему... зачем имена им менять, для чего?
← →
turbouser © (2007-04-30 19:20) [4]
> {RASkov} © (30.04.07 18:32) [3]
> FCheck:=Components[N] as TCheckBox; //Приравневаем с приведением типа - временную переменную.
Зачем это?
можно проще:
if Components[N] is TCheckBox then
with TcheckBox(Components[N]) do
begin
Checked := not Checked;
if Checked then
Caption := "Установлен"
else
Caption := "Снят";
end;
← →
{RASkov} © (2007-04-30 21:23) [5]> [4] turbouser © (30.04.07 19:20)
> Зачем это?
> можно проще:
Можно... но я стараюсь в примерах обходится без with, дабы было более понятно.... Вот и вся разница. Не факт, кому-то и наоборот :)
← →
Leonid Troyanovsky © (2007-04-30 21:30) [6]
> turbouser © (30.04.07 19:20) [4]
> можно проще:
> if Checked then
> Caption := "Установлен"
> else
> Caption := "Снят";
const Captions: array [Boolean] of String = ("Снят", "Установлен");
--
Regards, LVT.
← →
{RASkov} © (2007-04-30 21:44) [7]> [6] Leonid Troyanovsky © (30.04.07 21:30)
Тады еще можно и так:
const Captions: array [TCheckBoxState] of String = ("Снят", "Установлен", "фикзнает");
:)
← →
Ламер 2.Х © (2007-05-01 00:28) [8]Спасибо ОГРОМАДНОЕ очень помогли
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c