Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.019 c
3-10645
Ден
2003-08-12 14:25
2003.09.04
Снова строки


1-10673
DVP1
2003-08-21 10:25
2003.09.04
Как в Delphi7 SQL-запросе сделать условие с использованием функци


7-10987
DeadMeat
2003-06-20 18:41
2003.09.04
Хук на клаву...


3-10621
andy-ivt
2003-08-13 12:00
2003.09.04
Перевод файла *.frp(Quick Report) в *.doc


7-10989
anbezr
2003-06-21 12:08
2003.09.04
проблема с сокетами




   Наверх