Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Indy LocalName, Свойство 
:(
    Опции темы
Anakin
Дата 18.6.2009, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 25.9.2006

Репутация: нет
Всего: нет



Раньше я использовал Дэлфи 7 и там вроде была Indy 9 шас перешол на Дэлфи 2007 и там используетса Indy 10
Так вот в Indy 9 компонент TCPServer имел свойство localname
Код


TCPServer.LocalName

И шас когда я открыл свой старый исходник мне ругаетса на это свойство (
чем заменить это свойство в Инди 10 версии ?
Кто сталкивалса с этим ?
Подскажите.
PM MAIL   Вверх
Snowy
Дата 18.6.2009, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Код
function GetLocalName: string;
begin
  SetLength(result, 255);
  GetHostName(PChar(result), Length(result));
  Result := String(PChar(result));
end;

PM MAIL   Вверх
hawkins
Дата 1.7.2009, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 8.9.2003

Репутация: нет
Всего: нет



Код

function GetLocalName: string;
begin
  SetLength(result, 255);
  GetHostName(PChar(result), Length(result));
  Result := String(PChar(result));
end;


у меня это код не заработал, ерунду какую-то возвращал (Delphi2007 indy10).  Из одного кода узнал про такой класс как TIdStak.

Код

uses
 IdStack;

function GetLocalName3: string;
var
 lStack: TIdStack;
begin
  lStack:=IdStackFactory;
  Result:=lStack.HostName;
  lStack.Free;
end;



Если переменная GStack проинициализированна (нужно какой-нибудь компонент indy кинуть на форму) можно просто написать GStack.HostName.



PM MAIL   Вверх
Romikgy
Дата 1.7.2009, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Код

function ReadHostName: string; virtual; abstract; !!!!

function IdStackFactory: TIdStack;
begin
  Result := GStackClass.Create;
  // GStackClass used to be public, but this factory has
  // replaced it so that the following line (which once
  // live in AfterConstruction, but this doesn't exist
  // in DotNet) will be run
  Result.FHostName := Result.ReadHostName;
end;


имхо нельзя его напрямую вызывать 
а 9 индейца так и юзает его 
Код

function TIdStackWindows.WSGetHostName: string;
begin
  SetLength(result, 250);
  GetHostName(PChar(result), Length(result));
  Result := String(PChar(result));
end;


вот что есть у индейцев 10 ))
Код

use idGlobalProtocols;

function IndyComputerName: string;
var
  i: LongWord;
begin
  SetLength(Result, MAX_COMPUTERNAME_LENGTH + 1);
  i := Length(Result);
  if GetComputerName(@Result[1], i) then begin
    SetLength(Result, i);
  end;
end;


Это сообщение отредактировал(а) Romikgy - 1.7.2009, 13:06


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
hawkins
Дата 3.7.2009, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 8.9.2003

Репутация: нет
Всего: нет



Цитата(Romikgy @  1.7.2009,  13:02 Найти цитируемый пост)

function ReadHostName: string; virtual; abstract; !!!!

имхо нельзя его напрямую вызывать 


почему нельзя ? там ведь не вызывается на прямую конструктор TIdStack, а вызывается конструктор класса который присваивается в секции инициализации.
Вот кусок из модуля IdStack:

Код

initialization
  GStackClass :=
   {$IFDEF LINUX}     TIdStackLinux;   {$ENDIF}
   {$IFDEF MSWINDOWS} TIdStackWindows; {$ENDIF}
   {$IFDEF DOTNET}    TIdStackDotNet;  {$ENDIF}
  GStackCriticalSection := TIdCriticalSection.Create;


так что с этим все впорядке. То есть для винды будет вызыватся конструктор класса TIdStackWindows, а в нем есть реализация ReadHostName.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0732 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.