Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Правильный код функции с idHTTP   Найти похожие ветки 

 
Pcrepair ©   (2012-08-02 20:15) [0]

Добрый день. Есть две версии кода:
(*================ВЕРСИЯ1====================*)
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo2.Text:=LoadPage(Edit1.Text, idHttpLoad);
end;

function TForm1.LoadPage(const S:string; idHttp: TidHttp):string;
begin
   idHttpLoad := TIdHTTP.Create(nil);
  try
    LoadPage := W1252To1251(AnsiLowerCase(idHttpLoad.Get(S)));
    LoadPage := (AnsiLowerCase(idHttpLoad.Get(S)));
  finally
     idHttpLoad.Free;
  end;
end;

(*================ВЕРСИЯ2====================*)
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo2.Text:=LoadPage(Edit1.Text);
end;

function TForm1.LoadPage(const S:string):string;
begin
   idHttpLoad := TIdHTTP.Create(nil);
  try
    LoadPage := W1252To1251(AnsiLowerCase(idHttpLoad.Get(S)));
    LoadPage := (AnsiLowerCase(idHttpLoad.Get(S)));
  finally
     idHttpLoad.Free;
  end;
end;

Разница между ними только в упоминании idHttpLoad в параметрах функции, но работают обе версии
Вопрос: зачем нужно idHttpLoad в параметрах функции?


 
Rouse_ ©   (2012-08-02 20:20) [1]

разница в том что первая не правильно написана. Должно быть примерно так:

function TForm1.LoadPage(const S:string; idHttp: TidHttp):string;
begin
 LoadPage := W1252To1251(AnsiLowerCase(idHttp.Get(S)));
end;


да и вторая не очень, какой-то из этих двух вызовов лишний:

   LoadPage := W1252To1251(AnsiLowerCase(idHttpLoad.Get(S)));
   LoadPage := (AnsiLowerCase(idHttpLoad.Get(S)));


 
Pcrepair ©   (2012-08-02 20:34) [2]

а что в функции не надо создавать и уничтожать клиент?

вызовы не лишние один работает с 1251 другой с 1252, просто нет пока кода автопереключения кодировки


 
Плохиш ©   (2012-08-02 20:34) [3]


> какой-то из этих двух вызовов лишний:

Какой, какой, вестимо первый, оно же пишет - " работают обе версии".


 
Rouse_ ©   (2012-08-02 21:00) [4]


> а что в функции не надо создавать и уничтожать клиент?

Если ты его создаешь извне и передаешь параметром, нафига?


> вызовы не лишние один работает с 1251 другой с 1252

Где работают? Второй перезатирает результат вызова первого.


 
Pcrepair ©   (2012-08-02 21:15) [5]

будут работать, если версия автоопределения кодировки с MLANG не окажется лучше чем SetCodePage. не надо спешить


 
Pcrepair ©   (2012-08-02 21:23) [6]

кстати, если не создавать клиент при использовании функции, то как тогда устанавливать для клиента свойства и методы? типа:
idHttpLoad.Request.UserAgent := "Mozilla/5.0 (Windows; U; Windows NT 5.1"
и прочие, если вдруг нужно будет?


 
Rouse_ ©   (2012-08-02 21:27) [7]


> если не создавать клиент при использовании функции, то как
> тогда устанавливать для клиента свойства и методы?

Ну где-то его создавать же нужно, логично? Вот там где ты его создашь, там и назначай свои параметры.


 
Оно   (2012-08-06 18:51) [8]

Удалено модератором


 
Дмитрий С ©   (2012-08-15 19:06) [9]


> W1252To1251

Любопытно что делает эта функция.


> Вопрос: зачем нужно idHttpLoad в параметрах функции?

а спросить того кто их написал нельзя?


 
avil   (2012-08-28 19:23) [10]

Если idHTTP описан где-то в переменных класса tForm1, то вызов равнозначен. Но разница в том, что первый вариант функции LoadPage более самостоятельный, и "TForm1." перед названием можно спокойно убирать, когда второй вариант строго привязан к своему классу (если же, конечно, IdHTTP - не глобальная переменная).



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.063 c
15-1350457839
pasha_golub
2012-10-17 11:10
2013.03.22
Течет память. Кто виноват и что делать?


15-1346349689
alexdn
2012-08-30 22:01
2013.03.22
Теория чисел


15-1348811854
MonoLife
2012-09-28 09:57
2013.03.22
Подскажите по проектировке таблиц БД.


15-1337805002
Юрий
2012-05-24 00:30
2013.03.22
С днем рождения ! 24 мая 2012 четверг


2-1331559417
aaas545
2012-03-12 17:36
2013.03.22
Update в SQL запросе пустых записей.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский