Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];

Вниз

использование 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
14-10938
sniknik
2003-08-15 01:30
2003.09.04
Не читаются CDROM в Lunix


7-10991
SergeyI
2003-06-21 12:24
2003.09.04
работа с реестром


1-10724
Bel
2003-08-20 11:52
2003.09.04
Как перетаскивать строки в ListBox е?


14-10902
race1
2003-08-17 15:41
2003.09.04
2 dates to 1


9-10540
Paroplan
2003-03-03 19:41
2003.09.04
Ну мужики помогите просто не знаю что делать





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский