![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
синтаксис оператора with
irena © (2006-06-15 18:11:00)Уважаемые мастера! Не подскажете, как передать параметр функции, если значение этого параметра полностью совпадает с операндом конструкции with? (можно, конечно, совсем убрать with, но в условии "if" необходимо его присутствие, причем несколько раз)
for i:=0 to ComponentCount-1 do
begin
with Components[i] do
if ClassNameIs('TLabel') {и еще несколько проверок} then
MyFunction(???); //Components[i] as TLabel);
end;
Gero (2006-06-17 12:48:00) [1]> [14] Leonid Troyanovsky © (15.06.06 19:46)
> http://rsdn.ru/Forum/Message.aspx?mid=673350&only=1
Класс, спасибо )
Leonid Troyanovsky (2006-06-17 09:30:00) [2]
> Defunct © (17.06.06 08:40) [23]
> Смысла в этом вообще нет.
Возможно, что и так.
> Код с этой галиматьей будет работать медленнее чем если
> просто определить локальную переменную.
Кто бы сомневался :)
--
Regards, LVT.
Defunct (2006-06-17 08:40:00) [3]Leonid Troyanovsky © (16.06.06 18:19) [22]
Смысла в этом вообще нет.
Код с этой галиматьей будет работать медленнее чем если просто определить локальную переменную.
> Видимо, из желания сэкономить на описании переменной :)
ну если только ради написания более тормознутого кода.
Leonid Troyanovsky (2006-06-16 18:19:00) [4]
> Игорь Шевченко © (16.06.06 11:33) [19]
> А смысл ?
Честно говоря, особых глубин смысла не достиг.
В большинстве случаев, потребность в самопознающих объектах
возникает при использовании ссылки внутри конструкции
with TMyObject.Create try .. finally Free; end.
Видимо, из желания сэкономить на описании переменной :)
--
Regards, LVT.
irena (2006-06-16 15:17:00) [5]Leonid Troyanovsky :-) thank you very much
evvcom (2006-06-16 13:23:00) [6]Не хакерский для каждого компонента не напишешь. А хакерский все-таки не противоречит документированным возможностям, потому не такой уж он и "хакерский".
Игорь Шевченко (2006-06-16 11:33:00) [7]Leonid Troyanovsky © (15.06.06 19:46) [14]
> Можнр и не хакерский.
>
> http://rsdn.ru/Forum/Message.aspx?mid=673350&only=1
А смысл ?
Плохиш (2006-06-16 11:14:00) [8]
> контекст обсуждения наблюдаешь?
Честно говоря, из [0] не понял, какие у девушки проблемы. А после [4] совершенно не понятно, что она соберается решать хакерскими методами, но я бы всё-таки посоветовал сначала обратиться к лечащему врачу.
MBo (2006-06-16 08:13:00) [9]>Leonid Troyanovsky © (15.06.06 19:46) [14]
>Можнр и не хакерский.
Да, конечно, способы разные бывают. В последних версиях Дельфи можно и класс-хелперы использовать для этой цели, чтобы наследника не создавать.
Loginov Dmitry (2006-06-15 20:32:00) [10]Desdechado © (15.06.06 19:26) [13]
контекст обсуждения наблюдаешь?
В общих чертах :)
Джо (2006-06-15 19:52:00) [11]> [14] Leonid Troyanovsky © (15.06.06 19:46)
Достаточно изящно.
Leonid Troyanovsky (2006-06-15 19:46:00) [12]
> MBo © (15.06.06 18:44) [6]
> Хакерский способ есть, но лучше этого не делать
Можнр и не хакерский.
http://rsdn.ru/Forum/Message.aspx?mid=673350&only=1
--
Regards, LVT.
Desdechado (2006-06-15 19:26:00) [13]Loginov Dmitry © (15.06.06 19:23) [12]
разницу между Self и типа-Self чувствуешь?
контекст обсуждения наблюдаешь?
Loginov Dmitry (2006-06-15 19:23:00) [14]Desdechado © (15.06.06 18:48) [8]
к какому тогда через типа-Self обращаться компилятору?
Хм... А при чем здесь Self? Он же всегда один и тотже в пределах класса, а with его не изменяет.
irena (2006-06-15 19:04:00) [15]с п а с и б о !
MBo (2006-06-15 18:53:00) [16]>какой?
http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=831
irena (2006-06-15 18:53:00) [17]
> к какому тогда через типа-Self обращаться компилятору?
ну, Delphi же умный...
и даже в переопределенных функциях (override) разбирается
в зависимости от типа...
Sorry...
Desdechado (2006-06-15 18:48:00) [18]у WITH синтаксис несколько шире - там можно сразу несколько переменных писать
к какому тогда через типа-Self обращаться компилятору?
irena (2006-06-15 18:46:00) [19]а интересно...
какой?
MBo (2006-06-15 18:44:00) [20]>А жаль, что не придумали какого-то заменителя типа Self ....
Хакерский способ есть, но лучше этого не делать