Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.04;
Скачать: CL | DM;

Вниз

использование with   Найти похожие ветки 

 
maratvg   (2003-08-20 11:21) [0]

Для примера вот такая конструкция:
with TSomeClass.Create(nil) do
try
...
DoSomeProcedure(???);
...
finally
Free;
end;

там где "???" надо передать объект типа TSomeClass.
Как это можно реализовать красиво, может быть есть способ?


 
Юрий Федоров ©   (2003-08-20 11:23) [1]

Если нужно передать тот самый объект, который ты создал в строке
with TSomeClass.Create(nil) do
то никак.


 
Skier ©   (2003-08-20 11:24) [2]


> там где "???" надо передать объект типа TSomeClass.

То есть он сам собой владеет или ?
От чего TSomeClass наследуется ?

> может быть есть способ?

Есть. Используй переменную.


 
Vlad ©   (2003-08-20 11:25) [3]

var V: TSomeClass;
begin
V:=TSomeClass.Create(nil);
with V do
try
...
DoSomeProcedure(V);
...
finally
Free;
end;
end;


 
Digitman ©   (2003-08-20 11:25) [4]


> надо передать объект типа TSomeClass


какой объект ? текущий ?

DoSomeProcedure() - это метод класса TSomeClass или автономная процедура ?


 
Vlad ©   (2003-08-20 11:28) [5]

2 Digitman © (20.08.03 11:25) [4]
Какой смысл в метод класса TSomeClass передавать объект типа TSomeClass ?


 
maratvg   (2003-08-20 12:43) [6]

По порядку:
не хотелось использовать дополнительной переменной
var V: TSomeClass;
Процедура DoSomeProcedure - это не метод класса TSomeClass.

Всем спасибо, ответ уже получен.
>Юрий Федоров © (20.08.03 11:23) [1]
>Если нужно передать тот самый объект, который ты создал в строке
>with TSomeClass.Create(nil) do
>то никак.


 
MBo ©   (2003-08-20 12:47) [7]

>Если нужно передать тот самый объект, который ты создал в строке
>with TSomeClass.Create(nil) do
>то никак

Можно, но через одно место.
Не стоит.


 
Anatoly Podgoretsky ©   (2003-08-20 12:59) [8]

Религия по неиспользованию локальной переменной здесь вредна, попытки реализовать это другими методами с лихвой перекроют потерю 4 байтов и добавят энное количество ошибок.
with в данной реализации предназначен для создания анонимного объекта.


 
pasha_golub ©   (2003-08-20 13:03) [9]

Self?


 
Skier ©   (2003-08-20 13:05) [10]

>pasha_golub © (20.08.03 13:03) [9]
Да ну ?! :)


 
Vlad ©   (2003-08-20 13:05) [11]

2 pasha_golub © (20.08.03 13:03) [9]
Self - это ссылка на класс, внутри которого происходит сие драматическое действие :))


 
Digitman ©   (2003-08-20 13:07) [12]


> Vlad


почем я знаю ?


> там где "???" надо передать объект типа TSomeClass.


мало ли какой экземпляр того же класса (и для каких целей) требуется передать здесь параметром метода


 
pasha_golub ©   (2003-08-20 13:08) [13]

Значит я нифига не врубился, бывает :-)


 
Романов Р.В. ©   (2003-08-20 13:24) [14]

Добавь в этот класс метод, который возвращает ссылку на объект.



Страницы: 1 вся ветка

Текущий архив: 2003.09.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
7-11003
-= Demon =-
2003-06-19 17:29
2003.09.04
Как переписать системный файл


14-10937
Nikolai_S
2003-08-15 15:46
2003.09.04
InstallShield Express 3.5 SP4


3-10653
AGAMEMNUM
2003-08-12 12:39
2003.09.04
Две транзакции


14-10924
DOR
2003-08-16 11:46
2003.09.04
Вот ...у меня есть на сайте форма(для текста) - я знаю как она на


14-10936
pasha_golub
2003-08-16 19:09
2003.09.04
И тут Остапа понесло...