Урок 13 Компонент NMHTTP No title

8-Nov-2005
в колонках играет - Aerosmith -Dream On


Компонент NMHTTP
В общем - эта херь нужна для того, чтобы загружать файлы из инета.Эта статья будет маленькой - я вам покажу как с инета спиздить файл!Киньте на форму компонент NMHTTP со вкладки FastNet

Также на форме расположите Label ,Button и Timer

В событии кнопки onClick напишите следующий код:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
NMHTTP1->InputFileMode=true;
// устанавливает режим для приёма файлов
NMHTTP1->Body="c:\\super.htm"; // место, куда сохранится загружаемый файл
NMHTTP1->Get("http://www.superbuilder.narod.ru/index.htm"); //функция, загружает файл из инета
}


Теперь сделаем так, чтобы мы видели, сколько загружено и сколько осталось.Для этого в событии таймера onTimer пишем:

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Label1->Caption="loaded "+IntToStr(NMHTTP1->BytesRecvd/1024)+"Kb from "+IntToStr(NMHTTP1->BytesTotal/1024)+"Kb";
}
пояснения:
IntToStr(NMHTTP1->BytesRecvd/1024) -мы получаем количесвто принятых байтов, делим это количество на 1024 и получаем значение в килобайтах , функцией IntToStr() мы преобразуем получившееся число типа int в строку типа AnsiString, для того чтобы можно было разместить его в labele(который кстати типа AnsiString) Аналогично для IntToStr(NMHTTP1->BytesTotal/1024).


Запустите проект, нажмите на button1 - выдаёт ошибку?Если вы не подключены к инету, то так и должно быть.Чтобы это избежать, поменяйте код для Button1 onClick на следующий.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
try
//пытается совершить действия, заключенные в фигурных скобках
{
NMHTTP1->InputFileMode=true;
// устанавливает режим для приёма файлов
NMHTTP1->Body="c:\\super.htm"; // место, куда сохранится загружаемый файл
NMHTTP1->Get("http://www.superbuilder.narod.ru/index.htm"); //функция, загружает файл из инета
}
catch(...)
//если не получается выполнить действия после try , то выполняет другие действия(см ниже)
{
ShowMessage("Вы не подключены к инету, либо нету файла на сервере, либо вы долбоёб!");
//показывает сообщение
}
}



Если есть вопросы по этому материалу или вопросы в принципе, пишите на мыло, ответы постараюсь выложить в последующих уроках.


Author of article - MA F*CKA CREW 2005
www.builderhelper.3dn.ru
builder.helper@rambler.ru