![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите с именами компонентов!!! [D7, XP]
tigrenok © (2005-11-19 21:49:00)Привет! помогите пожалуйста....
у меня есть много панелек.. и хотелось бы циклом задавать каждой пареметры, имена панелек такие
p1,p2,p3 и тд..... должно быть что-то типа такого (P+'i').top:= итд
tigrenok (2005-11-20 22:21:00) [1]Проктолог, согласен... отпишусь.....
Проктолог (2005-11-20 22:10:00) [2]
> for i:=0 to form1.ControlCount-1 do
Иди теорию учи.
Virgo_Style (2005-11-20 20:53:00) [3]tigrenok © (20.11.05 20:39) [10]
Наверное, вместо PC лучше использовать Tag... вряд ли можно гарантировать, что порядок панелей в Controls совпадет с порядковым номером.
tigrenok (2005-11-20 20:39:00) [4]procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
C: TComponent;
PC: Integer;
begin
PC := 1;
for i:=0 to form1.ControlCount-1 do
begin
C := form1.Controls[i];
if ((C.ClassName = 'TPanel') and (C.Name = 'P'+IntToStr(PC))) then
begin
(C as TPanel).top := i*10;
inc(PC);
end;
end;
end;
end.
ЕСЛИ так.... то тоже не работает хотя не материться.... это когда панельки на форме
mfender (2005-11-20 15:44:00) [5]
> всё равно придётся с этим разбираться.. по другому никак.
> . У меня панельи лежат на другой панельке! А порпоще никак
> нельзя это написать?
Вот беда...
Да куда уж тут еще-то проще?
Anatoly Podgoretsky (2005-11-20 12:13:00) [6]Поиск надо делать в контейнере, если контейнер не форма, а панель, то поиск в панели.
tigrenok (2005-11-20 01:33:00) [7]Да...и не по совести не проктит..... всё равно придётся с этим разбираться.. по другому никак.. У меня панельи лежат на другой панельке! А порпоще никак нельзя это написать?
mfender (2005-11-20 00:32:00) [8]
> Хрен знает... у меня выдаёт:Инвалид класс тайп каст.....
> .....Напишу я криво всё же.... :) один раз используюю...
>
Инвалидом ругается Sender. Я-то написал как, если бы все панели на TForm лежали...
И правильно сказал Сайбель Алексей © (19.11.05 23:51) [5]. Помучайся сразу. И FindComponent() тоже разбери - панельки твои могут оказаться не в одном месте...
Сайбель Алексей (2005-11-19 23:51:00) [9]
> Хрен знает... у меня выдаёт:Инвалид класс тайп
> каст..........Напишу я криво всё же.... :) один раз
> используюю...
Лучше не иди на сделку с совестью. "Помучайся" сейчас - и знания останутся на потом,
Это все равно тебе понадобится при более крупных проектах рано или поздно.
Разберись с Virgo_Style © [1]
tigrenok (2005-11-19 23:43:00) [10]Хрен знает... у меня выдаёт:Инвалид класс тайп каст..........Напишу я криво всё же.... :) один раз используюю...
tigrenok (2005-11-19 23:12:00) [11]ПАСИБА!!! ПОПРОБУЮ РАЗОБРАТЬСЯ!
mfender (2005-11-19 22:03:00) [12]Должно быть примерно так:
var i: Integer;
C: TComponent;
PC: Integer;
begin
PC := 1;
for i:=0 to (Sender as TForm).ControlCount-1 do
begin
C := (Sender as TForm).Controls[i];
if ((C.ClassName = 'TPanel') and (C.Name = 'P'+IntToStr(PC))) then
begin
(C as TPanel).top := i*10;
inc(PC);
end;
end;
Virgo_Style (2005-11-19 21:59:00) [13]Components[], FindComponent()