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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать
картинка 81

Это можно сделать так:

type

TMainForm = class(TForm)

...

procedureFormCreate(Sender: TObject);

private

procedureDropFiles( varMsg : TWMDropFiles); messageWM_DROPFILES;

end;

procedureTMainForm.DropFiles( varMsg : TWMDropFiles);

begin

DragQueryPoint(Msg.Drop, Point);

NrOfFiles := DragQueryFile(Msg.Drop, Word(-1), FileName, BufSize);

DragQueryFile(Msg.Drop, 0, FileName, BufSize);

end;

procedureTMainForm.FormCreate(Sender: TObject);

begin

DragAcceptFiles(Handle, True);

end;

Подробнее о перехвате событий Windows см. Главу 7 руководства Component Writers Guide.

11. Как обрабатывать WM_DROPFILES (Drag/Drop)?

Следующий код показывает как обрабатывать это событие. Обрабатываются имена всех "брошенных" файлов. Для загрузки каждого файла вызывается CreateChild(FName) . В обработчике OnCreate данной формы вы должны вызвать DragAcceptFiles .

type

TFrameForm = class(TForm)

...

protected

procedureWMDropFiles( varMsg: TMessage); messageWM_DROPFILES;

end;

procedureTFrameForm.WMDropFiles( varMsg : TMessage);

var

I, N, Size: Word;

FName: string;

HDrop: Word;

begin

HDrop := Msg.WParam;

N := DragQueryFile(HDrop, $FFFF, nil, 0);

forI := 0 to(N-1) do

begin

Size := DragQueryFile(HDrop, I, nil, 0);

ifSize < 255 then { 255 char. string limit - not really a problem }

begin

FName[0] := Chr(Size);

DragQueryFile(HDrop, I, @FName[1], Size+1);

CreateChild(FName);

end;

end;

Msg.Result := 0;

inherited;

end;

12. Как может выделить время CPU другим задачам , подобно "DoEvents" в VB?

Эквивалент в Delphi — Application.ProcessMessages .

Если вы выполняете долгие вычисления, то вызов данного метода позволит в Win 16 выполняться параллельно другим приложениям, а в Win 32 - корректно перерисовываться вашему приложению.

13. В каком порядке происходят события при создании и показе окна?

При создании окна обработчики событий выполняются в следующем порядке:

• OnCreate

• OnShow

• OnPaint

• OnActivate

• OnResize

• OnPaint (снова)

14. UpCase для русского языка.

Данная функция (UpCase) производит преобразование только латинских символов в верхний регистр. Для правильного преобразования необходимо использовать функции Windows API, поскольку именно Windows должна "знать" о кодировке национальных символов. Причем к конфигурации BDE кодровка Windows не имеет никакого отношения — имея английские Windows без русификатора и выставив в BDE кодировку Paradox ANSII Cyrillic нормальных русских букв получить не удастся.

А функции для преобразования следующие — OemToAnsi, AnsiToOem, OemToAnsiBuf, AnsiToOemBuf в Win16 (модуль WinProcs) и OemToChar, CharToOem, OemToCharBuf и CharToOemBuf в Win32 (модуль Windows)..

15. Приложение, написанное на Delphi, не запускается минимизированным.

Проверьте глобальную переменную CmdShow для того чтобы определить, в каком состоянии запускается приложение, и модифицируйте ее как вам необходимо:

procedureTForm1.FormCreate(Sender: TObject);

begin

ifCmdShow = SW_SHOWMINNOACTIVE thenWindowState := wsMinimized;

end;

Например, если необходимо запускать приложение либо минимизированным, либо максимизированным, используйте следующий код:

procedureTForm1.FormCreate(Sender: TObject);

begin

ifCmdShow = SW_SHOWMINNOACTIVE thenWindowState := wsMinimized

elseWindowState := wsMaximized;

end;

16. Объясните разницу в помещении uses в секцию interface или implementation.

Секция interface — интерфейсная. Туда попадают объявления констант, типов (в т.ч. и объектов или классов) переменных, процедур и функций. Поэтому для этой части usesдолжен содержать ссылки на те модули, которые используются для объявлений в этой части.

Секция implementation — описание реализации интерфейсной части, здесь в usesдолжны быть упомянуты те модули, которыми вы пользуетесь для написания кода. Например, Вы хотите в модуле пользоваться функциями API Windows, для этого добавьте в объявлении implementationстроку uses WinTypes, WinProcs;или uses Windows;. Таким образом, вы явно указываете что данными модулями будете пользоваться только в секции реализации.

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

Интервал:

Закладка:

Сделать

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

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


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

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

x