Hi, ich suche nach einer Möglichkeit, in einem Verzeichnisbaum oder einer Combobox die verfügbaren SQL-Server anzuzeigen. Aber ich bekomme nur die Liste des Netzwerks, ohne Berücksichtigung ob es ein SQL-Server ist oder nicht. Hier der Code:<br><br>
procedure Tfrm_start.bit_changeClick(Sender: TObject);<br>
var str_tmp: String;<br>
begin<br>
str_tmp:=Getfolder(CSIDL_NETWORK,'Bitte ein Verzeichnis wählen:');<br>
if (str_tmp<>'') then txt_pfad.Text:=str_tmp;<br>
end;<br>
<br>
function Tfrm_start.Getfolder(root:integer; Caption:String): String;<br>
var bi: TBROWSEINFO;<br>
lpBuffer: PChar;<br>
pidlPrograms, pidlBrowse: PItemIDList;<br>
begin<br>
if (not SUCCEEDED(SHGetSpecialFolderLocation(getactivewind ow, root,<br>pidlPrograms)))
then exit;<br>
lpBuffer:=StrAlloc(max_path);<br>
bi.hwndOwner:=getactivewindow;<br>
bi.pidlRoot:=pidlPrograms;<br>
bi.pszDisplayName:=lpBuffer;<br>
bi.lpszTitle:=PChar(caption);<br>
bi.ulFlags:=BIF_RETURNONLYFSDIRS;<br>
bi.lpfn:=nil;<br>
bi.lParam:=0;<br>
pidlBrowse:=SHBrowseForFolder(bi);<br>
if (pidlBrowse<>nil) then<br>
begin<br>
if (SHGetPathFromIDList(pidlBrowse, lpBuffer)) then result:=lpBuffer;<br>
end;<br>
StrDispose(lpBuffer);<br>
end;<br><br>
ch bin für jden Hinweis Dankbar,
vielen Dank, Stefan Walter
procedure Tfrm_start.bit_changeClick(Sender: TObject);<br>
var str_tmp: String;<br>
begin<br>
str_tmp:=Getfolder(CSIDL_NETWORK,'Bitte ein Verzeichnis wählen:');<br>
if (str_tmp<>'') then txt_pfad.Text:=str_tmp;<br>
end;<br>
<br>
function Tfrm_start.Getfolder(root:integer; Caption:String): String;<br>
var bi: TBROWSEINFO;<br>
lpBuffer: PChar;<br>
pidlPrograms, pidlBrowse: PItemIDList;<br>
begin<br>
if (not SUCCEEDED(SHGetSpecialFolderLocation(getactivewind ow, root,<br>pidlPrograms)))
then exit;<br>
lpBuffer:=StrAlloc(max_path);<br>
bi.hwndOwner:=getactivewindow;<br>
bi.pidlRoot:=pidlPrograms;<br>
bi.pszDisplayName:=lpBuffer;<br>
bi.lpszTitle:=PChar(caption);<br>
bi.ulFlags:=BIF_RETURNONLYFSDIRS;<br>
bi.lpfn:=nil;<br>
bi.lParam:=0;<br>
pidlBrowse:=SHBrowseForFolder(bi);<br>
if (pidlBrowse<>nil) then<br>
begin<br>
if (SHGetPathFromIDList(pidlBrowse, lpBuffer)) then result:=lpBuffer;<br>
end;<br>
StrDispose(lpBuffer);<br>
end;<br><br>
ch bin für jden Hinweis Dankbar,
vielen Dank, Stefan Walter
Comment