Чтение онлайн

на главную - закладки

Жанры

Советы по Delphi. Версия 1.0.6

Озеров Валентин

Шрифт:

 ANode: TTreeNode;

begin

 AList.Clear;

 Cnt:= Items.Count -1;

 ANode:= Items.GetFirstNode;

 for i:= 0 to Cnt do begin

AList.Add(GetItemText(ANode));

ANode:= ANode.GetNext;

 end;

end;

function THETreeView.GetItemText(ANode: TTreeNode): string;

begin

 Result:= StringOfChar(' ', ANode.Level) + ANode.Text;

end;

function THETreeView.AlphaSort: Boolean;

var

 I: Integer;

begin

 if HandleAllocated then begin

Result:= CustomSort(nil, 0);

 end else Result:= False;

end;

function eView.CustomSort(SortProc: TTVCompare; Data: Longint): Boolean;

var

 SortCB: TTVSortCB;

 I: Integer;

 Node: TTreeNode;

begin

 Result:= False;

 if HandleAllocated then begin

with SortCB do begin

if not Assigned(SortProc) then lpfnCompare:= @DefaultTreeViewSort

else lpfnCompare:= SortProc;

hParent:= TVI_ROOT;

lParam:= Data;

Result:= TreeView_SortChildrenCB(Handle, SortCB, 0);

end;

if Items.Count > 0 then begin

Node:= Items.GetFirstNode;

while Node <> nil do begin

if Node.HasChildren then Node.CustomSort(SortProc, Data);

Node:= Node.GetNext;

end;

end;

 end;

end;

//Регистрация
компонента

procedure Register;

begin

 RegisterComponents('Win95', [THETreeView]);

end;

end.

Разное

Создание компонента во время работы приложения

Var

 MyButton: TButton;

MyButton:= TButton.Create(MyForm); // MyForm
теперь "обладает" MyButton

with MyButton do BEGIN

 Parent:= MyForm; // Выбираем родителей. MyForm "усыновляет" MyButton

 height:= 32;

 width:= 128;

 caption:= 'Я здесь!';

 left := (MyForm.ClientWidth – width) div 2;

 top := (MyForm.ClientHeight – height) div 2;

END;

Inprise также рассказывала об этом в выпусках TechInfo.

Поищите

ti2938.asc Creating Dynamic Components at Runtime

на публичном WWW или FTP сайте компании Inprise.

Получение индекса компонента в списке родителя

Мне необходимо найти индекс компонента в родительском списке дочерних элементов управления. Я попытался модифицировать prjexp.dll, но без успеха. У кого-нибудь есть идеи?

Есть такая функция. Ищет родителя заданного компонента, перебирает список и возвращает индекс искомого компонента. Функция прошла многочисленные тесты и вполне работоспособна.

{ функция, возвращающая индекс искомого компонента в

списке родителя; возвращает –1 при отсутствии компонента }

function IndexInParent(vControl: TControl): integer;

var

 ParentControl: TWinControl;

begin

 {делаем "слепок" родителя через базовый класс на предмет доступности }

 ParentControl:= TForm(vControl.Parent);

 if (ParentControl <> nil) then begin

for Result:= 0 to ParentControl.ControlCount - 1 do begin

if (ParentControl.Controls[Result] = vControl) then exit;

end;

 end;

 { если мы уж попали в это место, то либо не найден компонент, либо компонент не имел родителя }

 Result:= –1;

end;

Массив компонентов…

Возможно ли создание массива компонентов? Для показа статуса я использую набор LED-компонентов и хотел бы иметь к ним доступ, используя массив.

Прежде всего необходимо объявить массив:

LED: array[1..10] of TLed; (10 элементов компонентного типа TLed)

При необходимости динамического создания LED-компонентов организуйте цикл, пример которого мы приводим ниже:

for counter:= 1 to 10 do begin

 LED[counter]:= TLED.Create;

 LED[counter].top:= …

 LED[counter].Left:= …

 LED[counter].Parent:= Mainform; {что-то типа этого}

Поделиться:
Популярные книги

Генерал Скала и ученица

Суббота Светлана
2. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.30
рейтинг книги
Генерал Скала и ученица

Доктора вызывали? или Трудовые будни попаданки

Марей Соня
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Доктора вызывали? или Трудовые будни попаданки

Очкарик

Афанасьев Семён
Фантастика:
фэнтези
5.75
рейтинг книги
Очкарик

Бывшие. Война в академии магии

Берг Александра
2. Измены
Любовные романы:
любовно-фантастические романы
7.00
рейтинг книги
Бывшие. Война в академии магии

Неудержимый. Книга XI

Боярский Андрей
11. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XI

На границе тучи ходят хмуро...

Кулаков Алексей Иванович
1. Александр Агренев
Фантастика:
альтернативная история
9.28
рейтинг книги
На границе тучи ходят хмуро...

Метатель. Книга 3

Тарасов Ник
3. Метатель
Фантастика:
попаданцы
альтернативная история
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель. Книга 3

Блуждающие огни 2

Панченко Андрей Алексеевич
2. Блуждающие огни
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Блуждающие огни 2

Приручитель женщин-монстров. Том 1

Дорничев Дмитрий
1. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 1

Я же бать, или Как найти мать

Юнина Наталья
Любовные романы:
современные любовные романы
6.44
рейтинг книги
Я же бать, или Как найти мать

Прометей: Неандерталец

Рави Ивар
4. Прометей
Фантастика:
героическая фантастика
альтернативная история
7.88
рейтинг книги
Прометей: Неандерталец

Измена. Не прощу

Леманн Анастасия
1. Измены
Любовные романы:
современные любовные романы
4.00
рейтинг книги
Измена. Не прощу

Отверженный III: Вызов

Опсокополос Алексис
3. Отверженный
Фантастика:
фэнтези
альтернативная история
7.73
рейтинг книги
Отверженный III: Вызов

Честное пионерское! Часть 1

Федин Андрей Анатольевич
1. Честное пионерское!
Фантастика:
попаданцы
альтернативная история
7.00
рейтинг книги
Честное пионерское! Часть 1