Delphi. Учимся на примерах - [36]
pass | Новое имя компонента | ||
Left | 120 | Отступ слева | |
Top | 72 | Отступ сверху | |
Edit4 | Name | port | Новое имя компонента |
Text | 21 | Имя пользователя | |
Left | 120 | Отступ слева | |
Top | 104 | Отступ сверху | |
Edit5 | Name | del | Новое имя компонента |
Left | 512 | Отступ слева | |
Top | 8 | Отступ сверху | |
Edit6 | Name | cd | Новое имя компонента |
Left | 512 | Отступ слева | |
Top | 40 | Отступ сверху | |
Edit7 | Name | cmd | Новое имя компонента |
Left | 512 | Отступ слева | |
Top | 72 | Отступ сверху | |
Edit8 | Name | md | Новое имя компонента |
Left | 512 | Отступ слева | |
Top | 104 | Отступ сверху | |
Edit9 | Name | rd | Новое имя компонента |
Left | 512 | Отступ слева | |
Top | 136 | Отступ сверху | |
Edit10 | Name | download | Новое имя компонента |
Left | 512 | Отступ слева | |
Top | 168 | Отступ сверху | |
Button1 (категория Standard) | Caption | Подключиться | Надпись на кнопке |
Left | 8 | Отступ слева | |
Top | 144 | Отступ сверху | |
Button2 | Caption | Отключиться | Надпись на кнопке |
Left | 123 | Отступ слева | |
Top | 144 | Отступ сверху | |
Button3 | Caption | Загрузить файл на сервер | Надпись на кнопке |
Left | 512 | Отступ слева | |
Top | 200 | Отступ сверху | |
Button4 | Caption | Удалить | Надпись на кнопке |
Left | 672 | Отступ слева | |
Top | 8 | Отступ сверху | |
Button5 | Caption | Изменить каталог | Надпись на кнопке |
Left | 672 | Отступ слева | |
Top | 40 | Отступ сверху | |
Button6 | Caption | Выполнить команду | Надпись на кнопке |
Left | 672 | Отступ слева | |
Top | 72 | Отступ сверху | |
Button7 | Caption | Создать каталог | Надпись на кнопке |
Left | 672 | Отступ слева | |
Top | 104 | Отступ сверху | |
Button8 | Caption | Удалить каталог | Надпись на кнопке |
Left | 672 | Отступ слева | |
Top | 136 | Отступ сверху | |
Button9 | Caption | Скачать файл | Надпись на кнопке |
Left | 672 | Отступ слева | |
Top | 168 | Отступ сверху | |
Memo (категория Standard) | Name | status1 | Новое имя компонента, предназначенного для отображения состояния соединения |
Lines | Статус: | Текст в поле | |
Left | 264 | Отступ слева | |
Top | 8 | Отступ сверху | |
Height | 217 | Высота | |
Width | 233 | Ширина | |
OpenDialog (категория Dialogs) | Name | Open1 | Новое имя компонента, который будет использоваться для открытия файлов |
SaveDialog (категория Dialogs) | Name | Save1 | Новое имя компонента, который будет использоваться для сохранения файлов |
NMFTP (категория FastNet) | Name | ftp | Новое имя главного компонента программы |
Полученная форма должна соответствовать рис. 18.1.
Рис. 18.1. Форма FTP-клиента
Разработка программного кода
Обработаем нажатия кнопок соединения и отключения от сервера. Обработчик события OnClick для кнопки Подключиться:
>procedure TForm1.Button1Click(sender: TObject);
>begin
> ftp.Host:= ftpserver.Text; //ftp-сервер
> ftp.UserID:= name.Text;//логин
> ftp.Password:= pass.Text;// пароль
> ftp.Port:= StrToInt(port.Text); //порт для подключения
> //соединяемся с сервером
> if not ftp.Connected then ftp.Connect;
>end;
Здесь мы считываем все данные, которые необходимы для соединения с сервером. После этого мы пытаемся соединиться с сервером. Об успешности этой операции можно будет узнать в поле состояния.
Обработаем нажатие кнопки Отключиться:
>procedure TForm1.Button2Click(Sender: TObject);
>begin
> if ftp.Connected then//если соединен
> ftp.Disconnect;//отключиться от сервера
>end;
Если при нажатии кнопки Отключиться установлено соединение с сервером, то мы разрываем его.
Теперь обработаем нажатие кнопок, которые служат для работы с сервером. Обработчик события OnClick для кнопки Удалить:
>procedure TForm1.Button4Click(Sender : TObject);
>begin
> ftp.Delete(del.text); //удалить файл
>end;
Здесь мы удаляем файл, имя которого пользователь ввел в поле рядом с кнопкой.
Обработаем нажатие кнопки Изменить каталог:
>procedure TForm1.Button5Click(Sender: TObject);
>begin
> ftp.ChangeDir(cd.Text); //изменяем каталог
>end;
Устанавливаем текущим тот каталог, который указан в поле cd.
Обработаем нажатие кнопки Выполнить команду:
>procedure TForm1.Button6Click(Sender: TObject);
>begin
> ftp.DoCommand(cmd.Text); //выполнение команды
>end;
При работе с сервером мы предоставляем пользователю возможность работать не только с помощью команд, предусмотренных в интерфейсе, но и выполнять на сервере любые произвольные команды. Для этого у нас есть поле cmd, в котором пользователь вводит команду, и кнопка Выполнить команду, по нажатию которой введенная команда выполняется.
Обработаем нажатие кнопки Создать каталог:
>procedure TForm1.Button7Click(Sender: TObject);
>begin
> ftp.MakeDirectory(md.Text); //создать каталог
>end;
Обработаем нажатие кнопки Удалить каталог:
>procedure TForm1.Button8Click(Sender: TObject);
>begin
> ftp.RemoveDir(rd.Text); //удалить каталог
>end;
Обработаем нажатие кнопки Скачать файл:
>procedure TForm1.Button9Click(Sender: TObject);
>begin
> //открытие диалогового окна сохранения файла
> if Save1.Execute
> then //скачиваем указанный файл
> ftp.Download(download.Text, save1.FileName)
> else ShowMessage('File not saved!'); {если пользователь отказался сохранять файл}
>end;
Сначала мы предлагаем пользователю указать имя и путь размещения полученного файла. Затем мы загружаем файл и размещаем его по указанному пути.
Наконец, обработаем нажатие кнопки Загрузить файл на сервер:
>procedure TForm1.Button3Click(Sender: TObject);
>var
> i: integer;
> FName, temp: string; //для получения имени файла
>begin
> if not Open1.Execute then ShowMessage('Файл не выбран!')
> else begin
> //очищаем переменные, которые содержат имя файла
> temp:= '';
> FName:= '';
> //получаем имя файла
> for i: = Length(Open1.FileName) downto 1 do
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.