Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 844

•  TDictionary Custom Sort  6 830

•  Fast Watermark Sources  6 610

•  3D Designer  9 576

•  Sik Screen Capture  6 952

•  Patch Maker  7 398

•  Айболит (remote control)  7 347

•  ListBox Drag & Drop  6 206

•  Доска для игры Реверси  98 222

•  Графические эффекты  7 519

•  Рисование по маске  6 804

•  Перетаскивание изображений  5 656

•  Canvas Drawing  6 036

•  Рисование Луны  5 830

•  Поворот изображения  5 276

•  Рисование стержней  3 869

•  Paint on Shape  3 023

•  Генератор кроссвордов  3 982

•  Головоломка Paletto  3 156

•  Теорема Монжа об окружностях  3 998

•  Пазл Numbrix  2 637

•  Заборы и коммивояжеры  3 452

•  Игра HIP  2 366

•  Игра Go (Го)  2 285

•  Симулятор лифта  2 680

•  Программа укладки плитки  2 243

•  Генератор лабиринта  2 800

•  Проверка числового ввода  2 402

•  HEX View  2 745

•  Физический маятник  2 433

 
скрыть

Диалог для выбора компьютера



Оформил: 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;




Похожие по теме исходники

Нейросеть для распознавания образов

Механизм станка качалки для нефти

Весы для взвешивания

Кувшины для воды

 

Доска для игры Реверси