Форум: "Основная";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
ВнизParent Найти похожие ветки
← →
webpauk (2004-09-16 15:45) [0]есть
TPopup = class
TmainMenuItem = class
public
Popup: Tpopup
end;
Titem = class
public
Popup: Tpopup
end;
как определить кому принадлежит Popup, когда его создают в разных классах?
← →
olookin © (2004-09-16 15:46) [1]какой-нибудь ClassName(Parent as TControl)?
← →
Skier © (2004-09-16 15:50) [2]>webpauk (16.09.04 15:45)
> как определить кому принадлежит Popup
Может Owner, а не Parent ?
← →
webpauk (2004-09-16 15:52) [3]а подробней?!
У TPopup какое-то свойство должно быть?
пишется на WinApi
← →
webpauk (2004-09-16 15:53) [4]private
Owner:?
end;
← →
афвуд (2004-09-16 15:54) [5]
> кому принадлежит Popup
А какой смысл ты вкладываешь в эти слова?
← →
webpauk (2004-09-16 15:59) [6]Вроде нашел:
if Self.ClassParent=TmainMenuItem then
if Self.ClassParent=Titem then
← →
Skier © (2004-09-16 16:03) [7]>webpauk (16.09.04 15:59) [6]
Не то нашел.
← →
webpauk (2004-09-16 17:12) [8]тогда как обратиться к свойствам родителя?
← →
Amoeba © (2004-09-16 17:16) [9]Для начала нужно иметь указатель на него.
Потомками каких классов являются классы, приведенные тобой?
← →
webpauk (2004-09-16 17:20) [10]Tpopup может быть потомком
TmainMenuItem, Titem
← →
webpauk (2004-09-16 17:28) [11]Оба класса TmainMenuItem, Titem создаются не как потомки, а объявляются как class
← →
Skier © (2004-09-16 17:33) [12][10]-[11] очень на орех смахивает.
← →
Amoeba © (2004-09-16 17:37) [13]
> webpauk (16.09.04 17:28) [11]
> Оба класса TmainMenuItem, Titem создаются не как потомки,
> а объявляются как class
И чего ты еще хочешь получить со своими классами? Естественно, при таком проектировании, как у тебя, они не могут "знать", кому они "принадлежат", тем более, что они могут в принципе "принадлежать" одновременно более чем одному "владельцу". Так что при такой постановке задача решения не имеет. Пределывай свои классы. А как - думай сам. Тебе виднее.
← →
Amoeba © (2004-09-16 17:39) [14]
> Skier © (16.09.04 17:33) [12]
> [10]-[11] очень на орех смахивает.
Обеими руками "за"!
LMD!
← →
webpauk (2004-09-16 18:01) [15]Тогда подскажите как из созданного экземпляра класса обратиться к свойствам создателя
← →
Amoeba © (2004-09-16 18:07) [16]Прежде всего, созданный экземпляр класса должен иметь указатель на "создателя". А где он у тебя?
LMD! Нет больше слов, одни буквы остались...
← →
webpauk (2004-09-16 18:18) [17]Ну предположим
type
TmainMenuItem = class;
TPopup = class
private
Parent: ^TmainMenuItem ;
procedure Length;
end;
TmainMenuItem = class
public
Width: Integer;
procedure AddPopup(Popup: Tpopup);
end;
procedure TmainMenuItem .AddPopup(Popup: Tpopup);
begin
Width:=100;
Popup:=TPopup.Create;
Popup.Parent:=@Self;
end;
procedure TPopup.Length;
begin
Length:=Parent.Width; //?! - ничего не выходит
end;
← →
Gero © (2004-09-16 19:45) [18]
> Parent: ^TmainMenuItem ;
Parent: TMainMenuItem;
> Popup.Parent:=@Self;
Popup.Parent := Self;
> procedure Length;
function Length: Integer;
> procedure TPopup.Length;
> begin
> Length:=Parent.Width;
> end;
function TPopup.Length: Integer;
begin
Result := Parent.Width;
end;
Это так, по мелочам. А вобще конструкция организована не лучшим образом.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.043 c