Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Даже не знаю как тему обозвать ... )))


Страницы:   1 2

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]


> Выручайте! Интересно сколько народу поняло, что я имел ввиду?
>  ))) ...

Потратили бы минимум усилий на формулирование вопроса, кто-то бы понял.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо