Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 24.08.2014, 01:38   #1
maloun
Форумчанин
 
Аватар для maloun
 
Регистрация: 03.01.2011
Сообщений: 226
Репутация: 28
По умолчанию обращение к приватным переменным

Доброго времечка! И сразу вопрос, в модуле Vcl.Forms в TApplication.CreateForm вот такой магический код:
Код:

TForm(Instance).FCreatingMainForm := False;

если кто не понял сразу, FCreatingMainForm приватная переменная:
Код:

  
TCustomForm = class(TScrollingWinControl)
private
  ...
  FCreatingMainForm: Boolean;
  ...
end;

TForm = class(TCustomForm)
  ...
end;

сам TApplication это class(TComponent), может это добавляет магию к происходящему, создал такой же класс и в нем форму,
Код:

  
MainForm:=TMainForm.Create(Application);
TForm(MainForm).FCreatingMainForm := False;

но повторить трюк у себя не получается, подскажите\разъясните, вшили это в язык или не хватает чего?
__________________
пыжок

Последний раз редактировалось maloun; 24.08.2014 в 01:51.
maloun вне форума   Ответить с цитированием
Старый 24.08.2014, 02:01   #2
maloun
Форумчанин
 
Аватар для maloun
 
Регистрация: 03.01.2011
Сообщений: 226
Репутация: 28
По умолчанию

всё понял, ответ нашел тут http://www.sql.ru/forum/700682-2/kak-dostat-private
__________________
пыжок
maloun вне форума   Ответить с цитированием
Старый 24.08.2014, 02:50   #3
northener
Профессионал
 
Регистрация: 15.07.2013
Сообщений: 1,460
Репутация: 477
По умолчанию

Цитата:
Сообщение от maloun Посмотреть сообщение
всё понял, ответ нашел тут http://www.sql.ru/forum/700682-2/kak-dostat-private
И действительно работает?
northener вне форума   Ответить с цитированием
Старый 24.08.2014, 09:11   #4
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,842
Репутация: 6832
По умолчанию

Так надо же TCustomForm(MainForm).FCreatingMain Form := False;
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 24.08.2014, 11:38   #5
Пепел Феникса
Модератор
Заслуженный модератор
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Адрес: Москва
Сообщений: 20,997
Репутация: 3402

icq: 446843180
skype: phoenix_proger
По умолчанию

а в формс там случаем класс TForm и TApplication не вместе расположены?
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума   Ответить с цитированием
Старый 26.08.2014, 15:22   #6
maloun
Форумчанин
 
Аватар для maloun
 
Регистрация: 03.01.2011
Сообщений: 226
Репутация: 28
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а в формс там случаем класс TForm и TApplication не вместе расположены?
точно, по этому у них работало, а у меня нет

Цитата:
Сообщение от Stilet Посмотреть сообщение
Так надо же TCustomForm(MainForm).FCreatingMain Form := False;
может и надо, на XE5 не работает (Cannot access private symbol =) )

мне достаточно нормального объяснения почему у них работает, а у меня нет,
если приспичит напишу хелпер или вытащу из памяти по офсету, а пока Application.CreateForm
__________________
пыжок

Последний раз редактировалось maloun; 26.08.2014 в 15:41.
maloun вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение как к функции или обращение после опрд действия Gefo JavaScript, Ajax 5 04.02.2013 08:55
Как сделать сайт приватным? w00 PHP 6 07.12.2010 14:41
Вопрос по переменным ronston Общие вопросы C/C++ 6 06.10.2010 10:27
присвоить из бд переменным akimov_aleks БД в Delphi 6 07.04.2010 08:24
Доступ к переменным RealSHELS Общие вопросы Delphi 4 15.06.2008 13:14


22:09.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru