Форум: "Начинающим";
Текущий архив: 2008.08.31;
Скачать: [xml.tar.bz2];
Внизчто внутри with Найти похожие ветки
← →
Dennis I. Komarov © (2008-07-25 11:13) [0]Всетаки можно ли как-нить:
with TAny.Create do try
// Вот тут добраться до того что в with, т.е. в данном ванианте указатель на экземпляр созданного TAny
finally
Free;
end;
ЗЫ переменную не предлагать :)
← →
Palladin © (2008-07-25 11:15) [1]можно конечно, если у TAny есть функция-метод возвращающая ссылку на свой"же экземпляр
← →
Leonid Troyanovsky © (2008-07-25 11:19) [2]
> Dennis I. Komarov © (25.07.08 11:13)
http://www.rsdn.ru/Forum/Message.aspx?mid=673350&only=1
--
Regards, LVT.
← →
Dennis I. Komarov © (2008-07-25 11:21) [3]"средствами языка": Вместо TAny все что угодно, TStringList к примеру
ЗЫ TStringList не переписываем.
← →
Правильный$Вася (2008-07-25 11:30) [4]
> переменную не предлагать :)
догматы веры?
к свойствам можнои так обратиться, а если тебе нужен сам объект, то почему бы ему и переменную не выделить? она же все равно есть, только неименованная тобой, так что экономии никакой
← →
Johnmen © (2008-07-25 11:36) [5]
> Всетаки можно ли как-нить:
Не...
← →
Vlad Oshin © (2008-07-25 11:40) [6]а для чего это может быть нужно?
> Всетаки можно ли как-нить:
>
> with TAny.Create do try
> // Вот тут добраться до того что в with, т.е. в данном
> ванианте указатель на экземпляр созданного TAny
> finally
> Free;
> end;
>
> ЗЫ переменную не предлагать :)
← →
Dennis I. Komarov © (2008-07-25 11:57) [7]> [4] Правильный$Вася (25.07.08 11:30)
догматы веры?
Нет. Этот вариант известен
> [6] Vlad Oshin © (25.07.08 11:40)
а для чего это может быть нужно?
к примеру
TAny(withpoint)[0]
← →
Игорь Шевченко © (2008-07-25 12:10) [8]
> Всетаки можно ли как-нить:
нет
← →
Vlad Oshin © (2008-07-25 12:12) [9]
> к примеру
> TAny(withpoint)[0]
а для чего это может быть нужно?
← →
Игорь Шевченко © (2008-07-25 12:12) [10]автор, пойми одну простую вещь - чем проще будет исходный текст программы, тем быстрее к тебе потянутся люди.
За извраты а-ля добраться до того, к чему применяется with я бы немедленно уволил - дальше делай выводы сам.
← →
Dennis I. Komarov © (2008-07-25 12:21) [11]> [10] Игорь Шевченко © (25.07.08 12:12)
Поэтому я не использовал то что в [1] и [2], а искал "средства языка".
Нет так нет. Все... Закрыли...
← →
han_malign © (2008-07-25 13:00) [12]
type
TStringListSelf = class(TStringList)
function __self: TStringList;
end;
function TStringListSelf.__self: TStringList;
begin
Result:= self;
end;
..................
with TStringListSelf(TStringList.Create) do try
...__self...;
finally
Free;
end;
- заметьте - создаваемый TStringList - не переписываем...
← →
Игорь Шевченко © (2008-07-25 13:01) [13]
> han_malign © (25.07.08 13:00) [12]
вот-вот, за такой код и надо увольнять
← →
han_malign © (2008-07-25 13:03) [14]а метод TStringListSelf.__self - состоит из одной инcтрукции -
ret
...
← →
Palladin © (2008-07-25 13:06) [15]
> Игорь Шевченко © (25.07.08 13:01) [13]
и волчий билет им вручать :)
← →
han_malign © (2008-07-25 13:51) [16]
> вот-вот, за такой код и надо увольнять
- меня спросили вопрос, я ответил ответ...
В свете документированных особенностей вызова методов экземпляра класса - этот способ более корректен чемfunction with_self: TObject; asm mov eax, ebx end
... :)))
З.Ы.with TAny.Create do
- вообще, замечательный способ усложнить себе жизнь невозможностью посмотреть текуще состояние объекта во время трассировки...
← →
{RASkov} © (2008-07-25 14:26) [17]> Всетаки можно ли как-нить:
>
> with TAny.Create do try
> // Вот тут добраться до того что в with, т.е. в данном
> ванианте указатель на экземпляр созданного TAny
> finally
> Free;
> end;
>
> ЗЫ переменную не предлагать :)
По опредилению with - нельзя. Ибоwith TStringList.Create(owner), Canvas, Edit1.Font do....
указатель на экземпляр кого должен быть в with?
← →
Anatoly Podgoretsky © (2008-07-25 14:28) [18]
> > [4] Правильный$Вася (25.07.08 11:30)
> догматы веры?
>
> Нет. Этот вариант известен
А все таки это вера, хоть ты и сопротивляешься, как алкоголик.
Чем именованая переменная хуже анонимной?
← →
Palladin © (2008-07-25 14:30) [19]
> {RASkov} © (25.07.08 14:26) [17]
:) это варварский метод, конструкция with с запятыми для супер лентяев является просто сокращеннием метода записи
with TStringList.Create(owner) do
with Canvas do
with Edit1.Font do
так что приоритет обращения будет всегда у последнего указанного в конструкции объекта/записи
← →
{RASkov} © (2008-07-25 14:43) [20]> [19] Palladin © (25.07.08 14:30)
> так что приоритет обращения будет всегда у последнего
Хм... точно :) Но все равно "мнимого self"а" в конструкции with - нет. Но есть хацкие методы, ибо в наше время нет проблем :)
← →
Dennis I. Komarov © (2008-07-25 15:15) [21]> [20] {RASkov} © (25.07.08 14:43)
Нафига они? Можно просто переменную объявить и все. Я спрашивал про "язык". Нету такого и все. Хватит мусолить...
← →
{RASkov} © (2008-07-25 16:52) [22]> [21] Dennis I. Komarov © (25.07.08 15:15)
> Я спрашивал про "язык".
Что есть язык? Неужели хацкие методы это уже не язык? шаманство? магия?
Могу тебя успокоить, я не настаиваю на всякого рода извращиниях. Просто говорю как есть :)
Согласен с [5], [8], [17], возможно [13] :)
> Нафига они?
Сам не понимаю, но они есть)
> Хватит мусолить...
хватит
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.08.31;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.006 c