реклама на сайте
подробности

 
 
> можно ли обращаться к компонентам в среде BorlandC в цикле?
Mozart
сообщение Apr 18 2008, 18:54
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



суть проблемы.
есть 4ре компонента размещённые на форме, к примеру Panel1, Panel2, Panel3, Panel4. и есть массив который выводится на эти панели к примеру int temp[4];
можно ли написать следующий код в цикле
Код
Panel1->Caption = IntToStr(temp[0]);
Panel2->Caption = IntToStr(temp[1]);
Panel3->Caption = IntToStr(temp[2]);
Panel4->Caption = IntToStr(temp[3]);


среда разработки BorlandC++ 6.0 в WinXp


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Apr 18 2008, 20:25
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Mozart @ Apr 18 2008, 20:54) *
среда разработки BorlandC++ 6.0 в WinXp

Moderator
Вы хоть чуть-чуть дайте себе труд узнать где находится BCC и где программирование DSP, прежде, чем писать. Тему перенес.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Mozart
сообщение Apr 18 2008, 21:18
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



Цитата(zltigo @ Apr 19 2008, 00:25) *
Moderator
Вы хоть чуть-чуть дайте себе труд узнать где находится BCC и где программирование DSP, прежде, чем писать. Тему перенес.

простите не заметил 05.gif ... сделаю всё возможное чтобы это не повторилось...

Цитата
Но лично я, для успокоения души создавал еще один массив, в который копировал нужные элементы, и работал уже с этим массивом.

у меня тоже потом появилась такая мысль... а другой способ есть?? может быть это как-то можно сделать стандратами языка??


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Apr 18 2008, 21:46
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Цитата(Mozart @ Apr 19 2008, 01:18) *
у меня тоже потом появилась такая мысль... а другой способ есть?? может быть это как-то можно сделать стандратами языка??


Ну я же и говорю... Допустим, у нас форма описана как:

Код
class TForm1 : public TForm
{
__published:    // IDE-managed Components
    TPanel *Panel1;
    TPanel *Panel2;
    TPanel *Panel3;
    TPanel *Panel4;
private:    // User declarations
public:        // User declarations
    __fastcall TForm1(TComponent* Owner);
};


Тогда (в методе класса TForm1) (&this->Panel1)[0] это this->Panel1, (&this->Panel1)[1] это this->Panel2, и т.д. Повторюсь, это все верно только если Panel1..Panel4 описаны в классе последовательно. Если нет, то помочь может пожалуй только создание дополнительно массива.

Описать это все массивом как поле класса мне не представляется возможным, там не случайно вставлена строчка "IDE-managed Components"
Go to the top of the page
 
+Quote Post
Mozart
сообщение Apr 18 2008, 22:29
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



Цитата(Aesthete Animus @ Apr 19 2008, 01:46) *
Ну я же и говорю... Допустим, у нас форма описана как:

Код
class TForm1 : public TForm
{
__published:    // IDE-managed Components
    TPanel *Panel1;
    TPanel *Panel2;
    TPanel *Panel3;
    TPanel *Panel4;
private:    // User declarations
public:        // User declarations
    __fastcall TForm1(TComponent* Owner);
};


Тогда (в методе класса TForm1) (&this->Panel1)[0] это this->Panel1, (&this->Panel1)[1] это this->Panel2, и т.д. Повторюсь, это все верно только если Panel1..Panel4 описаны в классе последовательно. Если нет, то помочь может пожалуй только создание дополнительно массива.

Описать это все массивом как поле класса мне не представляется возможным, там не случайно вставлена строчка "IDE-managed Components"

всё допёрло... если в классе панели описаны не последовательно, то что собственно мешает нам собственными руками их переставить местами и пересобрать проект?

вот такой получился проект, при чём местами переставил, и всё ок...
Код
    TPanel **ptrPanel;
   ptrPanel = &Panel1;
    for (int i =0; i < 4; i++)
   {
        ptrPanel[i]->Caption = IntToStr(i);
   }

спасибо!!!

Сообщение отредактировал Mozart - Apr 18 2008, 22:43


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 14:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01402 секунд с 7
ELECTRONIX ©2004-2016