![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Наследование. Запутался. [D7]
mfender © (2010-04-30 09:56:00)Здравствуйте, товарищи.
Где-то у меня что-то не соображает.
Вводная: есть замечательная штука в Indy - TIdUri. Всё хорошо, но она не разбирает по полкам QueryString. А мне приспичило сделать это.
Делаю следующим образом (в листинге, понятное дело оставляю только соль, выкинув всё ненужное):
TIdURI = class
protected
FURI: String;
FParams: string;
procedure SetURI(const Value: String);
function GetURI: String;
public
constructor Create(const AURI: string = ''); virtual; {Do not Localize}
property Params: string read FParams write FParams;
property URI: string read GetURI write SetURI;
end;
TIdUriEx = class(TIdUri)
private
FParams: string;
function GetParams: string;
protected
procedure SetURI(const Value: string);
public
constructor Create(const AURI: string = ''); override;
destructor Destroy;
procedure ParseParams; //Тут как раз происходит разбор строки
property Params: string read GetParams write FParams;
property URI: string read GetURI write SetURI;
end;
implementation
procedure TIdUriEx.SetURI(const Value: string);
begin
inherited SetURI(Value);
ParseParams;
end;
Вот тут-то происходит затык. Приделать override к SetURI нельзя - статичный метод. И вот как бы сделать, чтобы после всех действий в SetURI базового класа, произвести разбор строки в моём наследнике?
mfender (2010-04-30 10:03:00) [1]Всё, всё оказалось правильно. просто я свой ParseParams зацикливал на самого себя, а Indy это Indy и он просто от назойливого меня избавлялся. ))))))