Главная страница
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.015 c
1-10802
Evgfat
2003-08-22 10:07
2003.09.04
Создание отчета в Делфи


3-10639
NewD
2003-08-11 15:54
2003.09.04
Как заставить ADOCOMMAND выполнять команды


14-10872
BKGG
2003-08-14 21:43
2003.09.04
Подскожите пожалуйста где я могу достать пакеты ассемблера TASM и


1-10756
Onward
2003-08-25 02:23
2003.09.04
DBGrid и его свойства...


14-10939
Skalp
2003-08-16 18:26
2003.09.04
Autorun у CD привода.