![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Даже не знаю как тему обозвать ... )))
TUserClass © (2008-06-18 17:22:00)Удалено модератором
Примечание: А ты подумай и только тогда пиши.
McSimm (2008-06-18 18:03:00) [1]
> и вопрос тогда приобретает совсем иной смысл.
действительно.
Поросенок Винни-Пух (2008-06-18 18:03:00) [2]указывающее на переменную класса TClass2, из под которойсейчас выполняется процедура дочернего класса TClass1.Proc1.Proc1
procedure TClass1.Proc1(Caller : TClass2);
begin
ля-ля-тополя;
Caller.Proc1;
end;
Поросенок Винни-Пух (2008-06-18 18:01:00) [3]он просто сразу не сказал самого главного
TClass1.Poroc1 вызывается не просто так, а из метода TClass2.Proc1
и вопрос тогда приобретает совсем иной смысл.
McSimm (2008-06-18 18:01:00) [4]Ответ на [17]. Нет, при такой организаци это невозможно.
В общем случае может быть неограниченное количество экземпляров "подчиненного" класса. ( см. [4] )
Необходимо дать знать "главному" эту информацию. Например "главный" класс может держать у себя список экземпляров подчиненных, который модифицируется при любом создании / уничтожении экземпляров подчиненного класса.
Юрий Зотов (2008-06-18 17:55:00) [5]> Поросенок Винни-Пух © (18.06.08 17:47) [11]
Ни у которого. Потому что тот самый "один и тот же экземпляр TClass1" ни об одном экземпляре TClass2 (из N имеющихся) вообще не знает. Вызывать просто нечего.
У автора явно наблюдается некая мешанина в терминологии, поэтому он и не может ничего объяснить толком. Думаю, если бы он попробовал сделать это простыми русскими словами, то у негополучилось бы лучше.
McSimm (2008-06-18 17:54:00) [6]
> Не могу сформулировать никак ... :(
Я попробую помочь с этим.
Тема ветки: Обращение из одного класса к экземпляру другого, который знает о первом.
Вопрос:
Есть некая организация из двух классов, назовем условно "главный" и "подчиненный". Экземпляры подчиненного класса знают про главный, но главный не знает про подчиненный. Можно ли и как при такой организации вызвать метод подчиненного класса из главного ?
Поросенок Винни-Пух (2008-06-18 17:52:00) [7]TClass1 = class ()
procedure Proc1(Caller : TClass2);
end;
Поросенок Винни-Пух (2008-06-18 17:50:00) [8]вот чудо.
а ссылку на себя передать вызывая TClass1.Proc1 не догадаться?
TUserClass (2008-06-18 17:49:00) [9]
> Поросенок Винни-Пух © (18.06.08 17:47) [11]
> ...
> Он хочет вызвать метод TClass2 из метода TClass1.
> Мне интересно у которого именно экземпляра он это будет
> делать.
> ...
А этот ответ-"вопрос" [4] я вообще не вник
Поросенок Винни-Пух (2008-06-18 17:49:00) [10]нет там никаких дочерних классов
TUserClass (2008-06-18 17:48:00) [11]Не могу сформулировать никак ... :(
Вот мне надо что то вроде этого
[что-то, указывающее на переменную класса TClass2, из под которой сейчас выполняется процедура дочернего класса TClass1.Proc1 ].Proc1;
Опять какт не понятно
Поросенок Винни-Пух (2008-06-18 17:47:00) [12]там же все по-русски.
имеется N экземпляров TClass2, у которых в поле Class1 прописана ссылка на один и тот же экземпляр TClass1
Он хочет вызвать метод TClass2 из метода TClass1.
Мне интересно у которого именно экземпляра он это будет делать.
из N имеющихся.
Юрий Зотов (2008-06-18 17:43:00) [13]> Поросенок Винни-Пух © (18.06.08 17:38) [7]
Не знаю, как он, а я бы отвечать на [4] не взялся. Мощности моего телепатора не хватает даже на то, чтобы хотя бы понять, что же такое там имелось в виду. По крайней мере, за разумное время.
Поросенок Винни-Пух (2008-06-18 17:41:00) [14]а так что делать если нет ни одного экземпляра tclass2 или у всех их в поле class1 nil
TUserClass (2008-06-18 17:40:00) [15]Так....момент - щас с мыслями соберусся :)
Поросенок Винни-Пух (2008-06-18 17:38:00) [16]что нужно сделать он уже сказал.
теперь пусть ответит на [4]
:)
Поросенок Винни-Пух (2008-06-18 17:37:00) [17]Вот именно из процедуры дочернего класса
Это с какого такого он вдруг стал "дочерним"?
Юрий Зотов (2008-06-18 17:37:00) [18]> TUserClass (18.06.08 17:30) [2]
> из процедуры дочернего класса надо вызвать процедуру родительского
В Вашем коде нет родительского и дочернего класса, а есть два совершенно независимых класса. Поэтому требуется уточнение - что же все-таки нужно сделать?
Поросенок Винни-Пух (2008-06-18 17:31:00) [19]tclass2var1.Class1 := class1var1;
tclass2var2.Class1 := class1var1;
tclass2var3.Class1 := class1var1;
...
tclass2varN.Class1 := class1var1;
и у какого теперь экзкмпляра ткласс2 (из N существующих и ссылающихся на один и тот же эекземпляр класс1 вызывать proc1?
McSimm (2008-06-18 17:31:00) [20]
> Выручайте! Интересно сколько народу поняло, что я имел ввиду?
> ))) ...
Потратили бы минимум усилий на формулирование вопроса, кто-то бы понял.