Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Аналог TOpenDialog [D5, MSSQL]


MakNik ©   (2003-09-24 15:24:00) 

Подскажите, пожалуйста, как вызывать стандартный диалог для выбора компъютера в сети (Аналог TOpenDialog)??? И есть ли возможность сделать такой диалог (или комбобокс), который выдавал бы список всех SQL серверов в сети???


MsGuns   (2003-09-29 13:37:00) [1]

uses FileCtrl

SelectDirectory


me   (2003-09-29 12:54:00) [2]

Цитата из MSDN:
Windows 95/98/Me: SHBrowseForFolder is supported by the Microsoft Layer for Unicode. To use this, you must add certain files to your application, as outlined in Microsoft Layer for Unicode on Windows 95/98/Me Systems.
Похоже для программ, написанных на Delphi, это не просто сделать.


MakNik   (2003-09-29 10:14:00) [3]

А как этот код заставить работать под win 98???


me   (2003-09-24 21:50:00) [4]

uses
ShlObj, Variants, ActiveX;

function SelectDirectory(const Caption: string; out Computer: string) : Boolean;
var
WindowList : Pointer;
BrowseInfo : TBrowseInfo;
Buffer : PChar;
RootItemIDList,
ItemIDList : PItemIDList;
ShellMalloc : IMalloc;
IDesktopFolder : IShellFolder;
Eaten, Flags : LongWord;
begin
Result := False;
Computer := EmptyStr;
FillChar(BrowseInfo, SizeOf(BrowseInfo), 0);
if (ShGetMalloc(ShellMalloc) = S_OK) and (ShellMalloc <> nil) then
begin
Buffer := ShellMalloc.Alloc(MAX_PATH);
try
RootItemIDList := nil;
SHGetSpecialFolderLocation(0, CSIDL_NETWORK, RootItemIDList);
with BrowseInfo do
begin
hwndOwner := Application.Handle;
pidlRoot := RootItemIDList;
lpszTitle := PChar(Caption);
ulFlags := BIF_BROWSEFORCOMPUTER;
pszDisplayName := Buffer;
end;
WindowList := DisableTaskWindows(0);
try
ItemIDList := ShBrowseForFolder(BrowseInfo);
finally
EnableTaskWindows(WindowList);
end;
Result := ItemIDList <> nil;
if Result then
begin
ShellMalloc.Free(ItemIDList);
Computer := Buffer;
end;
finally
ShellMalloc.Free(Buffer);
end;
end;
end;


Stas   (2003-09-24 15:55:00) [5]

в D6 есть компоненты...


MakNik   (2003-09-24 15:54:00) [6]

А примерчик можно???


Alex_Raider   (2003-09-24 15:50:00) [7]

Это функции Shell Api


Наверх

Титульная страница Поиск, карта сайта Написать письмо