![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Преобразование типов. [D7, WinXP]
Новичек © (2004-08-09 08:34:00)Здравствуйте, Мастера.
Есть кусок кода (взят из help'a Delphi):
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
const
NamePrefix = 'MyEdit';
begin
for i := 1 to 20 do begin
TEdit.Create(Self).Name := NamePrefix + IntToStr(i);
with TEdit(FindComponent(NamePrefix + IntToStr(i))) do
begin
Left := 10;
Top := i * 20;
Parent := self;
end;
end;
end;
Вопрос такой:
Зачем в строке TEdit(FindComponent(NamePrefix + IntToStr(i))) приводить к типу TEdit, если и так экземпляр имеет тип TEdit?
Или эта строка имеет другой смысл?
Кстати, если в вышеупомянутой строке написать TLabel вместо TEdit, то ничего не изменится. Почему?
С уважением, Beginner.
Думкин (2004-08-09 09:14:00) [1]> [6] Anatoly Podgoretsky © (09.08.04 09:06)
Это из хелпа по FindComponent, только для иллюстрации.
Anatoly Podgoretsky (2004-08-09 09:06:00) [2]Так писать не рационально
for i := 1 to 20 do begin
with TEdit.Create(Self) do
begin
Name := NamePrefix + IntToStr(i);
Left := 10;
Top := i * 20;
Parent := self;
end;
end;
Думкин (2004-08-09 08:48:00) [3]
> [4] Новичек (09.08.04 08:45)
Угу, в архиве уже.
Новичек (2004-08-09 08:45:00) [4]
> Думкин
А нету этой ветки :-(
Новичек (2004-08-09 08:43:00) [5]Так просто... Хотя для меня это явилось камнем преткновения. Огромное спасибо!
Думкин (2004-08-09 08:43:00) [6]Ну вот. Тебе сюда:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1089723948&n=3&web=1
TUser (2004-08-09 08:41:00) [7]Просо ф-ция FindComponent возвращает TComponent. На Delphi считается, что класс совместим по типу со всеми своими потомками. Т.о. она (функция) просто не знает TComponent это или его потомок.