Диалог для выбора компьютераDelphi , Программа и Интерфейс , Диалоги и ФреймыДиалог для выбора компьютера
Оформил: DeeCo uses ShlObj, ActiveX; function BrowseComputer(DialogTitle: string; var CompName: string; bNewStyle: Boolean): Boolean; // bNewStyle: If True, this code will try to use the "new" // BrowseForFolders UI on Windows 2000/XP const BIF_USENEWUI = 28; var BrowseInfo: TBrowseInfo; ItemIDList: PItemIDList; ComputerName: array[0..MAX_PATH] of Char; Title: string; WindowList: Pointer; ShellMalloc: IMalloc; begin if Failed(SHGetSpecialFolderLocation(Application.Handle, CSIDL_NETWORK, ItemIDList)) then raise Exception.Create('Unable open browse computer dialog'); try FillChar(BrowseInfo, SizeOf(BrowseInfo), 0); BrowseInfo.hwndOwner := Application.Handle; BrowseInfo.pidlRoot := ItemIDList; BrowseInfo.pszDisplayName := ComputerName; Title := DialogTitle; BrowseInfo.lpszTitle := PChar(Pointer(Title)); if bNewStyle then BrowseInfo.ulFlags := BIF_BROWSEFORCOMPUTER or BIF_USENEWUI else BrowseInfo.ulFlags := BIF_BROWSEFORCOMPUTER; WindowList := DisableTaskWindows(0); try Result := SHBrowseForFolder(BrowseInfo) <> nil; finally EnableTaskWindows(WindowList); end; if Result then CompName := ComputerName; finally if Succeeded(SHGetMalloc(ShellMalloc)) then ShellMalloc.Free(ItemIDList); end; end; // Example procedure TForm1.Button1Click(Sender: TObject); var Computer: string; begin BrowseComputer('...', Computer, True); label1.Caption := Computer; end; Программный код на Delphi, который реализует функцию Функция принимает три параметра:
Вот шаг за шагом, как функция работает:
Пример кода в конце демонстрирует, как использовать эту функцию в форме Delphi. Когда кнопка нажата, она вызывает функцию Некоторые предложения по улучшению:
В целом, это полезная функция для просмотра компьютеров в сети, но она могла бы быть улучшена с помощью лучшей обработки ошибок и организации кода. Данный код на языке Delphi предлагает диалог для выбора компьютера в Windows, с возможностью использовать новый интерфейс или старый. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Диалоги и Фреймы ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |