![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обращение к классу [D6, WinXP]
webpauk © (2006-05-18 13:49:00)
TUser = class
private
fLabel: array of TLabel;
public
constructor Create;
destructor Destroy; override;
procedure DoSomething;
end;
есть такой класс. А как из отдельно взятого fLabel обратиться к TUser.DoSomething?
Сергей М. (2006-05-19 13:07:00) [1]
> webpauk (19.05.06 12:21) [91]
> какой же он, блин, наследник?
Как это какой ?!
Точно такой же полноправный наследник ..
webpauk (2006-05-19 12:21:00) [2]
> Сергей М. © (19.05.06 11:51) [90]
уже...
только какой же он, блин, наследник?
так - ни то, ни сё :)
Сергей М. (2006-05-19 11:51:00) [3]
> webpauk (19.05.06 11:47) [89]
Дык сделай его наследником Tcomponent ?
Что мешает-то ?
webpauk (2006-05-19 11:47:00) [4]
> Сергей М. © (19.05.06 11:35) [88]
дык Tuser не наследник Tcomponent. Tuser = class
Сергей М. (2006-05-19 11:35:00) [5]
> webpauk (19.05.06 10:23) [87]
Ну если тебе хочется изобрести велосипед, то на здоровье)
Но при этом следовало хотя бы устранить путаницу в смысловом контексте выбранных тобой имен идентификаторов.
webpauk (2006-05-19 10:23:00) [6]да я понял...
даже с первого раза...
но если TUser = class, а не TUser = class(TComponent) , то решением будет мой вариант
Сергей М. (2006-05-19 10:20:00) [7]
> webpauk (19.05.06 09:44) [85]
Опять ты за свое ?)
Не нужно тебе никаких ClassCreated !
Тебе нужно узнать какому объекту класса TUser "принадлежит" тот или иной объект класса TIPLabel ? Вот для того св-во Owner и существует !
SomeUserObject := TUser.Create(..); //TUser = class(TComponent) !!
..
SomeIPLabelObject := TIPLabel.Create(SomeUserObject); //отныне владельцем только что созданного объекта класса TIPLabel становится ранее созданный объект класса TUser, ссылку на который ты передал параметром SomeUserObject !!
Все !
Теперь в любой момент обращение вида
TUser(SomeIPLabelObject.Owner).DoSomething
приведет к вызову метода DoSomething именно того объекта, который является владельцем объекта SomeIPLabelObject !
webpauk (2006-05-19 09:44:00) [8]Tgroup=class(TComponent) ~ fLabel.ClassCreated:=Self (ClassCreated: Tobject)
webpauk (2006-05-19 09:41:00) [9]
> Сергей М. © (19.05.06 09:23) [83]
спасибо
вот это - позитив.
Сергей М. (2006-05-19 09:23:00) [10]
> как обратиться к методам класса Tgroup через TipLabel?
>
В данной реализации - никак.
Сделай TGroup наследником TComponent и указывай TGroup-объект в качестве Owner'a для всех объектов TIPLabel, относящихся к данному TGroup-объекту.
Тогда обращение будет выглядеть след.образом
TGroup(fLabel.Owner).DoSomething
webpauk (2006-05-18 18:07:00) [11]а как обратиться к методам класса Tgroup через TipLabel?
webpauk (2006-05-18 18:05:00) [12]Form1.FLabel.Popup=Popup1
обратиться к свойствам Flabel из Popup.MenuItem1: Tlabel(Popup1.PopupComponent).в моем случае class TipLabel (Tlabel)- TipLabel(Popup1.PopupComponent).
saxon (2006-05-18 18:01:00) [13]
> Form1.TipLabel(Popup1.PopupComponent).???.DoSomthing
Кроме Form1, больше ничего не понял :)
Что тут TipLabel - судя по семантике это функция (тогда что она возвращает)?
Popup1?
тем более Popup1.PopupComponent?
webpauk (2006-05-18 17:56:00) [14]
> Сергей М. © (18.05.06 17:39) [74]
разъясни мне, тёмному, как обратиться к методам класса через Form1.fLabel
webpauk (2006-05-18 17:54:00) [15]
TGroup = class
private
fGroupName: String;
fLabel: TIPLabel;
fActive: Boolean;
Items: array of TUser;
public
constructor Create;
destructor Destroy; override;
procedure DoSomthing;
end;
Form1.TipLabel(Popup1.PopupComponent).???.DoSomthing
webpauk (2006-05-18 17:51:00) [16]виноват, чуть-чуть не так
webpauk (2006-05-18 17:50:00) [17]
> Сергей М. © (18.05.06 17:39) [74]
да не стыдно мне
TGroup = class;
TUser = class
private
fLabel: TIPLabel;
fStatus: Boolean;
fDeleted: Boolean;
fParent: TGroup;
public
constructor Create;
destructor Destroy; override;
end;
Покажи как правильно создать fLabel, чтобы, например, Form1.TipLabel(Popup1.PopupComponent).fParent.DoSomething;
Сергей М. (2006-05-18 17:44:00) [18]
> webpauk
Только не говори, мол, я там ничего не понимаю - разговор с тобой в этом случае в теме "Общее" тут же закончен.
И если ты ничерта не понимаешь в происходящем при вызове тобой конструктора тоно или иного объекта - давно уже добро пожаловать в "Начинающие" ... И без этого сраного гонора что ты сейчас демонстрируешь ...
Сергей М. (2006-05-18 17:39:00) [19]
> webpauk (18.05.06 17:31) [72]
Тебе не стыдно, а ? Не читать исх.тексты, которы у тебя перед носом, а ?
Сергей М. (2006-05-18 17:37:00) [20]Умываю руки.
Буратинам - читать букварь !