![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите метод генерации нового имени RealTime компонента [D7, WinXP]
dreamse © (2006-12-12 05:21:00)Создаю кнопки в RealTime И столкнулся с проблемой генерации нового имени. Проблема заключаеться в чём :
Есть панель : Tpanel на ней генеряться кнопки , написал процедуру создания нового имени для кнопки. Но проблема в том что имя ищеться непосредствено на Tpanel , если же положить на форму ещё одну Tpanel то соответственно функция создания имени не сможет обработать и вторую ( так как неизвестно сколько всего панелей могут быть на форме )
Соответственно получаеться путаница так как может на разных панелях быть по одинаковому названию кнопок :(
Использую следующий код :
// Ãåíåðàöèÿ íîâîãî èìåíè
function SetNameUnique(Name: string) : string;
var
i: Integer;
tempname: string;
begin
i := 1;
Name := Name + '1';
tempname := Name;
while Application.FindComponent(Name) nil do
begin
Inc(i);
Name := Format('%s%d', [tempname, i]);
end;
result := Name;
end;
Правда не уверен что он нормально генерирует имена. Минус в том что строка : while Application.FindComponent(Name) nil do
Не обрабатывает динамически созданые формы и компоненты на них. Как быть ?
Есть ли способ ГЛОБАЛЬНОГО поиска компонент во всём приложении или придёться делать рекрусивную функцию которая будет проверять в цикле ВСЕ контролы в приложении ? ( Что нежалательно )
В общем нужен простой способ сгенерировать новое название кнопки ( не из случайных чисел :) ) учитывая все контролы в приложении ( сколько форм тоже не известно заранее )
Palladin (2006-12-12 05:52:00) [21]Зачем тебе имена?