Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]

никак. Объявляй переменную.


Наверх

Титульная страница Поиск, карта сайта Написать письмо