Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2014, 00:21   #1
Vazilin
 
Регистрация: 09.12.2013
Сообщений: 6
По умолчанию Размещение TreeView на PageControl

В общем в программе(учебник) есть TreeView, туда подгружается дерево из файла lect.txt ( лежит в папке Data), необходимо перекинуть TreeView на PageControl( в котором должны быть 2 вкладки(10 и 11 класс) и чтоб далее на 1 вкладке было дерево из lect.txt , а на 2 вкладке из lect2.txt

скачать
Vazilin вне форума Ответить с цитированием
Старый 12.01.2014, 02:48   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

TreeView может находиться только на той вкладке на которую он помещён.
Поэтому здесь понадобится 2 таких компонента. В первый загружается дерево lect.txt, во второй lect2.txt.
Streletz вне форума Ответить с цитированием
Старый 12.01.2014, 03:10   #3
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
TreeView может находиться только на той вкладке на которую он помещён.
Разве? А как же свойство Parent?

Последний раз редактировалось doktor255; 12.01.2014 в 06:46.
doktor255 вне форума Ответить с цитированием
Старый 12.01.2014, 03:32   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от doktor255 Посмотреть сообщение
Разве? А как же свойство Parent?
Согласен. Тоже вариант.
Vazilin, можно при перемещении по вкладкам в событии OnChange менять свойство Parent у TreeView. После этого в этом же событии в зависимости от вкладки загружать в TreView дерево из соответствующего файла.
Перед этим TreeView можно поместить на одну из вкладок PageControl, чтобы использовать её в качестве "стартовой".
Streletz вне форума Ответить с цитированием
Старый 12.01.2014, 06:49   #5
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Дело было вечером, делать было нечего, со скуки поставил D7 и перебрал проект. Ключевой код.

Код:
procedure TMainForm.sPageControl1Change(Sender: TObject);
begin
case sPageControl1.TabIndex of
0: begin
     sTreeView1.Parent := sTabSheet1;
     sTreeView1.LoadFromFile('Data/Lect.txt');
   end;
1: begin
     sTreeView1.Parent := sTabSheet2;
     sTreeView1.LoadFromFile('Data/Test.txt'); //файла Lect2.txt не было в папке проекта, поэтому использовал то что было
   end;  
end;
end;
Ну и чтоб не было вопросов, сам проект. http://rghost.ru/51582980

Streletz Parent работает если что. Собственно как ты описал, так я и сделал.

Последний раз редактировалось doktor255; 12.01.2014 в 07:03.
doktor255 вне форума Ответить с цитированием
Старый 12.01.2014, 07:25   #6
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
Радость

Всё правильно. Именно это я и имел в виду.
Streletz вне форума Ответить с цитированием
Старый 12.01.2014, 11:34   #7
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,883
По умолчанию

А зачем пейджконтрол если не пользоваться пейджами ? Проще взять табконтрол, имхо - на нём не нужно будет переключать перента, у него и так "единственная страница", на которой лежат дочерние контролы, а по индексу вкладки грузить разные деревья.
phomm вне форума Ответить с цитированием
Старый 12.01.2014, 11:38   #8
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

и зачем эти пляски с парентом?
выйгрыша чуть менее чем ноль
eval вне форума Ответить с цитированием
Старый 12.01.2014, 11:59   #9
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Каждый программист по своему интерпретирует наиболее логичное решение, руководствуясь своим опытом. Пора бы это понимать, и не задавать подобных вопросов.

Последний раз редактировалось doktor255; 12.01.2014 в 12:08.
doktor255 вне форума Ответить с цитированием
Старый 12.01.2014, 12:16   #10
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

вот и помогаем свой опыт проапгрейдить

где тут логика постоянно дергать диск? где тут логика постоянно перекидыть парент? а селекшн восстанавливать не надо? и т.д. и т.п.
ваше годится только для показа фич, мол вот как можно и не более в нормальных проектах нужны очень веские причины для такого подхода, проще и надежнее держать 2 пейджа, и не плясать с бубном
вы лучше на ус мотайте а не фыркайте, оно полезней всяко

Последний раз редактировалось eval; 12.01.2014 в 12:19.
eval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TreeView и PageControl Angel86rus Общие вопросы Delphi 5 11.02.2014 14:24
ASP.NET C# компонент TreeView. Перетащить какой - либо пункт меню из TreeView в TextBox Claster ASP.NET 0 02.01.2013 18:59
Размещение с повторениями ганс Visual C++ 1 07.12.2011 09:52
Размещение с повторениями ганс Visual C++ 0 30.11.2011 13:51
TreeView и PageControl (переключение вкладок по дереву) Nevy Общие вопросы C/C++ 5 17.08.2008 19:17