Виртуальная библиотека Delphi

Здесь есть возможность читать онлайн «Виртуальная библиотека Delphi» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Виртуальная библиотека Delphi: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Виртуальная библиотека Delphi»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Виртуальная библиотека Delphi — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Виртуальная библиотека Delphi», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

(MySport asTFootball)

чтобы получить доступ к специфическим свойствам из типа TFootball . Однако, если вы ошиблись и на самом деле это экземпляр типа TBasketball , то при обращении к несуществующим свойствам будет возникать ошибка. Оператор isопределяет, принадлежит ли экземпляр объекта к данному классу, либо к классу одного из его предков, и используется для проверки, сработает ли преобразование типов с данным объектом. Если вы имеете переменную MySport типа TSport , и в настоящее время она содержит экземпляр TBasketball , тогда следующие выражения истинны:

(MySport isTSport)

(MySport isTBasketball)

not(MySport isTFootball)

Следует иметь ввиду, что компилятор разрешает использовать данные конструкции только для выполнения преобразования типов, связанных родственными отношениями. Так, конструкция (Button1 asTEdit) (переменная Button1 имеет тип TButton ) вызовет ошибку компиляции, так как ни при каких условиях не может быть выполнено преобразование типов от TButton к TEdit или наоборот. Комбинация двух операторов может привести к выражению типа следующего :

functionPlayerGoodness( varMySport: TSport): Integer;

begin

if(MySport isTBasketball) then

Result := (MySport asTBasketball).ReboundShots

else if(MySport isTFootball) then

Result := (MySport asTFootball).TotalYardage;

end;

Также, базовый класс TObject имеет набор методов, которые возвращают информацию, созданную компилятором в момент компиляции текста для поддержки RTTI. Hапример, метод TObject.ClassName возвращает имя класса любого объекта, наследованного от TObject . Hапример, TButton.ClassName вернет значение 'TButton' .

2. Как работает обработка исключительных ситуаций в Delphi?

Основная структура выглядит примерно так:

P := New(BigThing);

try

try

Proc1(P);

Proc2(P);

except

Handle(P);

raise;

end;

finally

Dispose(P);

end;

Первая строка распределяет большой блок памяти. Затем, в блоке try, выполняется несколько операторов, каждый из которых может вызвать ошибку, или, другими словами, "вызвать исключительную ситуацию". Если возникает ошибка, оставшаяся часть блока tryпропускается, и выполняются блоки exceptи finally. Если ошибок нет, то после выполнения всех операторов в блоке tryвыполнится блок finally. В любом случае, блок памяти будет освобожден. Блок try … finallyловит все, включая Windows GPF или Access Violation. Обратите внимание на вызов raiseв блоке try … except. Он снова вызывает исключительную ситуацию, которая вызовет сообщение об ошибке после того, когда закончится блок finally. Если не вызвать raise, то считается, что вы обработали исключительную ситуацию самостоятельно в пределах блока except.

3. Есть ли простой способ перехватить exception?

Создайте метод для формы, перехватывающий исключения. Этот метод будет вызываться обработчиком OnException объекта Application . В вашем методе проверьте, тот ли это исключение, что вы ожидаете, например EDatabaseError . Почитайте on-line help для события OnException . Там есть информация, как вызвать собственный метод для события.

procedureTForm1.MyExcept(Sender: TObject; E: Exception);

begin

ifE isEDatabaseError thenMessageDlg('Поймали exception', mtInformation, [mbOk], 0)

{ это не то, сделать raise }

else raiseE;

end;

procedureTForm1.FormCreate(Sender: TObject);

begin

Application.OnException := MyExcept;

{ здесь вы указываете, что событие OnException выполнит ваш метод }

end;

4. Delphi используют строки в стиле Pascal или C?

картинка 76

И те и другие. Delphi имеет два различных набора функций манипулирования строками, один - для PChar ; но в Delphi также есть функция MessageDlg , которая принимает строки типа Pascal.

Delphi 2.0 добавляет так называемые длинные строки ( AnsiString ), которыми можно манипулировать как обычными строками в Pascal, но они имеют динамически изменяющийся размер и могут быть размером до 4Гбайт. Можно выполнять преобразования от PChar к AnsiString и наоборот. Старый строковый тип теперь называется ShortString . По умолчанию кличевое слово stringсоответствует типу AnsiString .

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Виртуальная библиотека Delphi»

Представляем Вашему вниманию похожие книги на «Виртуальная библиотека Delphi» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Виртуальная библиотека Delphi»

Обсуждение, отзывы о книге «Виртуальная библиотека Delphi» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x