- •Часть 1
- •Implementation
- •Implementation
- •Implementation
- •Часть 1
- •Implementation
- •Implementation
- •Implementation
- •IBplementation
- •Implementation
- •Часть 1
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Interface
- •Часть 1
- •Interface
- •Часть 1 I. 104
- •Implementation
- •Implementation
- •Implementation
- •Часть I
- •Р ис. 1.46. Окно программы Звуки Windows
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Interface
- •Часть 1
- •168 Част
- •Implementation
- •Часть 1
- •Interface uses
- •Implementation
- •Interface
- •Implementation
- •Часть 1
- •Часть 1 I Примеры и задачи
- •Часть 1 I Примеры и задачи
- •Implementation
- •205 Часть
- •Interface
- •Implementation
- •216 Часть 1
- •Поле т ип Размер Информация
- •Часть 1
- •Implementation
- •Interface
- •Implementation
- •Implementation
- •Часть 2 Таблица 2.2 (окончание)
- •252 Часть 2
- •Часть 2 I Delphi — краткий справочник
- •Часть 2
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, MPlayer, Buttons, StdCtrls;
MediaPlayeri SpeedButton2 SpeedButton!
120
Рис. 1.47. Форма программы Video Player
type
TForml = class(TForm) OpenDialog: TOpenDialog; SpeedButtonl: TSpeedButton; SpeedButton2: TSpeedButton; MediaPlayer: TMediaPlayer; procedure FormCreate(Sender: TObject); procedure SpeedB.utton2Click (Sender: TObject); procedure SpeedButtonlClick(Sender: TObject); procedure MediaPlayerNotifу(Sender TObject);
private
( Private declarations } public
{ Public declarations ) end;
var
Forml: TForml;
Implementation
{$R *.dfm}
Примеры и задачи
procedure TForml.FormCreate(Sender: TObject);
begin
MediaPlayer.Display := Forml;
// это можно сделать во время создания // формы. Но на всякий случай . . . SpeedButtonl.Grouplndex := 1; SpeedButtonl.AllowAllUp := True; end;
// возвращает размер изображения AVI-файла procedure DimAvi(f: string; var w,h: integer); var
fst: TFileStream;
// структуру заголовка AVI-файла можно
// найти, например, в . .\CBuilder\Include\aviriff.h
RIFF: array[1. nul: array[1. AVIH: array[1. nu2: array[1.
Width: Longlnt; Height: Longlnt;
header: record
.4] of char; // 'RIFF'
.5] of Longlnt; // не используется
.4] of char; // 'avih'
.9] of Longlnt; // не используется
end;
fst := TFileStream.Create(f,fmOpenRead); fst.Read(header,sizeof(header)); w := header.Width; h := header.Height; fst.Destroy;
end;
// щелчок на кнопке Eject — выбор файла
procedure TForml.SpeedButton2Click(Sender: TObject);
var
top,left: integer; // левый верхний угол "экрана" width,height: integer; //размер экрана mw,mh: integer; // максимально возможный размер экрана kh,kw: real; // коэф-ты масштабирования по h и w к: real; // коэф-т масштабирования
121
122
юы и задачи
123
begin
OpenDialog.Title := 'Выбор клипа'; if not OpenDialog.Execute then exit;
// пользователь выбрал файл
// определим размер и положение
// "экрана" (области на поверхности формы),
// на котором будет выведен клип
DimAvi(OpenDialog.FileName,width,height);
mh:=SpeedButtonl.Top — 10; mw:=Forml.ClientWidth;
if mh > height then kh :=1 else kh := mh/height;
if mw > width then kw :=1 else kw := mw/width;
begin
// начать воспроизведение
MediaPlayer.Play;
SpeedButtonl.Hint := 'Stop'; end else begin
// остановить воспроизведение
MediaPlayer.Stop;
SpeedButtonl.Hint := 'Play'; end; end;
// сигнал от плеера
procedure TForml.MediaPlayerNotify(Sender: TObject);
begin
if (MediaPlayer.Mode = mpStopped)
and SpeedButtonl.Down then
SpeedButtonl.Down := False; // "отжать" кнопку Play
end;
kw
kh;
if kw < kh then k else k
// здесь масштаб определен
width := Round(width * к); height := Round(height * к);
left := (Forml.ClientWidth — width) div 2; top := 10;
MediaPlayer.FileName := OpenDialog.FileName; MediaPlayer.Open;
MediaPlayer.DisplayRect := Rect(left,top,width,height); SpeedButtonl.Enabled := True; end;
// щелчок на кнопке Play/Stop
procedure TForml.SpeedButtonlClick(Sender: TObject);
begin
if SpeedButtonl.Down then
end.
47. Напишите программу, используя которую можно прослушать компакт-диск. Во время воспроизведения в диалоговом окне должен отображаться номер воспроизводимого трека и время воспроизведения. Рекомендуемый вид формы и окно программы приведены на рис. 1.48.
( Проигрыватель Audio CD.
(с) Культин Н.Б., 2003 ) unit CDp_;
