Рейтинговые книги
Читем онлайн Советы по Delphi. Версия 1.4.3 от 1.1.2001 - Валентин Озеров

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 46 47 48 49 50 51 52 53 54 ... 123

Приведенный здесь код взят из демонстрационного проекта, расположенного в подкаталоге Delphi 2.01 demosinternet. Имя проекта HTTPDemo.dpr. Данный проект представляет собой пример использования свойств объекта BytesTransferred и state. Также показано использование различных типов данных, являющимися новыми для Delphi 2.01. Эти типы данных важны для использования OLE, и пользователи Delphi должны о них узнать как можно скорее, если они хотят начать использовать технологию OLE в своих приложениях.

procedure TForm1.HTTP1DocOutput(Sender: TObject; const DocOutput: Variant);

var

 S: String;

 i: integer;

 MsgNo, Header: String;

 Parser: TSimpleHTMLParser;

 ALine: String;

begin

 Statusbar1.Panels[2].Text :=Format('Байт: %s',[DocOutput.BytesTransferred]);

 case DocOutput.State of

 icDocBegin:

  begin

   Memo1.Lines.Clear;

   Data := '';

  end;

 icDocData:

  begin

   DocOutput.GetData(S, VT_BSTR);

   Data := Data + S;

  end;

 icDocEnd:

  begin

   { Теперь удаляем все HTML-тэги и отображаем текст }

   Parser := TSimpleHTMLParser.Create(Data);

   ALine := '';

   while Parser.FToken <> etEnd do begin

    case Parser.FToken of

    etHTMLTag:

     begin

      if Parser.TokenHTMLTagIs('BR') then ALine := ALine + #13#10;

      if Parser.TokenHTMLTagIs('P') then ALine := ALine + #13#10#13#10;

     end;

    etSymbol:

     ALine := ALine + ' ' + Parser.FTokenString;

    etLineEnd:

     begin

      Memo1.Lines.Add(ALine);

      ALine := '';

     end;

    end;

    Parser.NextToken;

   end;

   Memo1.Lines.Add(ALine);

   Memo1.SelStart := 0;

   SendMessage(Memo1.Handle, EM_ScrollCaret, 0, 0);

  end;

 end;

 Refresh;

end;

Захват текущего URL у MSIE

The_Sprite советует:

Пример показывает, как найти окно Internet Explorer, и захватить из него текущий URL, находящийся в поле адреса IE. В Исходнике используются простые функции win32 api на delphi.

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

Function GetText(WindowHandle: hwnd):string;

var

 txtLength : integer;

 buffer: string;

begin

 TxtLength := SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0);

 txtlength := txtlength + 1;

 setlength(buffer, txtlength);

 sendmessage(WindowHandle, wm_gettext, txtlength, longint(@buffer[1]));

 result := buffer;

end;

function GetURL:string;

var ie, toolbar, combo, comboboxex, edit, worker, toolbarwindow: hwnd;

begin

 ie := FindWindow(pchar('IEFrame'), nil);

 worker := FindWindowEx(ie, 0, 'WorkerA', nil);

 toolbar := FindWindowEx(worker, 0, 'rebarwindow32', nil);

 comboboxex := FindWindowEx(toolbar, 0, 'comboboxex32', nil);

 combo := FindWindowEx(comboboxex, 0, 'ComboBox', nil);

 edit := FindWindowEx(combo, 0, 'Edit', nil);

 toolbarwindow := FindWindowEx(comboboxex, 0, 'toolbarwindow32', nil);

 result := GetText(edit);

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

procedure TForm1.Button1Click(Sender: TObject);

begin

 showmessage(GetURL);

end;

Мультимедиа 

Звук 

Заставьте приложение Delphi 2 `петь`

Delphi 2 

Тема: Как заставить приложение Delphi 2 `петь`.

Данный совет демонстрирует четыре различных способа как заставить ваше Delphi 2.0 приложение `петь`, т.е. загружать и проигрывать звуковой файл:

1. Для проигрывания звукового файла используйте непосредственно функцию sndPlaySound().

2. Считывайте звуковой файл в память, затем для его проигрывания используйте sndPlaySound().

3. Используйте sndPlaySound для непосредственного проигрывания звуковых файлов, расположенных в файлах ресурсов, прилинкованных к вашему приложению.

4. Считывайте звуковой файл, располагаемый в файле ресурса, прилинкованному к вашему приложению, в память, и затем для его проигрывания используйте sndPlaySound().

Для построения проекта вам понадобиться:

1. Создайте звуковой файл с именем 'hello.wav' в каталоге проекта.

2. Создайте текстовый файл с именем 'snddata.rc' в каталоге проекта.

3. Добавьте следующую строку к файлу 'snddata.rc': HELLO WAVE hello.wav.

4. В dos-сессии перейдите в ваш каталог приложения и скомпилируйте .rc-файл, используя компилятор ресурсов Borland (brcc32.exe): введите путь к brcc32.exe и передайте 'snddata.rc' в качестве параметра.

Пример:

binbrcc32 snddata.rc

Это создаст файл 'snddata.res', который Delphi слинкует с EXE-файлом вашего приложения.

Далее приведен необходимый вам код:

unit PlaySnd1;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type TForm1 = class(TForm)

 PlaySndFromFile: TButton;

 PlaySndFromMemory: TButton;

 PlaySndbyLoadRes: TButton;

 PlaySndFromRes: TButton;

 procedure PlaySndFromFileClick(Sender: TObject);

 procedure PlaySndFromMemoryClick(Sender: TObject);

 procedure PlaySndFromResClick(Sender: TObject);

 procedure PlaySndbyLoadResClick(Sender: TObject);

private

 { Private declarations }

public

 { Public declarations }

end;

var Form1: TForm1;

implementation

{$R *.DFM}

{$R snddata.res}

uses MMSystem;

procedure TForm1.PlaySndFromFileClick(Sender: TObject);

begin

 sndPlaySound('hello.wav', SND_FILENAME or SND_SYNC);

end;

procedure TForm1.PlaySndFromMemoryClick(Sender: TObject);

var

 f: file;

 p: pointer;

 fs: integer;

begin

 AssignFile(f, 'hello.wav');

 Reset(f,1);

 fs := FileSize(f);

 GetMem(p, fs);

 BlockRead(f, p^, fs);

 CloseFile(f);

 sndPlaySound(p, SND_MEMORY or SND_SYNC);

 FreeMem(p, fs);

end;

procedure TForm1.PlaySndFromResClick(Sender: TObject);

begin

 PlaySound('HELLO', hInstance, SND_RESOURCE or SND_SYNC);

end;

procedure TForm1.PlaySndbyLoadResClick(Sender: TObject);

var

 h: THandle;

 p: pointer;

begin

 h := FindResource(hInstance, 'HELLO', 'WAVE');

 h := LoadResource(hInstance, h);

 p := LockResource(h);

 sndPlaySound(p, SND_MEMORY or snd_sync);

 UnLockResource(h);

 FreeResource(h);

end;

end.

Создание нового WAV-файла

Тема: Создание нового файла с расширением .wav.

Данный документ был создан по многочисленным просьбам пользователей и описывает дополнительную функциональность компонента Delphi TMediaPlayer. Новая функциональность компонента заключается в возможности создания при записи нового файла формата .wav. Процедура "SaveMedia" создает тип record, передаваемый команде MCISend. Существует исключение, которое вызывает закрытие медиа при любой ошибке, возникающей при открытии определенного файла. Приложение состоит из двух кнопок. Button1 вызывает по-порядку процедуры OpenMedia и RecordMedia. Процедура CloseMedia вызывается при генерации приложением исключительной ситуации. Button2 вызывает процедуры StopMedia,SaveMedia и CloseMedia.

unit utestrec;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, MPlayer, MMSystem, StdCtrls;

type TForm1 = class(TForm)

 Button1: TButton;

 Button2: TButton;

 procedure Button1Click(Sender: TObject);

 procedure Button2Click(Sender: TObject);

 procedure FormCreate(Sender: TObject);

 procedure AppException(Sender: TObject; E: Exception);

private

 FDeviceID: Word;

 { Private declarations }

public

 procedure OpenMedia;

 procedure RecordMedia;

 procedure StopMedia;

 procedure SaveMedia;

 procedure CloseMedia;

end;

var Form1: TForm1;

implementation

{$R *.DFM}

1 ... 46 47 48 49 50 51 52 53 54 ... 123
На этой странице вы можете бесплатно читать книгу Советы по Delphi. Версия 1.4.3 от 1.1.2001 - Валентин Озеров бесплатно.

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