Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

что внутри with


Страницы:   1 2

Dennis I. Komarov ©   (2008-07-25 11:13:00) 

Всетаки можно ли как-нить:

with TAny.Create do try
 // Вот тут добраться до того что в with, т.е. в данном ванианте указатель на экземпляр созданного TAny
finally
 Free;
end;


ЗЫ переменную не предлагать :)


{RASkov}   (2008-07-25 16:52:00) [1]

> [21] Dennis I. Komarov ©   (25.07.08 15:15)
> Я спрашивал про "язык".

Что есть язык? Неужели хацкие методы это уже не язык? шаманство? магия?
Могу тебя успокоить, я не настаиваю на всякого рода извращиниях. Просто говорю как есть :)
Согласен с [5], [8], [17], возможно [13] :)

> Нафига они?

Сам не понимаю, но они есть)

> Хватит мусолить...

хватит


Dennis I. Komarov   (2008-07-25 15:15:00) [2]

> [20] {RASkov} ©   (25.07.08 14:43)

Нафига они? Можно просто переменную объявить и все. Я спрашивал про "язык". Нету такого и все. Хватит мусолить...


{RASkov}   (2008-07-25 14:43:00) [3]

> [19] Palladin ©   (25.07.08 14:30)
> так что приоритет обращения будет всегда у последнего

Хм... точно :) Но все равно "мнимого self'а" в конструкции with - нет. Но есть хацкие методы, ибо в наше время нет проблем :)


Palladin   (2008-07-25 14:30:00) [4]


> {RASkov} ©   (25.07.08 14:26) [17]

:) это варварский метод, конструкция with с запятыми для супер лентяев является просто сокращеннием метода записи
with TStringList.Create(owner) do
 with Canvas do
  with Edit1.Font do

так что приоритет обращения будет всегда у последнего указанного в конструкции объекта/записи


Anatoly Podgoretsky   (2008-07-25 14:28:00) [5]


> > [4] Правильный$Вася   (25.07.08 11:30)
> догматы веры?
>
> Нет. Этот вариант известен

А все таки это вера, хоть ты и сопротивляешься, как алкоголик.
Чем именованая переменная хуже анонимной?


{RASkov}   (2008-07-25 14:26:00) [6]

> Всетаки можно ли как-нить:
>
> with TAny.Create do try
> // Вот тут добраться до того что в with, т.е. в данном
> ванианте указатель на экземпляр созданного TAny
> finally
> Free;
> end;
>
> ЗЫ переменную не предлагать :)


По опредилению with - нельзя. Ибо
with TStringList.Create(owner), Canvas, Edit1.Font do....
указатель на экземпляр кого должен быть в with?


han_malign   (2008-07-25 13:51:00) [7]


> вот-вот, за такой код и надо увольнять

- меня спросили вопрос, я ответил ответ...
В свете документированных особенностей вызова методов экземпляра класса - этот способ более корректен чем function with_self: TObject; asm mov eax, ebx end... :)))

З.Ы. with TAny.Create do- вообще, замечательный способ усложнить себе жизнь невозможностью посмотреть текуще состояние объекта во время трассировки...


Palladin   (2008-07-25 13:06:00) [8]


> Игорь Шевченко ©   (25.07.08 13:01) [13]

и волчий билет им вручать :)


han_malign   (2008-07-25 13:03:00) [9]

а метод TStringListSelf.__self - состоит из одной инcтрукции - ret...


Игорь Шевченко   (2008-07-25 13:01:00) [10]


> han_malign ©   (25.07.08 13:00) [12]


вот-вот, за такой код и надо увольнять


han_malign   (2008-07-25 13:00:00) [11]

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 - не переписываем...


Dennis I. Komarov   (2008-07-25 12:21:00) [12]

> [10] Игорь Шевченко ©   (25.07.08 12:12)

Поэтому я не использовал то что в [1] и [2], а искал "средства языка".
Нет так нет. Все... Закрыли...


Игорь Шевченко   (2008-07-25 12:12:00) [13]

автор, пойми одну простую вещь - чем проще будет исходный текст программы, тем быстрее к тебе потянутся люди.
За извраты а-ля добраться до того, к чему применяется with я бы немедленно уволил - дальше делай выводы сам.


Vlad Oshin   (2008-07-25 12:12:00) [14]


> к примеру
>  TAny(withpoint)[0]

а для чего это может быть нужно?


Игорь Шевченко   (2008-07-25 12:10:00) [15]


> Всетаки можно ли как-нить:


нет


Dennis I. Komarov   (2008-07-25 11:57:00) [16]

> [4] Правильный$Вася   (25.07.08 11:30)
догматы веры?

Нет. Этот вариант известен

> [6] Vlad Oshin ©   (25.07.08 11:40)
а для чего это может быть нужно?

к примеру
 TAny(withpoint)[0]


Vlad Oshin   (2008-07-25 11:40:00) [17]

а для чего это может быть нужно?


> Всетаки можно ли как-нить:
>
> with TAny.Create do try
>  // Вот тут добраться до того что в with, т.е. в данном
> ванианте указатель на экземпляр созданного TAny
> finally
>  Free;
> end;
>
> ЗЫ переменную не предлагать :)


Johnmen   (2008-07-25 11:36:00) [18]


> Всетаки можно ли как-нить:

Не...


Правильный$Вася   (2008-07-25 11:30:00) [19]


>  переменную не предлагать :)

догматы веры?
к свойствам можнои так обратиться, а если тебе нужен сам объект, то почему бы ему и переменную не выделить? она же все равно есть, только неименованная тобой, так что экономии никакой


Dennis I. Komarov   (2008-07-25 11:21:00) [20]

"средствами языка": Вместо TAny все что угодно, TStringList к примеру

ЗЫ TStringList не переписываем.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо