Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Элементы управления

468
12 февраля 2005 года
Jackal
48 / / 20.09.2000
Как в цикле создавать элементы управления, если их один, два, то это понятно, а если их, ну например, Image1 - Image500? Это не шутка, это в полном серьезе. Или может есть другой способ?!
Буду благодарен...
368
12 февраля 2005 года
rostyslav
629 / / 13.07.2004
Цитата:
Originally posted by Jackal
Как в цикле создавать элементы управления, если их один, два, то это понятно, а если их, ну например, Image1 - Image500? Это не шутка, это в полном серьезе. Или может есть другой способ?!
Буду благодарен...

500 возможно ты толком на экране не разместишь. Все зависит от того какие операции планируешь с ними делать. Может достаточно отобразить все на какой-то невидимый Caption и помнить только x, y, width, height.
А если нужно действительно создать, то главное сохранять указатель на эти Image, и перед выходом с программы удалить все созданные контролы. Если наперед неизвестно число элементов, то указатели можно хранить в vector-е.

468
12 февраля 2005 года
Jackal
48 / / 20.09.2000
Цитата:
Originally posted by rostyslav
500 возможно ты толком на экране не разместишь. Все зависит от того какие операции планируешь с ними делать. Может достаточно отобразить все на какой-то невидимый Caption и помнить только x, y, width, height.



Нет их именно надо разместить на форме. дело в том, что размер самих компанент очень мал, например 4х4, и располагаются они так 10 шт. в столбце, 50 - в строке.

368
12 февраля 2005 года
rostyslav
629 / / 13.07.2004
Цитата:
Originally posted by Jackal
Нет их именно надо разместить на форме. дело в том, что размер самих компанент очень мал, например 4х4, и располагаются они так 10 шт. в столбце, 50 - в строке.

Может подойдет TDrawGrid? Установить
все поля Options в false,
Scrollbar в ssNone,
Enabled в False,
DefaultDrawing в false
FixedCols, FixedRows 0
Cols 50, Rows 10
DefaultColWidth 4,DefaultColHeight 4


И обработать событие OnDrawCell.
Получится, что-то типа:

468
12 февраля 2005 года
Jackal
48 / / 20.09.2000
А можно это как-то в виде кода продемонстрировать?!
368
12 февраля 2005 года
rostyslav
629 / / 13.07.2004
Цитата:
Originally posted by Jackal
А можно это как-то в виде кода продемонстрировать?!


 
Код:
void __fastcall TForm1:: DrawGrid1DrawCell(TObject *Sender, int ACol,
      int ARow, TRect &Rect, TGridDrawState State)
{
DrawGrid1->Canvas->Brush->Color = RGB(rand()%256, rand()%256, rand()%256);
DrawGrid1->Canvas->FillRect(Rect);
}


Но тебе наверно если это связано с бегущей строкой цвет конкретной ячейки нужно будет выбирать из какого-то массива.
468
12 февраля 2005 года
Jackal
48 / / 20.09.2000
Цитата:
Originally posted by rostyslav

 
Код:
void __fastcall TForm1:: DrawGrid1DrawCell(TObject *Sender, int ACol,
      int ARow, TRect &Rect, TGridDrawState State)
{
DrawGrid1->Canvas->Brush->Color = RGB(rand()%256, rand()%256, rand()%256);
DrawGrid1->Canvas->FillRect(Rect);
}


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



Цвет будет один. А задать его можно будет из диалога ColorDialog, если понадобиться.
Большое спасибо за ответ. :)

259
12 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by Jackal
Как в цикле создавать элементы управления, если их один, два, то это понятно, а если их, ну например, Image1 - Image500? Это не шутка, это в полном серьезе. Или может есть другой способ?!
Буду благодарен...


А какя разница между динамическим соданием 1 - 2 компонент и 500?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог