![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
With как параметр [D6, D7, WinXP]
Andy BitOff © (2005-01-12 13:25:00)Подскажите, как, если это возможно, передать как параметр...
Незнаю как сказать. Вообщем на примере объясню.
with TSringList.Create do begin
try
...
SomeProc(<этот самый SringList>);
...
finally
Free;
end;
end;
Семен Сорокин (2005-01-12 14:30:00) [1]
> Anatoly Podgoretsky © (12.01.05 14:20) [8]
> Andy BitOff © (12.01.05 13:49) [5]
> Просто тактичные люди, не стали тыкать мордой в опечатку.
LOL
:)))))
Anatoly Podgoretsky (2005-01-12 14:20:00) [2]Andy BitOff © (12.01.05 13:49) [5]
Просто тактичные люди, не стали тыкать мордой в опечатку.
Fay (2005-01-12 13:53:00) [3]>> Одноко
А это специально? 8)
Eraser (2005-01-12 13:51:00) [4]Andy BitOff ©
Молодец! Зауважал )))
Andy BitOff (2005-01-12 13:49:00) [5]Всем спасибо, я так и думал.
Одноко никто не заметил, а некоторые даже при копировании не заметили, что я допустил опечатку в слове SringList
:)))
Но я это, конечно не специально. :)))
begin...end (2005-01-12 13:39:00) [6]> Andy BitOff © (12.01.05 13:25)
Это сделать можно, но намного проще объявить переменную.
А сделать можно, например, так:
type
TMyProcedure = procedure of object;
function GetObject(Proc: TMyProcedure): TObject;
begin
Result := TObject(TMethod(Proc).Data)
end;
with TStringList.Create do
begin
SomeProc(GetObject(GetObject(Free)))
end.
KSergey (2005-01-12 13:32:00) [7]На королевстве есть упоминание как можно извратиться, толькот смысла в этом нет
Если нужна ссылка - значит объявить переменную.
Eraser (2005-01-12 13:31:00) [8]:-)) интересная ситуация.
Ответ виже только один. Обявляй в локальном (ну или глобальном) var'e переменную sl: TSringList! Допустим если у тебя это происходит внутри цикла, то
var sl: TSringList;
...
for i:=0 to count-1 do
begin
sl:=TSringList.Create;
...
someproc(sl);
...
sl.free;
end;
А что ещё надо...
jack128 (2005-01-12 13:30:00) [9]никак. Объявляй переменную.