Диалоговые HTML-окна в программе на Delphi

© 2005 Альберт Мамедов (MagDelphi)

Использование HTML диалоговых окон позволяет:

Все элементы управления в таких окнах описываются HTML кодом. В библиотеке mshtml.dll. А для создания диалоговых HTML окон реализована специальная функция ShowHTMLDialog.

Богатые возможности Delphi позволяет минимальным кодом создавать такие окна.

Для использования определяем эту функцию:

function ShowHTMLDialog(hwndParent:HWND;
    pMk:     IMoniker;
    pvarArgIn:pVARIANT;
    pchOptions: PWCHAR;
    varArgOut:pVARIANT):hresult;
            stdcall; external 'mshtml.dll';

Аргументы функции:

Для создания моникера подключаем модуль UrlMon и используем функцию CreateURLMoniker. Сам HTML-код, на который ссылается моникер, находиться в ресурсе или внешнем файле.

Вся обработка действий пользователя внутри диалогового окна производиться в сценариях на HTML.

Рассмотрим пример использования HTML диалогового окна.

С Delphi кодом программы разобрались, рассмотрим JavaScript программу диалогового окна. Размещаем на HTML странице необходимые элементы управления.

<BODY onload="loadBody()" BGCOLOR="Teal" TEXT="White">
<SELECT NAME="ArgumentList"></SELECT><P>
<INPUT type=BUTTON value="OK" id="okButton" onClick="okButtonClick()" >
<INPUT type=BUTTON value="Cancel" id="cancelButton" class=button onClick="cancelButtonClick()" >
</BODY>
Определяем необходимые функции на JavaScript
<SCRIPT language="JavaScript">
function loadBody()
{ //
получаем значение передаваемого аргумента
var arrArgs = new Array();
arrArgs = window.dialogArguments.split(";");//
разделитель
//очищаем элемент управления Select
ArgumentList.options.length = 0;
/
/добавляем значение в элемент управления Select
var index;
index = 0;
while(index < arrArgs.length)
{
var tempOption = new Option(arrArgs[index]);
ArgumentList.options[ArgumentList.options.length] = tempOption;
index++;
}
//
устанавливаем отображение 1-го значения
ArgumentList.options[0].selected = true;
//устанавливаем default return value
window.returnValue = 0;
}

function okButtonClick()
{
/
/присваиваем возвращаемое значение
window.returnValue = ArgumentList.options[ArgumentList.selectedIndex].text;
/
/закрываем окно
window.close();
}

function cancelButtonClick()
{
window.returnValue = 0;
window.close();
}
</SCRIPT>

При открытии диалогового окна элемент Select заполняется переданным значением аргумента. При нажатии кнопки OK свойству window.returnValue присваивается значение выбранного положения Select и окно закрывается.

Пример использования HTML диалоговых окон (19.1K).

Copyright© 2005 Альберт Мамедов (MagDelphi)  Специально для Delphi Plus

Rambler's Top100