Размер шрифта
-
+

Программирование в Delphi. Трюки и эффекты - стр. 37

Листинг 2.29. Удаление структуры ItemlDList

procedure DeletePIDL(pidl: PItemIDList);

var

pMalloc: IMalloc;

begin

SHGetMalloc(pMalloc);

if (pMalloc <> nil) then

begin

pMalloc.Free(pidl);

pMalloc._Release();

end;

end;


Функцию SHBrowseForFolder (листинг 2.28) можно использовать и для указания принтеров или компьютеров. Для этого достаточно установить флаги BIF_ BROWSEFORCOMPUTER и BIF_BROWSEFORPRINTER соответственно:


choose.ulFlags:= BIF_BROWSEFORCOMPUTER;


и


choose.ulFlags:= BIF_BROWSEFORPRINTER;


Чтобы в окне отображались еще и значки файлов, нужно установить флаг BIF_ BROWSEINCLUDEFILES.

Окна подключения и отключения сетевого ресурса

Часто бывает удобно осуществлять доступ к сетевым папкам так же, как и к локальным дискам компьютера (с использованием того же принципа построения пути). Окна подключения и отключения сетевого ресурса дают пользователю возможность выбрать, какие папки считать сетевыми дисками и какие сетевые диски можно отключить.

Вид окна подключения сетевого ресурса в Windows XP показан на рис. 2.6.

Рис. 2.6. Окно подключения сетевого диска


Для вызова окна подключения сетевого ресурса можно использовать функцию, приведенную в листинге 2.30.

Листинг 2.30. Окно подключения сетевого ресурса

function ShowConnection(): BOOL;

begin

ShowConnection:=

WNetConnectionDialog(hParentWnd, RESOURCETYPE_DISK) = NO_ERROR;

end;


Функция ShowConnection возвращает значение True в случае удачного подключения и False – в противном случае.

Окно отключения сетевого диска показано на рис. 2.7.

Рис. 2.7. Отключение сетевого ресурса


Функция, показывающая окно отключения сетевого диска, приведена в листинге 2.31.

Листинг 2.31. Окно отключения сетевого ресурса

function ShowDisconnect(): BOOL;

begin

ShowDisconnect:=

WNetDisconnectDialog(hParentWnd, RESOURCETYPE_DISK) = NO_ERROR;

end;


Аналогично ShowConnection функция ShowDisconnect возвращает значение True, если отсоединен хотя бы один диск, и False – в противном случае.

Системное окно О программе

Этот последний и довольно специфический пример приведен на тот случай, если возникнет желание или необходимость использовать окно О программе, которое выводится для самой операционной системы Windows и ее компонентов. Процедура, выводящая это окно, приведена в листинге 2.32.

Листинг 2.32. Окно О программе

procedure ShowAbout(strAppName: string; strInfo: string);

begin

ShellAbout(hParentWnd, PAnsiChar(strAppName), PAnsiChar(strInfo),

LoadIcon(0, IDI_ASTERISK));

end;


Правда, в окне О программе Windows XP на информацию о приложении отведено всего две строки (и место для значка). Все остальное место занимают информация о регистрации операционной системы и фирменная эмблема Microsoft Windows XP.

Страница 37