Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001
- Название:Советы по Delphi. Версия 1.4.3 от 1.1.2001
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 краткое содержание
…начиная с 1001. Смотрите другие файлы…
Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Свойство Headers является свойстом только для чтения и времени выполнения. "headers" — коллекция элементов DocHeader, которые определяют передаваемый документ. Содержимое свойства headers должно быть изменено перед вызовом метода GetDoc. Каждый DocHeader представляет собой MultiPurpose Internet Mail Extension (MIME). Mime является механизмом для определения и описания формата тела сообщения Интернет (Internet Message Bodies). (Для получения дополнительной информации смотри документ rfc1341). Используемые headers (заголовки) зависят от используемого протокола, но существуют два заголовка, независимые от протокола:
1. content-type(тип содержимого)
content type указывает спецификацию MIME для следующего за заголовком документа. Примером этого является "text/plain".
2. content-length(размер содержимого)
content length указывает размер документа в байтах.
Свойтво state является свойством только для чтения и времени выполнения, и имеет перечислимый тип DocStateConstants. Значение по умолчанию icDocNone. Свойство state элемента управления обновляет себя каждый раз при наступлении события DocInput.
Свойство suspended является свойством только для чтения и времени выполнения, и имеет логический тип. Устанавливается вызывом метода suspend. При установке значения, равного True, передача приостанавливается.
Свойство PushStream является read/write-свойством (для чтения и записи) только времени выполнения и имеет логический тип. Значение по умолчанию — False. Если свойству FileName или DocLink присваивается значение, отличное от '', то свойство PushStream становится недоступным.
Объект DocOutput имеет три метода: GetData, SetData и Suspend.
Метод GetData сообщает объекту DocInput об извлечении текущего блока данных в момент наступления события DocOutput. Данный метод может быть вызван только в течение события OnDocInput, и только когда свойство State установлено в icDocData(3). При использовании свойства FileName или DocLink, данный метод позволяет исследовать данные во время их передачи.
Метод SetData определяет следующий буфер передаваемых данных при наступлении события DocInput. SetData вызывается в течение события DocInput или перед вызовом SendDoc. Если метод используется перед вызовом SendDoc, он может служить альтернативой передачи параметров InputData в InputData. Тип должен быть определен как variant.
Метод Suspend передает форме команду suspend(true) или suspend(false). Если метод с параметром True был вызван дважды, то для продолжения передачи его необходимо дважды вызвать с параметром False.
Приведенный здесь код взят из демонстрационного проекта, расположенного в подкаталоге Delphi 2.01 demos\internet. Имя проекта HTTPDemo.dpr. Данный проект представляет собой пример использования свойств объекта BytesTransferred и state. Также показано использование различных типов данных, являющимися новыми для Delphi 2.01. Эти типы данных важны для использования OLE, и пользователи Delphi должны о них узнать как можно скорее, если они хотят начать использовать технологию OLE в своих приложениях.
procedureTForm1.HTTP1DocOutput(Sender: TObject; constDocOutput: Variant);
var
S: String;
i: integer;
MsgNo, Header: String;
Parser: TSimpleHTMLParser;
ALine: String;
begin
Statusbar1.Panels[2].Text :=Format('Байт: %s',[DocOutput.BytesTransferred]);
caseDocOutput.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 := '';
whileParser.FToken <> etEnd do begin
caseParser.FToken of
etHTMLTag:
begin
ifParser.TokenHTMLTagIs('BR') thenALine := ALine + #13#10;
ifParser.TokenHTMLTagIs('P') thenALine := 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.
{-------------------------------------------------------}
FunctionGetText(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;
functionGetURL: string;
varie, 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);
{-------------------------------------------------------}
procedureTForm1.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' в качестве параметра.
Читать дальшеИнтервал:
Закладка: