![]() |
| ||
|
|
Новости |
Поиск |
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-18 15:52:00) [61]
> webpauk (18.05.06 15:48) [30]
> суть то ты хоть понял?
Как ты изложил суть, так я ее и понял.
> не в определениях дело
Да неужели ?
Ты там, кажется, в [22] про Owner что-то пробухтел ?)
Ну так вот изволь для начала объяснить свое видение связи терминов "создатель" и "владелец" ..
Джо (2006-05-18 15:50:00) [62]> [30] webpauk (18.05.06 15:48)
>
> > Сергей М. © (18.05.06 15:03) [27]
>
> суть то ты хоть понял? не в определениях дело
Как это не в них? Если на автомобильном форуме Феррари будут называть Жигулем, а Жигуль — самокатом Хонда, как думаешь, смогут до чего-нибудь толкового договориться?
webpauk (2006-05-18 15:48:00) [63]
> Сергей М. © (18.05.06 15:03) [27]
суть то ты хоть понял? не в определениях дело
Сергей М. (2006-05-18 15:14:00) [64]
> webpauk (18.05.06 14:35) [26]
Ты разницу между "класс-создатель" и "объект-владелец" осюсяешь ?
Плохиш (2006-05-18 15:11:00) [65]
> webpauk (18.05.06 14:21) [22]
>
> > Плохиш © (18.05.06 14:19) [20]
>
> точно
> потому как Owner такого fLabel[I]=Form1 (или компонент,
> на котором оно находится)
Чушь полная и не прекрытая и отсутствие знаний.
constructor TUser.Create;
begin
...
fLabel[i] := TLabel.Create(self);
...
end;
Сергей М. (2006-05-18 15:03:00) [66]
> к классу-создателю
Галиматья
webpauk (2006-05-18 14:35:00) [67]
> MBo © (18.05.06 14:26) [23]
вопрос имел целью определить есть ли какие либо свойства Tlabel(Tobject), которые позволяют обратиться напрямую, без использования вспомогательных свойств Tlabel, к классу-создателю
Сергей М. (2006-05-18 14:35:00) [68]
> webpauk (18.05.06 14:19) [21]
Врешь ведь ...
Проверяй :
type
TMyObject = class(TObject)
end;
procedure TTestForm.Button3Click(Sender: TObject);
var
Obj: TObject;
begin
Obj := TMyObject.Create;
ShowMessage(Obj.ClassName); //Увидишь именно 'TMyObject', а не 'TObject', несмотря на то что Obj: TObject
end;
webpauk (2006-05-18 14:29:00) [69]
> MBo © (18.05.06 14:26) [23]
не поможет
Tag используется
MBo (2006-05-18 14:26:00) [70]возможно, такой пример поможет:
в TUser.Create
fLabel[0]:= TLabel.Create(...)// если они внутри создаются
fLabel[0].Tag := Integer(Self)
...
TUser(fLabel[0].Tag).DoSomething
webpauk (2006-05-18 14:21:00) [71]
> Плохиш © (18.05.06 14:19) [20]
точно
потому как Owner такого fLabel[I]=Form1 (или компонент, на котором оно находится)
webpauk (2006-05-18 14:19:00) [72]Flabel[I].classtype=Tlabel
Плохиш (2006-05-18 14:19:00) [73]
> webpauk (18.05.06 14:11) [11]
Я, честно сказать, так и не понял, что "великому гению" надо. Но телепатор подсказывает, что "великий гений" пытается сделать свой Owner.
Сергей М. (2006-05-18 14:17:00) [74]
> webpauk (18.05.06 14:16) [17]
см. TObject.Classtype
webpauk (2006-05-18 14:17:00) [75]
> Сергей М. © (18.05.06 14:16) [16]
variant
webpauk (2006-05-18 14:16:00) [76]
> Сергей М. © (18.05.06 14:15) [15]
fLabel[I].ClassPointer
Сергей М. (2006-05-18 14:16:00) [77]
> варик
Это, пардон, что такое ?)
Сергей М. (2006-05-18 14:15:00) [78]К тому же пургу ты гонишь - при fLabel: array of TLabel строчка fLabel.ClassPointer не может быть скомпилирована, ибо бессмысленна.
webpauk (2006-05-18 14:14:00) [79]
> Сергей М. © (18.05.06 14:13) [12]
подскажи варик попроще
webpauk (2006-05-18 14:14:00) [80]и вообще - главное: работает!