Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
1-1174914421
Inna_Z
2007-03-26 17:07
2007.05.20
Почему может не работать Office 2003 Через OLE


1-1174462919
Dmitry_177
2007-03-21 10:41
2007.05.20
аналог функции malloc из С


15-1177182463
ArtemESC
2007-04-21 23:07
2007.05.20
Хочу сделать файловый обменник на сервере...


9-1150914786
Угадай кто?
2006-06-21 22:33
2007.05.20
Отражение?


2-1177680305
Kostafey
2007-04-27 17:25
2007.05.20
Чтение многострочного ключа ini-файла





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский