Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
95 / 64 / 5
Регистрация: 03.07.2011
Сообщений: 148

Прокрутка динамически добавленных элементов

25.04.2012, 17:20. Показов 2321. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! В общем, появилась вот такая задача - на форму надо динамически добавить несколько элементов TDBChart, один под другим. Их много, и все они на форму не влезают - значит, должен быть механизм, позволяющий их прокрутить. Попробовал сначала (динамически) положить на форму элемент TScrollBox, а в него мои TDBChart. Кладутся замечательно, но вот проблема - линейка прокрутки не появляется и просмотреть все TDBChart не могу - только верхние. Делаю HorzScrollBar->Visible = true, VertScrollBar->Visible, AutoScroll = true - без результатов, прокрутить не могу. Кто-нибудь сталкивался с подобной задачей?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.04.2012, 17:20
Ответы с готовыми решениями:

JS не работает для динамически добавленных элементов
Скачал я js плагин и css к нему календаря для вставки даты в инпут. Все работает только для тех инпутов, которые уже находятся на...

События для динамически добавленных элементов
Всем доброго дня (ночи, утра, вечера). Столкнулся с такой проблемой, имеется функция выполняющая ajax запрос и возвращающая несколько...

Для динамически добавленных элементов не работает JS
Скачал плагин календаря для инпута. То есть при нажатии по инпуту появляется календарик и выбирается дата. Обязательное условие чтобы инпут...

10
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
25.04.2012, 17:26
У формы есть свойство AutoScroll, оно по умолчанию true. Если, добавляя элементы, Вы им присваиваете значения Top, выходящие за пределы формы, то вертикальный скроллбар, по крайней мере, должен появиться автоматически.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
25.04.2012, 17:32
Цитата Сообщение от andy_111 Посмотреть сообщение
Кладутся замечательно, но вот проблема - линейка прокрутки не появляется и просмотреть все TDBChart не могу - только верхние
C++
1
ScrollBox1->VertScrollBar->Visible = true;
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
25.04.2012, 17:39
возможно с TScrollBar конфликтует; вот иллюстрация_ - положил на форму четыре TChart`а и все их могу видеть.
Миниатюры
Прокрутка динамически добавленных элементов  
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
25.04.2012, 17:43
Цитата Сообщение от nick42 Посмотреть сообщение
возможно с TScrollBar конфликтует; вот иллюстрация_ - положил на форму четыре TChart`а и все их могу видеть.
А ты динамически их создал?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
25.04.2012, 17:48
Цитата Сообщение от Sasha Посмотреть сообщение
А ты динамически их создал?
Не-а... . Щас попробую ("почувствовать разницу"...).

А то же самое__
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
         TChart *mChart2, *mChart3 , *mChart4  ;
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormShow(TObject *Sender)
{
        mChart2 = new TChart(this);
        mChart3 = new TChart(this);
        mChart4 = new TChart(this);
        mChart2->Parent = Form1;
        mChart3->Parent = Form1;
        mChart4->Parent = Form1;
        mChart2->Top = 316;
        mChart3->Top = 616;
        mChart4->Top = 916;
}
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
25.04.2012, 17:52
Цитата Сообщение от nick42 Посмотреть сообщение
Щас попробую ("почувствовать разницу"...).
Да именно так.

У меня была точно такая же проблема на скролбоксе, только я там пытался создать лейблы динамически и тоже столкнулся с такой же проблемой как задал человек выше, но я вышел из этой проблемы таким образом о котором я вверху уже привёл код
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
25.04.2012, 18:09
тоже нет никаких проблем со ScrollBox'ом.
ни 6-й, ни в XE версии. настройки ScrollBox'a не менял (у ScrollBar'ов уже по умолчанию стояло Visible).
C++
1
2
3
4
5
6
        for ( int i = 0; i < 9; i++ )
        {
                TDBChart *chart = new TDBChart(this);
                chart->Top = i * (chart->Height + 10);
                chart->Parent = ScrollBox1;
        }
0
95 / 64 / 5
Регистрация: 03.07.2011
Сообщений: 148
26.04.2012, 15:45  [ТС]
Неа, не работает у меня, не появляется линейка прокрутки У меня C++Builder 6.0 Enterprise. Может быть, дополнительную сложность создает то, что у меня сначала создается динамически TTabSheet (закладка), а на ней уже создается TScrollBox и на нем TDBChart. Вот пример моего кода, переменная pcMain - это TPageControl
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
   TTabSheet * pTabSheet = new TTabSheet(pcMain);
   pTabSheet->PageControl = pcMain;
   TScrollBox * pBox = new TScrollBox(pTabSheet);
   pBox->Parent = pTabSheet;
   pBox->Align = alClient;
   pBox->HorzScrollBar->Visible = true;
   pBox->VertScrollBar->Visible = true;
   pBox->AutoScroll = true;
 
   for (int n = 0; n < 50; n++){
      TDBChart * pGraph = new TDBChart(pBox);
      pGraph->Parent = pBox;
      pGraph->BottomAxis->LabelsAngle = 90;
      pGraph->BottomAxis->LabelsOnAxis = false;
      pGraph->OnDblClick = dbChartDblClick;
      pGraph->OnClickSeries = dbChartClickSeries;
      pGraph->OnMouseUp = dbChartMouseUp;
      pGraph->Top = n * 200;
      pGraph->Width = 200;
      pGraph->Height = 200;
      ...
    }
Один TDBChart с разверткой на все окно создается и работает отлично, а вот несколько с прокруткой никак не хотят
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
26.04.2012, 16:00
Вот подтвеждение (см. скрин), что все ок.(Добавил на форму TPageControl и твой код, немного изменив.)
Попробуй переустановить (удалить, а потом заново установить) C++ Builder.
Миниатюры
Прокрутка динамически добавленных элементов  
1
95 / 64 / 5
Регистрация: 03.07.2011
Сообщений: 148
26.04.2012, 16:11  [ТС]
Хааа Самое интересное, что в пустом проекте у меня тоже все отлично заработало. Видимо где-то перекрываются какие-то настройки окон, буду искать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.04.2012, 16:11
Помогаю со студенческими работами здесь

Скрытие динамически добавленных через Ajax элементов
Здравствуйте, уважаемые дамы и господа. На вашем форуме я впервые. Относительно недавно начал знакомиться и разбираться с jquery. В...

Изменение динамически добавленных Input
Доброго всем дня. При нажатии на кнопку открывается fancybox, нужно достать значения элементов хранящихся в данном боксе а именно...

Обработчик динамически добавленных кнопок
Здравствуйте, помогите, пожалуйста. По нажатию на кнопку создаю новые кнопки и добавляю их на форму int colbutton = 0; ...

Сохранение настроек динамически добавленных контролов
Всех приветствую! Ребзя, нужен ваш совет. Суть такая. Есть основная форма. В эту форму, из dll, динамически подгружается...

Обработка добавленных html элементов
Обрабатываю нажатие на элемент $('span').on ('click', function ) { $(this).html('&lt;div&gt;test&lt;/div&gt;'); } Затем пытаюсь обработать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru