Главная страница
    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.043 c
2-1178295500
Mihail07
2007-05-04 20:18
2007.05.20
TSaveDialog, TRichEdit


15-1177070574
vecna
2007-04-20 16:02
2007.05.20
Кто работал с IBConsole


15-1177337676
rus_Mess
2007-04-23 18:14
2007.05.20
Сообщения на рус


15-1176365475
Нирага Семен Прокофьевич
2007-04-12 12:11
2007.05.20
Использование языков программирования в различных областях


10-1133181083
nippo
2005-11-28 15:31
2007.05.20
COM Object из ТСomponent





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