powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Обращение к полю/методу класса из вложенного класса
25 сообщений из 28, страница 1 из 2
Обращение к полю/методу класса из вложенного класса
    #40057179
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
TMain = class
private type
  class TNested = class
    procedure Test;
  end;
private
  procedure MainProc;
end;
...
procedure TMain.TNested.Test;
begin
  MainProc; // здесь ошибка: ...inaccesible here
end;



Есть ли способ обратиться с помощью какого-нибудь ключевого слова типа self, например parent там какой-нибудь
или ещё как?
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057181
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
например parent там какой-нибудь

Нужно что-бы кто его создал и присвоил ему значение.
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057183
Zelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz,

Nested Type Declarations
авторThe normal accessibility rules apply to nested types and their containing types. A nested type can access an instance variable (field, property, or method) of its container class, but it must have an object reference to do so . A nested type can access class fields, class properties, and class static methods without an object reference, but the normal Delphi visibility rules apply.

т.е. только передать указатель на экземпляр внешнего класса
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057189
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавь в родительский класс свойство типа TNested и обращайся к этому свойству
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057190
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно.
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057194
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
_avz
Например:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
TMain = class
private type
  class TNested = class
    procedure Test;
  end;
private
  procedure MainProc;
end;
...
procedure TMain.TNested.Test;
begin
  MainProc; // здесь ошибка: ...inaccesible here
end;




Есть ли способ обратиться с помощью какого-нибудь ключевого слова типа self, например parent там какой-нибудь
или ещё как?


а зачем такие извращения ?
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057196
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
26.03.2021 16:24, defecator пишет:
> а зачем такие извращения ?

стильно! модно! молодёжно! ©
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057200
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

в частном случае внутренний класс - это поток (потомок TThread), который выполняет методы внешнего класса.
Это упрощённая схема. На деле немного сложнее.
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057201
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
26.03.2021 16:40, _avz пишет:
> в частном случае внутренний класс - это поток, который выполняет методы внешнего класса.
> Это упрощённая схема. На деле немного сложнее.

ради синтаксического шугара обложил себя заборами, а теперь мужественно преодолеваешь препятствия.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057203
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
Есть ли способ обратиться с помощью какого-нибудь ключевого слова типа self, например parent там какой-нибудь или ещё как?
Можно обращаться к классовым методам внешнего класса. К инстансовым, только через конкретный инстанс.
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057204
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

мне надо, чтоб доступа к вложенному классу не было.

Объявить бы его в implementation, но тогда его нельзя использовать в декларации главного класса,
(который в interface)
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057206
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
ради синтаксического шугара обложил себя заборами
Да ладно. Весь шугар в том, что повышается уровень инкапсуляции и внутренний класс никто кроме внешнего класса не видит. А так это неотличимо от
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
TNested = class
  procedure Test;
end;

TMain = class
private
  procedure MainProc;
end;
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057207
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
_avz
Есть ли способ обратиться с помощью какого-нибудь ключевого слова типа self, например parent там какой-нибудь или ещё как?
Можно обращаться к классовым методам внешнего класса. К инстансовым, только через конкретный инстанс.

Да, для меня эта тема уже прояснилась.
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057208
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057210
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
26.03.2021 16:49, _avz пишет:
> мне надо, чтоб доступа к вложенному классу не было.

чем тебе private (strict) не угодил?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057212
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
Да, для меня эта тема уже прояснилась.
И это
_avz
Код: pascal
1.
class TNested = class

лишнее. Все вложенные типы и константы уже являются классовыми
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057214
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
_avz
Да, для меня эта тема уже прояснилась.
И это
_avz
Код: pascal
1.
class TNested = class

лишнее. Все вложенные типы и константы уже являются классовыми

это описка
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057215
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
чем тебе private (strict) не угодил?
Где? Он его и объявил в секции strict private
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057216
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

26.03.2021 16:49, _avz пишет:
> мне надо, чтоб доступа к вложенному классу не было.

чем тебе private (strict) не угодил?


имеется в виду доступ из других модулей.
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057217
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster

Во! Это про меня.
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057218
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
26.03.2021 16:56, _avz пишет:
> имеется в виду доступ из других модулей.

ну и?
как ты собрался к привату обращаться из других модулей?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057219
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

26.03.2021 16:56, _avz пишет:
> имеется в виду доступ из других модулей.

ну и?
как ты собрался к привату обращаться из других модулей?


Класс TNested, если не сделать внутренним, можно будет использовать в других модулях
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057222
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
26.03.2021 17:02, _avz пишет:
> Класс TNested, если не сделать внутренним, можно будет использовать в других модулях

а, тебя волнует декларация...
не чеши её!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057329
registered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А мне понадобилось, а тролли сказали, что не нужно, потому что мы не знаем.
А я думал, на SQL.ru нет троллей.

"в частном случае внутренний класс - это поток (потомок TThread), который выполняет методы внешнего класса."
то же самое
...
Рейтинг: 0 / 0
Обращение к полю/методу класса из вложенного класса
    #40057339
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
registered,

что не так?
Это невиданное кощунство: объявить тред вложенным классом?
От церкви дельфи отлучат?
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Обращение к полю/методу класса из вложенного класса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]