![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Преобразование типов
Evgenxxxx © (2005-12-06 09:21:00)Мне необходимо преобразовать строковое выражение типа String в тип Tedit. Т.е. я создаю переменную типа Tedit, и хочу присвоить ему уже существующий Edit(напр. NewEdit:=Edit1).Но имя едитов формируются в цикле поетому имеют тип STR допустим:
Type
edit1:TEdit;
....
var
NewEdit:Tedit;
..............
For i:=1 to 3 do
begin
s:='edit'+InttoStr(i);
..........
&&&&&????? Newedit:=S----------- ?????? Как это сделать?
Нужно без свойства NewEdit.Name
msguns (2005-12-06 10:10:00) [1]Динамическиадресовать объекты по их ИМЕНИ - не просто дурной, но еще и опасный способ. Хотя бы потому, что можно напороться на ситуацию, когда имеется несколько однотипных контролов с "одинаковым" именем. Например, при динамическом создании нескольких экземпляров "навороченных" контролами контейнеров.
Если надо, к примеру, заполнить начальными значениями контролы, расположенные на динамическисозданной форме (фрэйме, панели и т.д.), следует обращаться к таким контролам через их "носитель" (Parent), используя для точечной адресации тэги.
Virgo_Style (2005-12-06 09:39:00) [2]Так.... насколько я понял, переменная NewEdit должна стать ссылкой на уже существующий Edit, который надо найти по его имени.
Т.е., видимо, так:
NewEdit:=FindComponent(S);
Leonid Troyanovsky (2005-12-06 09:39:00) [3]
> Evgenxxxx (06.12.05 09:21)
> &&&&&????? Newedit:=S----------- ?????? Как это сделать?
Никак.
А чего, собс-но, хочется? Если на пальцах объяснить,
можно даже так: "а вот в Foxpro можно .."
--
Regards, LVT.