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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

ifSender isTEdit then

2. Проблемы с полями класса типа TObject, TTable и т.д.

картинка 54

Я объявляю поле класса как TTable , но при обращении к нему происходит ошибка.

картинка 55

Дело в том, что в Delphi все экземпляры объектов, объявленых как class, являются динамическими. Соответственно поле MyTable, объявленное как

type

TMyClass = class(TObject)

public

MyTable: TTable;

constructorCreate;

destructorDestroy; override;

end;

является указателем на класс TTable , и должно быть инициализировано в конструкторе вашего объекта и соответственно разрушено в деструкторе следующим образом:

constructorTMyClass.Create;

begin

MyTable := TTable.Create( nil);

MyTable.DatabaseName := 'DBDEMOS';

end;

destructorTMyClass.Destroy;

begin

MyTable.Free;

end;

Подробнее см. Changes in Object Pascal Language в документации или on-line help.

3. Как закрыть модальную форму (ShowModal)? И вообще, каков лучший способ закрыть любую форму?

Вообще говоря, нужно вызывать метод Close для формы. Close вызывает событие OnClose (обработчик которого может решить, что форму нельзя закрывать, например, если имеются несохраненные данные). Close не освобождает память, связанную с формой, если вы, конечно, не поместите в обработчик события вызов метода Release .

Если вы хотите уничтожить форму без вызова события OnClose , используйте метод Release . Этот метод работает подобно Free , но позволяет всем обработчикам событий данной формы закончить работу перед тем, как память будет освобождена.

Модальные формы "прекращают свой модальный статус", когда вы устанавливаете свойство ModalResult формы в любое значение, отличное от нуля. Если вы поместите кнопку на модальную форму и установите свойство ModalResult для кнопки в некоторое значение, то, когда пользователь нажмет на эту кнопку, форма закроется с результатом, который вы определили. Этот результат можно узнать вызывая ShowModal как функцию. То есть:

Result := Form.ShowModal;

4. Перемещение существующих компонентов на TPanel, TGroup и т.п.

картинка 56

Я поместил кнопку (или что-то другое) на форму, затем поместил панель, и решил переместить кнопку на панель, но ничего не получилось.

картинка 57

Действительно, чтобы поместить кнопку на панель, необходимо на форму сначала поместить панель, выбрать ее, а затем уже помещать кнопку.

Но и в вашей ситуации есть решение. Скопируйте (Copy) или вырежьте (Cut) нужный компонент, выберите панель, и сделайте вставку (Paste). Рекомендуется предварительно "подогнать" копируемый компонент в левый верхний угол формы, иначе компонент на панели может выпасть из "пределов видимости" панели (или любого другого группового компонента).

Если компонент все-таки "выпал" из пределов видимости - найдите этот компонент в Инспекторе Объектов, и установите нужные значения его свойств Left и Top .

Используя группы компонент можно огранизовать форму-шаблон, на которой можно складывать (например в Notebook) компоненты с предварительно заданными свойствами, отличными от стандартных. Это решение проще чем добавлять такие компоненты в палитру компонент — не увеличивается размер библиотеки компонентов DCL (Delphi 3.0 не считается), не загромождается палитра компонент.

Учтите, что при таком копировании компонент их имена меняются на новые ( Button1 , Button2 и т.д.).

5. Как можно добавить новый компонент на страницу TTabbedNoteBook во время выполнения программы? Как нужно определить свойство Parent для этого компонента?

Для того, чтобы добавить компонент на страницу TabbedNotebook , свойству Parent нового компонента нужно присвоить указатель на требуемую страницу. Способ для доступа к любой странице TTabbedNotebook во время выполнения — массив свойств Objects у свойства Pages компонента TTabbedNotebook . Другими словами, страницы сохранены в виде объектов в свойстве Pages (тип TStringList ). Пример демонстрирует создание кнопки TButton на второй странице TabbedNotebook1 :

var

NewButton: TButton;

begin

NewButton := TButton.Create(Self);

NewButton.Parent := TWinControl(TabbedNotebook1.Pages.Objects[0]);

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

Интервал:

Закладка:

Сделать

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

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


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

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

x