пятница, 30 октября 2009 г.

Выходим в Интернет

Давно пора было рассказать про компоненты для работы с Интернетом, но как-то всё не доводилось. Да и теперь рассказать в одном посте обо всех возможностях HiAsm на эту тему невозможно. Так что ограничусь соединением с интернетом и закачкой.

Главные для нас компоненты находятся на вкладке "Интернет". И для начала нужен будет компонент ModemDial. Именно он управляет модемом, устанавливая и разрывая соединения.

Скачать схему HiAsm

При входе в программу (событие onCreate формы) происходит перебор всех доступных соединений. А когда вы дважды щёлкаете на строку списка, то по его событиею onDblClick осуществляется дозвон по тому соединению, имя которого передано либо в потоке, либо на верхнюю точку (на неё как раз передаётся выделенный элемент списка).

Обратите внимание, что у компонента есть параметр AutoClose, который определяет, будет ли разъдиняться связь после закрытия программы. По умолчанию - будет.

Ну вот, дозвонились мы, а теперь бы что-нибудь покачать :) Вообще, существует несколько компонента для передачи данных, каждый - для своего протокола, например HTTP, FTP или TCP. Но здесь я расскажу лишь о HTTP и FTP.

По HTTP мы будем скачивать файлы. Этот компонент также позволяет получить размер файла до скачивания и текущую позицию. В нём даже есть возможность скачивать файл не сначала, а с любой позиции (если, конечно, сервер поддерживает эиу функцию). Поэкспериментируйте с ним, и возможно, что DownloadMaster вам не понадобится :)

Скачать схему HiAsm

При нажатии кнопки сначала происходит её блокировка (компонент Switch является перключателем, который выдаёт либо данные из параметра DataOff, либо DataOn, в зависимости от выбранного метода).

Затем получаем размер файла, устанавливая по соответствующему событию максимальное значение полосы прогресса, а затем начинаем качать, а другое событие выдаёт число скачанных байт, которое отображается на полосе прогресса. Точка данных Position защищена пустым компонентом Память, иначе данные для неё могут быть взяты из потока (на метод doDownload), а туда передаётся размер файла. Со временем вы научитесь разбираться, когда нужно защищать компонент через точки данных.

Как видите, качается файл с одним именем, а появляется с другим, потому что всё зависит от заданной информации в компоненте. Впрочем, имя конечного файла можно сообще не указывать, тогда данные типа Stream будут выданы на onDownload после их закачки. Stream - это файловый поток, т.е. все байты файла. (Про него подробнее я расскажу в другой раз.) Их просмотреть нельзя, ведь некоторые не имеют символьного представления, и потому нужно либо сохранить в файл, либо отконвертировать в другой формат, например в строку или число.

Скачать схему HiAsm

Компонент Convertor находится на вкладке "Инструменты" и может конвертировать различные данные. У нас он конвертируем Stream в String. И затем выдаёт это в многострочное поле. Так можно получить содержимое страницы. Помните только, что имя конечного файла должно отсутствовать.

А теперь рассмотрим компонент WinFTP. С помощью него можно закачивать файлы на сервер, скачивать их и даже производить поиск. Правда, качать придётся сначала и без узнавания размера файла.

Скачать схему HiAsm

Для начала нужно указать хост. В примере указан narod. Затем ваши логин и пароль. Они у вас будут только в том случае, если вы завели аккаунт на narod. Смело прописывайте логин и пароль в соответствующих параметрах компонента WinFTP и запускайте программу.

При входе сначала будет произведено подключение к серверу, а затем можно нажать кнопку "Перечислить". Посмотрите метод - он ищет все файлы в вашем аккаунте. И выдаёт их в список строк.

Эта схема также позволяет загрузить файл в аккаунт. Нажмите кнопку "Записать" и выберите файл. Здесь используется также Память, чтобы передать имя файла на точку данных, но событие Памяти вызывает метод для записи файла (только не выбирайте слишком большой файл, иначе будет долго закачиваться). Причём записан он будет под тем именем, которое находится в параметру RemoteName. Когда вы войдёте в свой аккаунт на сервере, то увидите этот файл.

На вкладке "Точки" панели параметров у компонента WinFTP есть и другие точки, например метод удаления файлов. Поскольку файл удаляется с сервера, то и указывать нужно RemoteName.




Пора строить дом. А у компании «Строй ПБК» есть пеноблоки, которые производятся на современных установках и стоят недорого. Есть доставка по Москве и московской области.

В строительстве ещё нужен компрессор, аренда компрессора. Компрессор доставят в указанное место по Москве и московской области, обслужат и предоставят расходные материалы.

Высаживаем растения, и нам нужны средства защиты растений: пестициды, инсектициды, фунгициды, гербициды и другие средства.

2 комментария:

  1. А если подключен к Интернету не через модем, а по витой паре локальной сети, да еще на нее наложена VPN? Есть у HiAsm компоненты для этого?

    ОтветитьУдалить
  2. Точно ответить не смогу, но вряд ли. Лучше спросить об этом на форуме.

    ОтветитьУдалить