Читаем Советы по Delphi. Версия 1.4.3 от 1.1.2001 полностью

{------------------------------------------------------------------------------

 Открываем путь к данному элементу (элемент определяется номером индекса).

 До корневого элемента необходимо раскрывать только родителей.

 -----------------------------------------------------------------------------}

var

 ItemIndex: Longint;

 Found:     Boolean;

 LastCh:    Longint;

 Path:      String;

 ItemText:  String;

 SepPos:    Integer;

 OldSep:    String;

begin

 {Сохраняем старый ItemSpearator}

 OldSep:=Outline.ItemSeparator;

 {Устанавливаем новый ItemSeparator}

 Outline.ItemSeparator:='\';

 {Получаем полный путь к TOutlineNode и добавляем '\'. Это делается для упрощения последующего алгоритма}

 Path:=Outline.Items[FoundItemIndex].FullPath+'\';

 {Зацикливаемся до тех пор, пока не будет достигнут конец пути}

 while Length(Path) > 0 do begin

  {Определяем в пути позицию первого '\'}

  SepPos:=Pos('\',Path);

  {Изолируем элемент TOutlineNode}

  ItemText:=Copy(Path,1,SepPos-1);

  {Определяем индекс TOutlineNode}

  ItemIndex:=Outline.GetTextItem(ItemText);

  {Раскрываем его}

  Outline.Items[ItemIndex].Expand;

  {Вырезаем из строки раскрытый TOutlineNode}

  Path:=Copy(Path,SepPos+1,Length(Path)-SepPos+1);

 end;

 {Восстанавливаем оригинальный ItemSeparator}

 Outline.ItemSeparator:=OldSep;

end;

Детали

Давайте присвоим элементу желаемый путь:

"My Computer\Hardware\SoundCard\Base Adress"

На первом шаге возвращается приведенный выше путь. Затем изолируется подстрока «My Computer». Затем с помощью метода «GetTextItem» определяется индекс TOutlineNode «My Computer». Метод «Expand» раскрывает это дерево. Впоследствие «My Computer» вырезается из пути, и новым путем становится «Hardware\SoundCard\Base Adress».

Затем определяется индекс «Hardware», раскрывается, и снова выразается. Данная процедура повторяется до тех пор, пока не останется пути, который можно раскрыть. После чего полностью раскрывается путь передаваемой TOutlineNode.

<p>PageControl </p><p>Динамические PageControl/TabSheet I</p>

Delphi 2 

Динамическое создание Page Control'ов и Tab Sheet'ов:

var

 T : TTabSheet;

 P : TPageControl;

begin

 // Создаем PageControl

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

 P := TPageControl.Create(application);

 with P do begin

  Parent := Form1; // устанавливаем его как элемент управления формы.

  Top := 30;

  Left := 30;

  Width := 200;

  Height := 150;

 end; // with tpagecontrol

 // Создаем 3 страницы

 T := TTabSheet.Create(P);

 with T do begin

  Visible := True;  // Это необходимо, или форма не будет корректно перерисовываться

  Caption := 'Страница 1';

  PageControl := P; // Назначаем Tab в Page Control

 end; // with

 T := TTabSheet.Create(P);

 with T do begin

  Visible := True;  // Это необходимо, или форма не будет корректно перерисовываться

  Caption := 'Страница 2';

  PageControl := P; // Назначаем Tab в Page Control

 end; // with

 T := TTabSheet.Create(P);

 with T do begin

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT