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

на главную

Жанры

Советы по 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; {что-то типа этого}

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

Генерал Империи

Ланцов Михаил Алексеевич
4. Безумный Макс
Фантастика:
альтернативная история
5.62
рейтинг книги
Генерал Империи

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

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

Виконт. Книга 1. Второе рождение

Юллем Евгений
1. Псевдоним `Испанец`
Фантастика:
фэнтези
боевая фантастика
попаданцы
6.67
рейтинг книги
Виконт. Книга 1. Второе рождение

Идеальный мир для Лекаря 25

Сапфир Олег
25. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 25

Магия чистых душ 3

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Магия чистых душ 3

Шипучка для Сухого

Зайцева Мария
Любовные романы:
современные любовные романы
8.29
рейтинг книги
Шипучка для Сухого

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

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

Отмороженный 5.0

Гарцевич Евгений Александрович
5. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный 5.0

Кодекс Охотника. Книга XIII

Винокуров Юрий
13. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
аниме
7.50
рейтинг книги
Кодекс Охотника. Книга XIII

Деспот

Шагаева Наталья
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Деспот

Огненный князь 6

Машуков Тимур
6. Багряный восход
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Огненный князь 6

Ваше Сиятельство 5

Моури Эрли
5. Ваше Сиятельство
Фантастика:
городское фэнтези
аниме
5.00
рейтинг книги
Ваше Сиятельство 5

"Фантастика 2024-5". Компиляция. Книги 1-25

Лоскутов Александр Александрович
Фантастика 2024. Компиляция
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Фантастика 2024-5. Компиляция. Книги 1-25

Поступь Империи

Ланцов Михаил Алексеевич
7. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Поступь Империи