Советы по Delphi. Версия 1.4.3 от 1.1.2001 - Валентин Озеров
0/0

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - Валентин Озеров

Уважаемые читатели!
Тут можно читать бесплатно Советы по Delphi. Версия 1.4.3 от 1.1.2001 - Валентин Озеров. Жанр: Программирование. Так же Вы можете читать полную версию (весь текст) онлайн книги без регистрации и SMS на сайте Knigi-online.info (книги онлайн) или прочесть краткое содержание, описание, предисловие (аннотацию) от автора и ознакомиться с отзывами (комментариями) о произведении.
Описание онлайн-книги Советы по Delphi. Версия 1.4.3 от 1.1.2001 - Валентин Озеров:
…начиная с 1001. Смотрите другие файлы…
Читем онлайн Советы по Delphi. Версия 1.4.3 от 1.1.2001 - Валентин Озеров

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать

 '

 ' wParam для данного сообщения - hAa, а lParam копируется из этого вызова.

 '

 ' Возвращается TRUE, если уведомление установлено.

}

{ --------------------------------------------------------------------------- }

function aaCancel(hAa: AAHandle; lLoPos, lHiPos: longint) : word; external 'AAPLAY';

{

 ' aaCancel позволяет приложению отменить уведомления, установленные aaNotify.

 '

 ' lLoPos и lHiPos задает верхний и нижний предел позициям.

 '

 ' Возвращает количество отмененных уведомлений.

}

{ --------------------------------------------------------------------------- }

function aaStop(hAa: AAHandle) : boolean; external 'AAPLAY';

{

 ' aaStop прекращает воспроизведение анимации.

 '

 ' При остановке воспроизведения aaStop возвращает TRUE.

}

{ --------------------------------------------------------------------------- }

function aaPause(hAa: AAHandle) : boolean; external 'AAPLAY';

{

 ' aaPause приостанавливает воспроизведение.

 '

 ' Возвращается TRUE, если после возврата aaPause анимация переходит в режим паузы.

 '

 ' Для продолжения воспроизведения анимации используйте aaPlay.

}

{ --------------------------------------------------------------------------- }

function aaPrompt(hAa: AAHandle; lpName: PChar) : boolean; external 'AAPLAY';

{

 ' aaPrompt позволяет выводить диалог для получения данных от пользователя.

 '

 ' При получении данных дескриптор меняется, и, таким образом, вступают

 ' в силу новые параметры. Старый дескриптор не уничтожается до тех пор,

 ' пока не будет создан новый.

 '

 ' Если новый дескриптор не может быть создан, aaPrompt возвращает NULL,

 ' в противном случае возвращается новый дескриптор.

}

{ --------------------------------------------------------------------------- }

function aaGetParm(hAa: AAHandle; wType: word) : longint; external 'AAPLAY';

{

 ' aaGetParm возвращает информацию об анимации.

 '

 ' Некоторая информация может быть установлена с помощью aaSetParm,

 ' и другая информация - информация о состоянии, поддерживаемая AAPLAY.

}

{ --------------------------------------------------------------------------- }

function aaGetParmIndirect(hAa: AAHandle; lpAp: AAPARMSPtr; wSize: word): boolean; external 'AAPLAY';

{

 ' aaGetParmIndirect возвращает ту же информацию, что и aaGetParm,

 ' в структуре, удобной для легкого доступа из приложений Visual Basic.

}

{ --------------------------------------------------------------------------- }

function aaSetParm(hAa: AAHandle; wType: word; wValue1, lValue2: longint): AAHandle; external 'AAPLAY';

{

 ' aaSetParm устанавливает информацию для анимации

}

{ --------------------------------------------------------------------------- }

function aaSetParmIndirect(hAa: AAHandle; dwType: longint; lpAp: AAPARMSPtr; wMask: word): boolean; external 'AAPLAY';

{

 ' aaSetParmIndirect устанавливает параметры анимации из структуры.

}

{ --------------------------------------------------------------------------- }

function aaShow(hAa: AAHandle; bShow: boolean) : boolean; external 'AAPLAY';

{

 ' aaShow позволяет показать в окне отдельный кадр анимации.

 '

 ' Mode определяет способ рисования анимации.

 '

 ' Параметры окна возможно задать с помощью aaSetParm или aaSetParmIndirect.

 '

 ' aaShow возвращает TRUE, если анимация была отрисована без ошибок.

}

{ --------------------------------------------------------------------------- }

function aaSound(hAa: AAHandle; device, ffile: PChar; wMode: word): boolean; external 'AAPLAY';

{

 ' aaSound открывает и закрывает канал звукового сопровождения анимации.

 '

 ' Звуковой канал будет открыт, если аргумент file не будет равен null

 ' и не будет пустым, в противном случае канал будет закрыт.

 '

 ' Если устройство равно null, то для выбора подходящего устройства

 ' используется формат файла.

}

{ --------------------------------------------------------------------------- }

function aaGetFile(dwFlags: word; lpszPath: PChar; wBufLen: word; lpszDriver: PChar; wDrvLen: word) : integer; external 'AAPLAY';

{

 ' Открывает системного диалоговое окно стандартного типа ("открыть файл"),

 ' предлагающее пользователю выбрать файл.

 '

 ' <dwFlags> определяет характеристики диалогового окна.

 ' Список возможных флагов:

 '  AA_GETFILE_MUSTEXIST  Выбранный файл должен удовлетворять условиям

 '                        флагов OpenFile(), в противном случае диалог

 '                        издаст системный звук.

 '  AA_GETFILE_NOSHOWSPEC НЕ показывать путь в поле редактирования.

 '                        По умолчанию путь к файлу показывается.

 '  AA_GETFILE_SAVE       Кнопка Ok имеет заголовок "Save".

 '  AA_GETFILE_OPEN       Кнопка Ok имеет заголовок "Open".

 '  AA_GETFILE_USEFILE    Взять имя файла из параметра lpszPath

 '  AA_GETFILE_UDEDIR     Взять каталог из параметра lpszPath

 '  AA_GETFILE_SOUND      Получить звуковой файл и драйвер

 '  AA_GETFILE_SCRIPT     Получить файл со скриптом

 '  AA_GETFILE_ANIMATION  Получить файл анимации (без скриптов)

 '

 ' <lpszPath> - строковый буфер LPSTR, куда после выполнения диалога

 ' пишется полное имя пути.

 ' <wBufLen> - длина данного буфера.

 '

 ' <lpszDriver> - строковый буфер LPSTR для хранения выбранного

 ' звукового устройства.

 ' <wDrvLen> - длина данного буфера.

 '

 ' Возвращаемые значения: 0, если была нажата кнопка Cancel

 '                        -1, если OpenFile() потерпело неудачу,

 '                        а AA_GETFILE_MUSTEXIST не определен.

 '                        В противном случае возвращается дескриптор DOS-файла.

 '                        При возврате из aaOpenFile данный дескриптор "не открыт".

}

{ --------------------------------------------------------------------------- }

function aaSave(hAa: AAHandle; wMode: word) : integer; external 'AAPLAY';

{

 ' Сохранение скрипта

}

{ --------------------------------------------------------------------------- }

{$F-}

{ Окончание внешних вызовов 'AAPLAY.DLL' }

{ =========================================================================== }

end.

{ =========================================================================== }

Dr Paul Kuczora.

-

Paul Kuczora c home.london.uk

(на создание файла потрачен один день) 

Как сделать, чтобы орган управления, например, сложная линия, хваталась только за некий контур, и пропускала мышь под себя в других местах?

Nomadic советует:

Надо обрабатывать сообщение CM_HITTEST (Это сообщение получают даже потомки от TGraphicsControl, не имеющего своего HWND).

Например, так:

procedure TLine.CMHitTest(var Message: TWMNCHitTest);

begin

 if PointInLineReg(Message.XPos, Message.YPos) then begin

  Message.Result := 1;

 end else begin

  Message.Result := 0;

 end;

end;

Для органов управления Windows, если Вы не используете VCL, требуется обрабатывать сообщение WM_NCHITTEST.

Как быстро нарисовать тень в заданном регионе?

Nomadic советует:

procedure TForm2.DrawShadows(WDepth, HDepth : Integer);

var

 Dst, RgnBox : TRect;

 hOldDC : HDC;

 OffScreen : TBitmap;

 Pattern : TBitmap;

 Bits : array[0..7] of WORD;

begin

 Bits[0] := $0055;

 Bits[1] := $00aa;

 Bits[2] := $0055;

 Bits[3] := $00aa;

 Bits[4] := $0055;

 Bits[5] := $00aa;

 Bits[6] := $0055;

 Bits[7] := $00aa;

 hOldDC := Canvas.Handle;

 Canvas.Handle := GetWindowDC(Form1.Handle);

 OffsetRgn(ShadeRgn, WDepth, HDepth);

 GetRgnBox(ShadeRgn, RgnBox);

 Pattern := TBitmap.Create;

 Pattern.ReleaseHandle;

 Pattern.Handle := CreateBitmap(8, 8, 1, 1, @(Bits[0]));

 Canvas.Brush.Bitmap := Pattern;

 OffScreen := TBitmap.Create;

 OffScreen.Width := RgnBox.Right-RgnBox.Left;

 OffScreen.Height := RgnBox.Bottom-RgnBox.Top;

 Dst := Rect(0, 0, OffScreen.Width, OffScreen.Height);

 OffsetRgn(ShadeRgn, 0, –RgnBox.Top);

На этой странице вы можете бесплатно читать книгу Советы по Delphi. Версия 1.4.3 от 1.1.2001 - Валентин Озеров бесплатно.

Оставить комментарий

Рейтинговые книги