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

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

Помогите с именами компонентов!!! [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()


Наверх

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