Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];

Вниз

Даже не знаю как тему обозвать ... )))   Найти похожие ветки 

 
TUserClass   (2008-06-18 17:22) [0]

Удалено модератором
Примечание: А ты подумай и только тогда пиши.


 
Поросенок Винни-Пух ©   (2008-06-18 17:26) [1]

а не наоборот?


 
TUserClass   (2008-06-18 17:30) [2]

нет .... Вот именно из процедуры дочернего класса надо вызвать процедуру родительского....уж0с :)

вот что-то наковырял:

Self.ClassParent.MethodName (@TClass2.Proc1);

Надо будет завтра попробовать - хотя мне кажется что это - не то ...


 
McSimm ©   (2008-06-18 17:31) [3]


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

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


 
Поросенок Винни-Пух ©   (2008-06-18 17:31) [4]

tclass2var1.Class1 := class1var1;
tclass2var2.Class1 := class1var1;
tclass2var3.Class1 := class1var1;
...
tclass2varN.Class1 := class1var1;

и у какого теперь экзкмпляра ткласс2 (из N существующих и ссылающихся на один и тот же эекземпляр класс1 вызывать proc1?


 
Юрий Зотов ©   (2008-06-18 17:37) [5]

> TUserClass   (18.06.08 17:30) [2]
> из процедуры дочернего класса надо вызвать процедуру родительского

В Вашем коде нет родительского и дочернего класса, а есть два совершенно независимых класса. Поэтому требуется уточнение - что же все-таки нужно сделать?


 
Поросенок Винни-Пух ©   (2008-06-18 17:37) [6]

Вот именно из процедуры дочернего класса

Это с какого такого он вдруг стал "дочерним"?


 
Поросенок Винни-Пух ©   (2008-06-18 17:38) [7]

что нужно сделать он уже сказал.
теперь пусть ответит на [4]

:)


 
TUserClass   (2008-06-18 17:40) [8]

Так....момент - щас с мыслями соберусся :)


 
Поросенок Винни-Пух ©   (2008-06-18 17:41) [9]

а так что делать если нет ни одного экземпляра tclass2 или у всех их в поле class1 nil


 
Юрий Зотов ©   (2008-06-18 17:43) [10]

> Поросенок Винни-Пух ©   (18.06.08 17:38) [7]

Не знаю, как он, а я бы отвечать на [4] не взялся. Мощности моего телепатора не хватает даже на то, чтобы хотя бы понять, что же такое там имелось в виду. По крайней мере, за разумное время.


 
Поросенок Винни-Пух ©   (2008-06-18 17:47) [11]

там же все по-русски.

имеется N экземпляров TClass2, у которых в поле Class1 прописана ссылка на один и тот же экземпляр TClass1

Он хочет вызвать метод TClass2 из метода TClass1.
Мне интересно у которого именно экземпляра он это будет делать.
из N имеющихся.


 
TUserClass   (2008-06-18 17:48) [12]

Не могу сформулировать никак ... :(

Вот мне надо что то вроде этого

[что-то, указывающее на переменную класса TClass2, из под которой сейчас выполняется процедура дочернего класса TClass1.Proc1 ].Proc1;

Опять какт не понятно


 
Поросенок Винни-Пух ©   (2008-06-18 17:49) [13]

нет там никаких дочерних классов


 
TUserClass   (2008-06-18 17:49) [14]


> Поросенок Винни-Пух ©   (18.06.08 17:47) [11]
> ...
> Он хочет вызвать метод TClass2 из метода TClass1.
> Мне интересно у которого именно экземпляра он это будет
> делать.
> ...


А этот ответ-"вопрос" [4] я вообще не вник


 
Поросенок Винни-Пух ©   (2008-06-18 17:50) [15]

вот чудо.
а ссылку на себя передать вызывая TClass1.Proc1 не догадаться?


 
Поросенок Винни-Пух ©   (2008-06-18 17:52) [16]

TClass1 = class ()
  procedure Proc1(Caller : TClass2);    
end;


 
McSimm ©   (2008-06-18 17:54) [17]


> Не могу сформулировать никак ... :(

Я попробую помочь с этим.

Тема ветки: Обращение из одного класса к экземпляру другого, который знает о первом.

Вопрос:
Есть некая организация из двух классов, назовем условно "главный" и "подчиненный". Экземпляры подчиненного класса знают про главный, но главный не знает про подчиненный. Можно ли и как при такой организации вызвать метод подчиненного класса из главного ?


 
Юрий Зотов ©   (2008-06-18 17:55) [18]

> Поросенок Винни-Пух ©   (18.06.08 17:47) [11]

Ни у которого. Потому что тот самый "один и тот же экземпляр TClass1" ни об одном экземпляре TClass2 (из N имеющихся) вообще не знает. Вызывать просто нечего.

У автора явно наблюдается некая мешанина в терминологии, поэтому он и не может ничего объяснить толком. Думаю, если бы он попробовал сделать это простыми русскими словами, то у негополучилось бы лучше.


 
McSimm ©   (2008-06-18 18:01) [19]

Ответ на [17]. Нет, при такой организаци это невозможно.
В общем случае может быть неограниченное количество экземпляров "подчиненного" класса. ( см. [4] )

Необходимо дать знать "главному" эту информацию. Например "главный" класс может держать у себя список экземпляров подчиненных, который модифицируется при любом создании / уничтожении экземпляров подчиненного класса.


 
Поросенок Винни-Пух ©   (2008-06-18 18:01) [20]

он просто сразу не сказал самого главного

TClass1.Poroc1 вызывается не просто так, а из метода TClass2.Proc1

и вопрос тогда приобретает совсем иной смысл.


 
Поросенок Винни-Пух ©   (2008-06-18 18:03) [21]

указывающее на переменную класса TClass2, из под которой сейчас выполняется процедура дочернего класса TClass1.Proc1.Proc1

procedure TClass1.Proc1(Caller : TClass2);    
begin
ля-ля-тополя;
Caller.Proc1;
end;


 
McSimm ©   (2008-06-18 18:03) [22]


> и вопрос тогда приобретает совсем иной смысл.

действительно.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.049 c
2-1213613675
EgorovAlex
2008-06-16 14:54
2008.07.20
Запись в файл и чтение из файла записи: есть запись:


1-1195325548
XDlf
2007-11-17 21:52
2008.07.20
TChart отображение графиков в рантайме


2-1213692159
vint45
2008-06-17 12:42
2008.07.20
Потоки. Нужна ли синхронизация?


8-1182769628
DV
2007-06-25 15:07
2008.07.20
перечисление пинов


15-1212669800
андр.
2008-06-05 16:43
2008.07.20
MS SQL 2000





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский