Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Использование индекса в именах компонентов...


Zahar ©   (2005-03-10 17:35:00) 

Вопрос наверняка уже обсуждялся. Прошу не пинать, просто дайте краткий ответ, буду очень длагодарен.

Есть 25 TEdit-ов. Как обращаться к ним в цикле?
Например как в цикле очистить из значения?


for i:=1 to 25 do begin
  ...
end;


Zahar   (2005-03-10 18:59:00) [1]

THX to ALL
разобрался!!!!


Гаврила   (2005-03-10 18:06:00) [2]

А можно так

if MatchesMask(Components[i]).Name, 'Edit*') then


Zahar   (2005-03-10 17:56:00) [3]

Может это поможет вам понять, чего я хочу :)
Для примера в PHP имя переменной можно составить из частей.

Например:

$a1='vasea';
$a2='petea';
$a3='tolea';

$x=2;

print ${"a$x"};


Выведется 'petea'.

Можно, что-то подобное сделать в Дельфи???


jack128   (2005-03-10 17:56:00) [4]

var
 EditIndex: Integer;
begin
for i := 0 to ComponentCount - 1 do
 if Components[i] is TEdit then
   if TryStrToInt(Copy(Components[i].Name, Length('Edit') + 1, Length(Components[i].Name)), EditIndex) and (EditIndex >= 1) and (EditIndex <= 20) then
        TEdit(Components[i]).Text := '';
end;


Zahar   (2005-03-10 17:49:00) [5]

Antonn
Можно по-подробнее плиз?


Antonn   (2005-03-10 17:48:00) [6]

for i := 0 to ComponentCount - 1 do
if Components[i] is TEdit then
if (Components[i] as TEdit). tag=1 then (Components[i] as TEdit).Clear;

примерно так, у нужных tag в еденицу выставить.


Zahar   (2005-03-10 17:47:00) [7]

@Lex
Это очистит мне все поля TEdit. А если я хочу только первые 20?


Antonn   (2005-03-10 17:47:00) [8]

Zahar   (10.03.05 17:44) [3]
см [2]. Только можно еще tag проверять(выставить у нужных), а то не у тех едитов постирают:)


Zahar   (2005-03-10 17:44:00) [9]

begin...end
???
а можно кусочек кода с примером?


@Lex   (2005-03-10 17:42:00) [10]

for i := 0 to ComponentCount - 1 do
 if Components[i] is TEdit then (Components[i] as TEdit).Clear;


begin...end   (2005-03-10 17:39:00) [11]

Если этим edit'ам назначен владелец, то можно использовать его свойство-массив TComponent.Components.


Наверх

Титульная страница Поиск, карта сайта Написать письмо