![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как обратиться к неизвестному экземпляру по индексу?
Zonder2008 © (2008-06-15 16:55:00)есть скажем 10 Мемо, как сделать memo[i].lines.Add('');
Игорь Шевченко (2008-06-16 12:00:00) [1]Anatoly Podgoretsky © (16.06.08 11:45) [18]
Я по 2006-й смотрел, других у меня нету.
Впрочем, я так тоже не пишу, поэтому особенно не огорчаюсь.
Anatoly Podgoretsky (2008-06-16 11:45:00) [2]> Игорь Шевченко (16.06.2008 10:47:17) [17]
Хочешь огорчу?
Результат obj as xxx будет разный в зависимости от версии Дельфи.
Игорь Шевченко (2008-06-16 10:47:00) [3]Leonid Troyanovsky © (15.06.08 23:56) [14]
> Анатолий, от nil не спасает, бо as его допускает.
Вот же как интересно: Код реализации _AsClass на Pure Pascal не допускает
{$IFDEF PUREPASCAL}
begin
Result := Child;
if not (Child is Parent) then
Error(reInvalidCast); // loses return address
end;
{$ELSE}
а действительная реализация на ассемблере
TEST EAX,EAX
JE @@exit
допускает.
Кому верить ?
Германн (2008-06-16 01:21:00) [4]
> Leonid Troyanovsky © (15.06.08 23:56) [14]
>
>
Вот и советуй после этого читать справку.
with TEdit(FindComponent(NamePrefix + IntToStr(i))) do
begin
Left := 10;
Top := i * 20;
Parent := self;
end;
Д6.
Пример из справки я конечно урезал. Но "в рамках данной конференции".
:(
Anatoly Podgoretsky (2008-06-16 00:07:00) [5]> Leonid Troyanovsky (15.06.2008 23:56:14) [14]
Не буду проверять, поскольку так писать никогда не буду.
Leonid Troyanovsky (2008-06-15 23:56:00) [6]
> Anatoly Podgoretsky © (15.06.08 21:47) [11]
> Леонид проверка на nil не обязательно, поскольку есть предикат
> AS
Анатолий, от nil не спасает, бо as его допускает.
--
Regards, LVT.
Loginov Dmitry (2008-06-15 23:55:00) [7]> Если ошибка одна, то это Form1.
Компилятор не ругается! Какая же здесь ошибка? Указанием "Form1" я лишь подчеркнул, что метод FindComponent() следует вызывать в данномслучае именноу формы.
> У Архангельского позаимствовал или сам изобрел ?
Это "изобретение" старо как мир. Теперь видимо и Вы о нем узнали. Читайте в справке про FindComponent().
MsGuns (2008-06-15 23:25:00) [8]>Loginov Dmitry © (15.06.08 18:01) [4]
>(Form1.FindComponent('Memo' + IntToStr(I)) as TMemo).Lines.Add('');
У Архангельского позаимствовал или сам изобрел ?
Anatoly Podgoretsky (2008-06-15 21:47:00) [9]> Leonid Troyanovsky (15.06.2008 21:07:10) [10]
Леонид проверка на nil не обязательно, поскольку есть предикат AS
Leonid Troyanovsky (2008-06-15 21:07:00) [10]
> TForumHelp © (15.06.08 20:05) [9]
> а вот здесь: (Form1.FindComponent('Memo' + IntToStr(I))
> as TMemo).Lines.Add(''); если не ошибаюсь.
Если ошибка одна, то это Form1.
Если допустимо более, то это отсутствие проверки nil.
--
Regards, LVT.
TForumHelp (2008-06-15 20:05:00) [11]
> > (Form1.FindComponent('Memo' + IntToStr(I)) as TMemo).Lines.
> > Add('');Где в этом коде ошибка ?
а вот здесь: (Form1.FindComponent('Memo' + IntToStr(I ))as TMemo).Lines.Add(''); если не ошибаюсь.
Loginov Dmitry (2008-06-15 20:00:00) [12]> Где в этом коде ошибка ?
Вам виднее.
Anatoly Podgoretsky (2008-06-15 19:36:00) [13]> Smile (15.06.2008 19:23:06) [6]
Обратись в уголовный розыск.
Smile (2008-06-15 19:23:00) [14]Куда-то пропали индексы у Memo:)
Игорь Шевченко (2008-06-15 19:19:00) [15]
> (Form1.FindComponent('Memo' + IntToStr(I)) as TMemo).Lines.
> Add('');
Где в этом коде ошибка ?
Loginov Dmitry (2008-06-15 18:01:00) [16](Form1.FindComponent('Memo' + IntToStr(I)) as TMemo).Lines.Add('');
Германн (2008-06-15 17:44:00) [17]В FormCreate
Memo[1]:=Memo1;
Memo[2]:=Memo2;
и так все 10;
Zonder2008 (2008-06-15 17:15:00) [18]мне нужно не рантайм создавать а в экземпляры, которые при дизайне созданы были
Renegat (2008-06-15 16:57:00) [19]создай массив
memo: array [1..10] of TMemo;