Читаем Советы по 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.

PageControl 

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

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

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

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

Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT