Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];

Вниз

Области видимости   Найти похожие ветки 

 
Maks Realov   (2003-05-29 16:30) [0]

Имеем объявления класса:
type
TForm1 = class(TForm)

// sTest3: string;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);

private
{ Private declarations }
sTest: string;
public
{ Public declarations }
sTest2: string;
end;

Что в public и private секциях располагается я понял, а что расоплагается в выделенной мной курсивом области, до private и почему в неё я не могу вставить свои объявления?


 
Palladin   (2003-05-29 16:38) [1]

published

кто сказал что не можешь?


 
Digitman   (2003-05-29 16:39) [2]

а зачем тебе туда прямо так нужно "вставить" ?
это - спец.секция... private, protected, public - разве этого недостаточно ?


 
McSimm2   (2003-05-29 16:43) [3]

...,published,..


 
Maks Realov   (2003-05-29 16:47) [4]

2 Digitman ©:

как я понял, свойства туда можно вставлять:

type TMyButton = class(TButton)
property Size: Integer;
procedure DoSomething;
end;

Так почему нельзя обычные переменные?



 
default   (2003-05-29 16:49) [5]

это секцию спец-ая - обслуживается IDE
пиши private,... и вноси туда свои объявления


 
Digitman   (2003-05-29 17:10) [6]


> Maks Realov


вот для описания св-в, автоматически контролируемых IDE, и методов, их реализующих, эта секция и предназначена.. на то она и published... несмотря на отсутствие кл.слова "published"

секция эта, наравне с явно декларируемой тобой (при необходимости) секцией "published" обладает областью видимости, равной public


 
jack128   (2003-05-29 18:41) [7]


> обычные переменные?
Эти обычные переменнst называются полями
можно решить проблему так

TBaseClass = class
Fx : Integer;
published
property X : Integer read Fx write Fx;
end;




 
jack128   (2003-05-29 18:46) [8]

> TmyButtin = class(Tbutton)
private
> Fx : Integer;
> published
> property X : Integer read Fx write Fx;
> end;


 
Юрий Зотов   (2003-05-30 06:28) [9]

Народ, никакая это не специальная секция, а самая обычная. Вот цитата из Конопки:

"Поля и методы, объявленные непосредственно вслед за заголовком классового типа, имеют по умолчанию видимость published, если класс компилируется в состоянии {$M+} или если класс порожден от класса, компилировавшегося в состоянии {$M+}. Во всех других случаях по умолчанию видимость - public".

Пример:

type
TClass1 = class // Прямой наследник TObject.
Field1: integer; // Это public.
end;

{$M+}
TClass2 = class // Тоже прямой наследник TObject.
Field1: integer; // А вот это уже published.
end;
{$M-}

TClass3 = class(TPersistent)
Field1: integer; // И это published.
end;

Для полной ясности остается только вспомнить, что формы - это тоже наследники TPersistent.


 
icWasya   (2003-05-30 10:05) [10]

>и почему в неё я не могу вставить свои объявления?
Как уже сказали область видимости - Published
В секцию Published можно помещать переменные только тех типов, для которых в IDE есть зарегистрированные редакторы свойств
Кроме того, этот кусок кода автоматически генерируется IDE при помещении/удалении компонент и обработчиков событий. Поэтому, в частности, IDE будет указывать на ошибку, если есть поле, но нет соответствующего ему компонента



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-26561
Kwan
2003-05-28 07:07
2003.06.09
Про DateTimePicker


1-26606
Flex
2003-05-27 14:21
2003.06.09
RichEdit 64Kb


4-26852
sosv
2003-04-10 11:36
2003.06.09
Мышью по заголовку окна.


1-26428
pirat
2003-05-28 19:05
2003.06.09
Как определить наличие нода в XML документе ?


14-26694
blackweber
2003-05-26 00:36
2003.06.09
как в Паскале 7.0 сложить PChar И Array of Char





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский