скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Подключение сетевого диска в Delphi



Автор: Josef Garvi

Соседи заметили, что Насреддин повадился каждую неделю посещать новую мечеть, а мечетей в городе было много.
- Неужели уважаемый полагает, что молитва доходит до Аллаха из разных мест по-разному? - спросили его.
- Конечно нет, - ответил мудрый Хаджа, - просто захотелось составить рейтинг провайдеров.

Данный код показывает как создавать кнопку 'Сеть', вызывающую диалог подключения сетевого диска и указывающего логический диск для подключаемого сетевого ресурса. Этот код создавался на Delphi 2, но и в Delphi 1 данная процедура не сильно отличается от исходной.

Создайте кнопку с именем NetBtn и drive combo box (выпадающий список с дисками) с именем DriveBox. Затем напишите следующий обработчик события OnClick кнопки:


procedure TStartForm.NetBtnClick(Sender: TObject);
var
  OldDrives: TStringList;
  i: Integer;
begin
  OldDrives := TStringList.Create;
  // Запоминаем список дисков
  OldDrives.Assign(Drivebox.Items);
  // Показываем диалог подключения
  if WNetConnectionDialog(Handle, RESOURCETYPE_DISK) = NO_ERROR then
  begin
    // Обновляем список дисков
    DriveBox.TextCase := tcLowerCase;
    for i := 0 to DriveBox.Items.Count - 1 do
    begin
      // Ищем свободный логический диск
      if Olddrives.IndexOf(Drivebox.Items[i]) = -1 then
      begin
        // Показываем первый найденный логический диск
        DriveBox.ItemIndex := i;
        // Каскадируем обновление на список подключенных каталогов и др.
        DriveBox.Drive := DriveBox.Text[1];
      end;
    end;
    DriveBox.SetFocus;
  end;
  OldDrives.Free;
end;

Ну и не забудьте также добавить WinProcs и WinTypes в список используемых модулей.

Самое большое неудобство заключается в том, что у DriveComboBox отсутствует функция обновления. Меняя значение свойства TextCase, мы заставляем компонент обновляться.






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook