Главная страница
    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.039 c
15-1176990214
divisi
2007-04-19 17:43
2007.05.20
Розроботка Игор


15-1176745280
ProgRAMmer Dimonych
2007-04-16 21:41
2007.05.20
Как же они меня достали!!!


6-1163695742
p314
2006-11-16 19:49
2007.05.20
ssl


15-1177063531
маршал
2007-04-20 14:05
2007.05.20
как этого достичь


3-1172797089
Ш-К
2007-03-02 03:58
2007.05.20
Как получить записи с единственным значением поля?





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