Разработка прикладных программ для ОС WINDOWS с помощью интегрированных сред Delphi / C++Builder. Баканов В.М. - 79 стр.

UptoLike

Составители: 

- 79 -
procedure TForm1.BitBtn7Click(Sender: TObject);
{ воспроизвести звук из заданного файла }
begin
sndPlaySound('c:\wmdows\chord.wav', 0); // проиграть музыку из файла
end;
Ниже приведен конкретный пример работы с системной для WINDOWS
API функцией GetDeviceCaps. Принадлежащая Delphi-форме Form1
Pascal-процедура GetInformAboutPrinter посредством вызова компонент-
ной функции Handle компонента Printer 'берет' дескриптор устройства и вы-
зывает WINDOWS API функцию GetDeviceCaps (передавая дескриптор
принтера в качестве первого и соответствующую требуемому запросу кон-
станту в качестве второго фактических параметров
вызова).
Здесь используются следующие константы - TECHNOLOGY для опреде-
ления типа устройства, RASTERCAPS - для определения возможности- дан-
ного принтера обрабатывать текст и графику и другие (установленные в воз-
вращаемом функцией GetDeviceCaps целом биты соответствуют определен-
ным возможностям выбранного принтера); вывод данных осуществляется в
стандартное вызываемое Delphi-функцией MessageDlg окно.
procedure TForm1.GetlnformAboutPrinter(Sender: TObject);
const
CRLF=#13#10;
var
PrDC: HDC;
PrInfo: integer;
StrInfo1, Strlnfo2: string;
begin
PrDC := Printer.Handle; { возьмем дескриптор принтера }
PrInfo := GetDeviceCaps(PrDC, TECHNOLOGY);
case PrInfo of { какой тип устройства ? }
DT_PLOTTER: StrInfo1 := ‘vector plotter’;
DT_RASDISPLAY: StrInfo1 := ‘raster display";
DT RASPRINTER: Strlnfo1 := ‘raster printer';
DT_RASCAMERA: Strlnfo1 := 'raster camera';
DT_CHARSTREAM: Strlnfo1 := 'character stream';
DT_METAFILE: Strlnfo1 := ‘metafile’;
DT_DISPFILE: Strlnfo1 := 'display file';
else
Strlnfo1 := ‘? , kode = ‘ + IntToStr(Prlnfo);
end; { конец CASE }
PrInfo := GetDeviceCaps(PrDC, RASTERCAPS);
{ уточним возможности устройства }
Strlnfo2 := ‘? , kode = ‘ + IntToStr(PrInfo);
                                      - 79 -




procedure TForm1.BitBtn7Click(Sender: TObject);
{ воспроизвести звук из заданного файла }
begin
  sndPlaySound('c:\wmdows\chord.wav', 0); // проиграть музыку из файла
end;

   Ниже приведен конкретный пример работы с системной для WINDOWS
API функцией GetDeviceCaps. Принадлежащая Delphi-форме            Form1
Pascal-процедура GetInformAboutPrinter посредством вызова компонент-
ной функции Handle компонента Printer 'берет' дескриптор устройства и вы-
зывает WINDOWS API функцию GetDeviceCaps (передавая дескриптор
принтера в качестве первого и соответствующую требуемому запросу кон-
станту в качестве второго фактических параметров вызова).
   Здесь используются следующие константы - TECHNOLOGY для опреде-
ления типа устройства, RASTERCAPS - для определения возможности- дан-
ного принтера обрабатывать текст и графику и другие (установленные в воз-
вращаемом функцией GetDeviceCaps целом биты соответствуют определен-
ным возможностям выбранного принтера); вывод данных осуществляется в
стандартное вызываемое Delphi-функцией MessageDlg окно.

procedure TForm1.GetlnformAboutPrinter(Sender: TObject);
const
 CRLF=#13#10;
var
 PrDC: HDC;
 PrInfo: integer;
 StrInfo1, Strlnfo2: string;
begin
PrDC := Printer.Handle; { возьмем дескриптор принтера }
PrInfo := GetDeviceCaps(PrDC, TECHNOLOGY);
case PrInfo of { какой тип устройства ? }
 DT_PLOTTER:          StrInfo1 := ‘vector plotter’;
 DT_RASDISPLAY: StrInfo1 := ‘raster display";
 DT RASPRINTER: Strlnfo1 := ‘raster printer';
 DT_RASCAMERA: Strlnfo1 := 'raster camera';
 DT_CHARSTREAM: Strlnfo1 := 'character stream';
 DT_METAFILE:          Strlnfo1 := ‘metafile’;
 DT_DISPFILE:          Strlnfo1 := 'display file';
else
 Strlnfo1 := ‘? , kode = ‘ + IntToStr(Prlnfo);
end; { конец CASE }

PrInfo := GetDeviceCaps(PrDC, RASTERCAPS);
{ уточним возможности устройства }
Strlnfo2 := ‘? , kode = ‘ + IntToStr(PrInfo);