Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2009, 11:51   #1
Juni
 
Регистрация: 19.04.2009
Сообщений: 7
По умолчанию ОПП

unit Unit2;
interface
uses // используемые модули
type
TForm = class(TForm)
// описание процедур и функций
private
{ Private declarations }
public
{ Public declarations }
published
{ Published declarations }
protected
{ Protected declarations }
end;
var Form2: TForm;
implementation
{$R *.dfm}
// реализация процедур и функций
initialization
finalization
end.

Не трудно догадаться, что описание процедур и функций до оператора private в теле TForm = class(TForm) относится к public по умолчанию. Поскольку все визуальные компоненты размещаются там, то для главного модуля видны все функции, свойства и переменные данного модуля. Ради познавательного интереса, как их можно скрыть? Если оператор private поднять выше то генерируется ошибка, а если var Form2: TForm; объявить ниже implementation то основная программа не увидит эту форму. Вообще, на С++, например, по умолчанию в начале идут скрытые описания? А тут наоборот.

Если есть исчерпывающий источник по данной тематике, напишите пожалуйста!
Juni вне форума Ответить с цитированием
Старый 12.09.2009, 12:17   #2
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Дык в private и пиши !
uberchel вне форума Ответить с цитированием
Старый 12.09.2009, 12:54   #3
sinedSpb
 
Регистрация: 14.08.2009
Сообщений: 8
По умолчанию

То что автогенирит дельфовый дизайнер форм относится даже не к public а к published. Поля и свойства с такой видимостью автосохраняются в DFM. Это есть фишка дизайнера форм и ее вот так вот просто ну никак не обойти. Если так уж хочется скрыть форму , можно использовать следующий прием

TMyFormController = class
private
fPrivateForm : TMyForm;
public
constructor Create;
//здесь методы для манипуляции формой
end;

constructor TMyFormController.create;
begin
fPrivateForm := TMyForm.create(Application);
end;
sinedSpb вне форума Ответить с цитированием
Старый 12.09.2009, 14:48   #4
Juni
 
Регистрация: 19.04.2009
Сообщений: 7
По умолчанию

2 sinedSpb

Спасибо!
Juni вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ОПП на PHP killer12rus PHP 4 19.02.2009 04:07