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

Тут можно читать онлайн Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Советы по Delphi. Версия 1.4.3 от 1.1.2001
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - описание и краткое содержание, автор Валентин Озеров, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

…начиная с 1001. Смотрите другие файлы…

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать онлайн бесплатно полную версию (весь текст целиком)

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

Интервал:

Закладка:

Сделать

Temp:=@SoundData;

Move(Temp^, AudioPtr1^, AudioBytes1);

ifAudioPtr2 <> nil then begin

Temp:=@SoundData;

Inc(Integer(Temp), AudioBytes1);

Move(Temp^, AudioPtr2^, AudioBytes2);

end;

ifBuffer.UnLock(AudioPtr1, AudioBytes1, AudioPtr2, AudioBytes2) <> DS_OK then RaiseException.Create('Unable to UnLock Sound Buffer');

end;

procedureTForm1.CopyWAVToBuffer;

var

Data : PChar;

FName : TFileStream;

DataSize : DWord;

Chunk : String[4];

Pos : Integer;

begin

FName:=TFileStream.Create(Name,fmOpenRead);

Pos:=24;

SetLength(Chunk,4);

repeat

FName.Seek(Pos, soFromBeginning);

FName.Read(Chunk[1], 4);

Inc(Pos);

untilChunk = 'data';

FName.Seek(Pos+3, soFromBeginning);

FName.Read(DataSize, SizeOf(DWord));

GetMem(Data, DataSize);

FName.Read(Data^, DataSize);

FName.Free;

AppWriteDataToBuffer(Buffer, 0, Data^, DataSize);

FreeMem(Data, DataSize);

end;

varPos : Single = -25;

procedureTForm1.AppSetSecondary3DBuffer;

begin

ifBuffer.QueryInterface(IID_IDirectSound3DBuffer, _3DBuffer) <> DS_OK then RaiseException.Create('Failed to create IDirectSound3D object');

if_3DBuffer.SetPosition(Pos, 1, 1, 0) <> DS_OK then RaiseException.Create('Failed to set IDirectSound3D Position');

end;

procedureTForm1.Button1Click(Sender: TObject);

begin

CopyWAVToBuffer('xhe4.wav',SecondarySoundBuffer);

ifSecondarySoundBuffer.Play(0, 0, DSBPLAY_LOOPING) <> DS_OK thenShowMessage('Can''t play the Sound');

Timer1.Enabled:=True;

end;

procedureTForm1.Timer1Timer(Sender: TObject);

begin

SecondarySound3DBuffer.SetPosition(Pos,1,1,0);

Pos:=Pos + 0.1;

end;

end.

Аппаратное обеспечение

CD-ROM

Открытие и закрытие нескольких приводов CD-ROM

Что касается вопроса "Открытие и закрытие привода CD-ROM", то при наличии более одного CD-ROMа в системе, рекомендую воспользоваться следующими функциями:

// ____ _ ______ __

// / __ \_____(_) _____/_ __/___ ____ / /____

// / / / / ___/ / | / / _ \/ / / __ \/ __ \/ / ___/

// / /_/ / / / /| |/ / __/ / / /_/ / /_/ / (__ )

// /_____/_/ /_/ |___/\___/_/ \____/\____/_/____/

//

(*******************************************************************************

* DriveTools 1.0 *

* *

* (c) 1999 Jan Peter Stotz *

* *

********************************************************************************

* *

* If you find bugs, has ideas for missing featurs, feel free to contact me *

* jpstotz@gmx.de *

* *

********************************************************************************

* Date last modified: May 22, 1999 *

*******************************************************************************)

unitDriveTools;

interface

usesWindows, SysUtils, MMSystem;

functionCloseCD(Drive: Char): Boolean;

functionOpenCD(Drive: Char): Boolean;

implementation

functionOpenCD(Drive : Char): Boolean;

Var

Res: MciError;

OpenParm: TMCI_Open_Parms;

Flags: DWord;

S: String;

DeviceID: Word;

begin

Result:=false;

S:=Drive+':';

Flags:=mci_Open_Type ormci_Open_Element;

WithOpenParm do begin

dwCallback := 0;

lpstrDeviceType := 'CDAudio';

lpstrElementName := PChar(S);

end;

Res := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));

IFRes<>0 Thenexit;

DeviceID:=OpenParm.wDeviceID;

try

Res:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);

IFRes=0 Thenexit;

Result:=True;

finally

mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));

end;

end;

functionCloseCD(Drive : Char) : Boolean;

Var

Res: MciError;

OpenParm: TMCI_Open_Parms;

Flags: DWord;

S: String;

DeviceID: Word;

begin

Result:=false;

S:=Drive+':';

Flags:=mci_Open_Type ormci_Open_Element;

WithOpenParm do begin

dwCallback := 0;lpstrDeviceType := 'CDAudio';

lpstrElementName := PChar(S);

end;

Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));

IFRes<>0 Thenexit;

DeviceID:=OpenParm.wDeviceID;

try

Res:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);

IFRes=0 Thenexit;

Result:=True;

finally

mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));

end;

end;

end.

Прислал Vadim Petrov.

Клавиатура

Переключение клавиатуры

Переключение языков из программы

Для переключения языка применяется вызов LoadKeyboardLayout:

varrussian, latin: HKL;

russian:=LoadKeyboardLayout('00000419', 0);

latin:=LoadKeyboardLayout('00000409', 0); где то в программе

SetActiveKeyboardLayout(russian);

Прислал Igor Nikolaev aKa The Sprite.

Как отловить нажатия клавиш в системе

Для этого используется функция GetAsyncKeyState(KeyCode)

в качестве параметра используются коды клавиш(например A – 65).

GetAsyncKeyState возвращает ненулевое значение если во время ее вызова нажата указаная клавиша.

//----Этот пример отлавливает нажатие клавиши «A»

//Этот код необходимо поместить в процедуру обработки

//таймера с интервалом «1»

ifgetasynckeystate(65)<>0 thenshowmessage('A – pressed');

//----------

Прислал Igor Nikolaev aKa The Sprite.

Клавиша с кодом #0

Delphi 1

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

Как из программы переключить раскладку клавиатуры?

Одной строкой

Nomadicотвечает:

A: ActivateKeyboardLayout(). Учтите, что использование этой функции – плохой тон.

Модем

Как получить список установленных модемов в Win95/98?

Nomadicсоветует:

unitPortInfo;

interface

usesWindows, SysUtils, Classes, Registry;

functionEnumModems: TStrings;

implementation

functionEnumModems: TStrings;

var

R: TRegistry;

s: ShortString;

N: TStringList;

i: integer;

j: integer;

begin

Result:= TStringList.Create;

R:= TRegistry.Create;

try

withR do begin

RootKey:= HKEY_LOCAL_MACHINE;

ifOpenKey('\System\CurrentControlSet\Services\Class\Modem', False) then

ifHasSubKeys then begin

N:= TStringList.Create;

try

GetKeyNames(N);

fori:=0 toN.Count – 1 do begin

closekey; { + }

openkey('\System\CurrentControlSet\Services\Class\Modem',false); { + }

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

Интервал:

Закладка:

Сделать


Валентин Озеров читать все книги автора по порядку

Валентин Озеров - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Советы по Delphi. Версия 1.4.3 от 1.1.2001 отзывы


Отзывы читателей о книге Советы по Delphi. Версия 1.4.3 от 1.1.2001, автор: Валентин Озеров. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x