Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подскажите метод генерации нового имени RealTime компонента [D7, WinXP]


Страницы:   1 2

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]

Зачем тебе имена?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо