Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 08.03.2010, 20:03   #1
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию Вопрос по функции.

Вот код функции:
Код:
function TForm1.LookupName: TInAddr;
var
 HostEnt: PHostEnt;
 InAddr: TInAddr;
begin
  HostEnt := gethostbyname(PChar(Edit1.Text));
  FillChar(InAddr, SizeOf(InAddr), 0);
  if HostEnt <> nil then
   begin
    with InAddr, HostEnt^ do
     begin
      S_un_b.s_b1 := h_addr^[0];
      S_un_b.s_b2 := h_addr^[1];
      S_un_b.s_b3 := h_addr^[2];
      S_un_b.s_b4 := h_addr^[3];
     end;
   end
  end;
  Result := InAddr;
end;
Почему компилятор ругается на строчку:
Код:
function TForm1.LookupName: TInAddr;
Как это исправить? Просто функция ссылается на компонент на форме а без указания родительского объекта TForm1 она не распознает Edit1 и ругается на него. Всегда сталкивался с проблемой оформления таких функций.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума
Старый 08.03.2010, 20:05   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
она не распознает Edit1 и ругается на него.
Может потому что на другой форме или в другом месте уже используется такой же Edit1?
Цитата:
Почему компилятор ругается на строчку:
Код:

function TForm1.LookupName: TInAddr;
А вы ее объявили перед использованием в проге? После слова type и перед словом private.


P.S. А вообще, мне кажется, что ваша функция должна иметь тип boolean, т.к. у вас имеется строка, которая возвращает результат этой функции:
Код:
Result := InAddr;
Может эта функция должна быть объявлена как-то так:
Код:
function TForm1.LookupName(TInAddr): Boolean;
P.P.S. Это всего лишь ИМНО!


P.P.P.S. И какой вообще тип имеет вот эта переменная: InAddr?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось artemavd; 08.03.2010 в 20:09.
artemavd вне форума
Старый 08.03.2010, 20:16   #3
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

После объявления функции всё работает Спасибо. Буду знать как такими функциями пользоваться.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрос по функции ВПР BAK$ Microsoft Office Excel 1 19.12.2009 12:00
Си. Вопрос по функции forsaken66 Помощь студентам 6 06.10.2009 23:53
вопрос по функции WaitForSingleObject shurik_7866 Общие вопросы Delphi 2 08.12.2008 10:53
Создание функции вопрос от новичка C CKent Общие вопросы C/C++ 2 07.12.2008 17:31
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33