![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать имя экземпляра класса? [D6, WinXP]
lovres © (2002-12-05 16:04:00)Конкретнее:
Динамически создаются объекты типа TShape и, в зависимости от имени надо выполнять разные действия. Например, у объекта с именем Shape1 поменять цвет, а для Shape2 - размер. Как по Source можно узнать имя именно объекта, а не самого класса или как по-другому?
lovres (2002-12-05 16:35:00) [1]TComponent(Source).Name - ну конечно же. спасибо.
>to Smashich
Да, согласен,-прямое приведение типа, но у кого не бывает трудных дней...
Zemal (2002-12-05 16:29:00) [2]А как ты даёшь имена экземплярам класса? Вот и оперируй с Sender-ом как пожелаешь :), у него будет поле Name в котором и будет содержаться имя как String.
Smashich (2002-12-05 16:14:00) [3]я так понимаю проблема в том человек не знает про приведение типов?
Smashich (2002-12-05 16:13:00) [4]чем не нравится (Sender as TComponent).Name?
Skier (2002-12-05 16:10:00) [5]>lovres
if CompareText(TComponent(Source).Name, "Shape1") = 0 then begin
end; //if
Но...есть ещё хороший метод - FindComponent(...)
LongIsland (2002-12-05 16:09:00) [6]Или как по-другому:-)
Когда создаешь объекты - присваивай им имена и все, например
for i:=0 to 10 do
begin
Shape:=TShape.Create(Form);
Shape.Parent:=Form;
Shape.Name:="Shape"+IntToStr(i);
...
end;