Цикл по компонентам Image
Здравствуйте! У меня на форме расположено 4 компонента Image. Скажите пожалуйста можно ли организовать по ним цикл? Я просто не знаю как в цикле к ним обращаться (индекса у них нет). Рыл в инете, но везде говорится только про динамическое создание компонентов, а у меня они уже на форме.
Код:
TComponent::ComponentsCount
и доступ к доченему компоненту:
Код:
TComponent::Component[int index]
с динамическим преобразованием к TImage
Цитата: oxotnik333
цикл по
и доступ к доченему компоненту:
с динамическим преобразованием к TImage
Код:
TComponent::ComponentsCount
и доступ к доченему компоненту:
Код:
TComponent::Component[int index]
с динамическим преобразованием к TImage
Не помешала бы еще проверка TComponent::ClassNameIs("TImage"), если заранее не известен индекс
Да зачем?Привести TButton TImagee–это же так весело!:)
Код:
TImage **img=new TImage*[общее_количество_image];
for(int x=0;x<общее_количество_image;x+=1)
{
TImage *tmp = dynamic_cast<TImage *>Form1->FindComponent("Image"+IntToStr(x+1));
if (tmp)
img[x]=tmp;
}
for(int x=0;x<общее_количество_image;x+=1)
{
TImage *tmp = dynamic_cast<TImage *>Form1->FindComponent("Image"+IntToStr(x+1));
if (tmp)
img[x]=tmp;
}
А потом юзать их как угодно.
Завтра попробую, отпишусь.
Цитата: asupdemon
Здравствуйте! У меня на форме расположено 4 компонента Image. Скажите пожалуйста можно ли организовать по ним цикл? Я просто не знаю как в цикле к ним обращаться (индекса у них нет). Рыл в инете, но везде говорится только про динамическое создание компонентов, а у меня они уже на форме.
У них есть индех - это свойство tag. Присвой каждому Image свой tag и будет тебе счастье!
Цитата: George22
У них есть индех - это свойство tag. Присвой каждому Image свой tag и будет тебе счастье!
Что бы достучаться до этого свойства, нужно все таки сперва получить указатель на объект. И собственно вопрос был как получить эти объекты, дальше ими управлять - дело техники.
ЗЫ: к стати, а нафига вообще цикл по 4-м объектам, тем более созданным в дизайн-тайме. Указатели на них определены в в теле заголовочника. Зачем такой гемор по поиску того, что и так известно?
Код:
TImage *ImagePtr[4];
ImagePtr[0]=Image1;
ImagePtr[1]=Image2;
ImagePtr[2]=Image3;
ImagePtr[3]=Image4;
for(int i=0;i<4;i++)
ImagePtr->Visible =false;
ImagePtr[0]=Image1;
ImagePtr[1]=Image2;
ImagePtr[2]=Image3;
ImagePtr[3]=Image4;
for(int i=0;i<4;i++)
ImagePtr->Visible =false;
Ну вообще то это приложение для моделирования автоперевозок, т.е. на форме расположены имаджи (4-самосвала, 2-погрузчика, 1-бульдозер, есть пункт погрузки и разгрузки) которые должны перемещаться по форме. Совет arrjj как раз подошёл для моей затеи. Не пробовал совет George22, но он вроде попроще для понимания. Всем большое спасибо!