Текущий архив: 2004.08.01;
Скачать: CL | DM;
ВнизОператор IS небезопасен для форм - продолжаем разговор Найти похожие ветки
← →
Суслик (2004-07-15 14:40) [40]Ничего он не должен.
Целевую функцию is выполняет сполна.
Не надо умничать и все будет хорошо.
======================================
Тут одному ro дали. Может зря?
Вполне точно выразил мысль imho.
← →
Sandman25 © (2004-07-15 14:45) [41][40] Суслик (15.07.04 14:40)
ro дали не за содержание высказывания, а за форму
← →
Piter © (2004-07-15 14:46) [42]Суслик (15.07.04 13:39) [38]
Видел я эту ветку на королевстве.
Piter, уверяю - тебя там никто не понял
ВСЕ ОНИ ПОНЯЛИ! И если бы не Григорьев Антон - никто бы в жизни не догадался.
Я вот почему завел ветку - все тут после моих рассказов начали кричать, что знают про особенность IS (про compiler magic). Но извините я в это не совсем верил. И решил убедиться - а правда что ли все знают как работает IS, а я не знал?
И задал вопрос на королевстве - там люди не глупее обитают, спорить, думаю, никто не будет.
Вот ветка - http://www.delphikingdom.com/asp/answer.asp?IDAnswer=23761
если бы не Антон с ссылкой на эту тему - никто правильного ответа не знает. Смотрите что пишет народ:
If Btn is TButton then
после чего компилятор начнет копаться в предках Btn ищя класс с названием TButton (для начала чисто теоретичеки представьте этот процесс, можно попробовать реализовать ... дальше видно будет).
это написал некий Johny B. Может, он там не мастер, но судя по всему - отвечает регулярно. Ну и что? Моя правда. Человек даже не подумал об compiler magic. У него сразу ассоциации с тем, что будет вызван IsClass!!! То есть, употребление Is он приравнивает к вызову IsClass.
И думаю никто бы не догадался.
где-то в JCL видел методы (процедуры), которые лезут в RTTI и меняют ссылку на класс обьекта
и он тоже даже не подумал об Is как о compiler magic. Он тоже ассоциирует употребление IS как вызов IsClass - поэтому единственным способом обмануть считает изменение класса объекта.
Если честно, я думаю, что до этой ветки и здесь многие не знали о таком свойстве Is. Просто не знали. Да, оно проявляется редко в хорошо написанных программах. Но такое свойство у Is есть. И тем более непонятно почему когда я рассказал о таком свойстве все стали кричать, что это понятно даже дебилам, хотя наверняка сами и не знали раньше о таком поведении Is.
Все вышеперечисленное мое ИМХО. Пожалуйста, не пишите в ветку на королевстве.
И так как эксперимент немного сорвался - я еще и в ФИДО планирую написать - надеюсь, там никого из нашенских не будет :) А если будет - то не отвечайте в ФИДО, если увидите такой вопрос, ок?
Мне просто интересно...
← →
Суслик (2004-07-15 14:46) [43]
> ro дали не за содержание высказывания, а за форму
да понимаю я - это намек именно на содержание...
← →
Sandman25 © (2004-07-15 14:49) [44]>Да, оно проявляется редко в хорошо написанных программах.
Можно 1 пример проявления в хорошо написанной программе?
← →
Суслик (2004-07-15 14:50) [45]
> это написал некий Johny B. Может, он там не мастер, но
> судя по всему - отвечает регулярно
вы тоже регулярно отвечаете.
> Мне просто интересно...
Что вам интересно? Что вы не дурак? Так это и так ясно.
Что про особенности компилятора не все знают? Так это да. Я тоже не знал.
Что вы хотите себе доказать.
← →
Anatoly Podgoretsky © (2004-07-15 14:54) [46]Cobalt © (15.07.04 12:28) [36]
Что делать нет совершенства в этой жизни.
← →
Sandman25 © (2004-07-15 14:57) [47]Нет, ну серьезно. Покажите мне пример хорошей программы с
Button: TButton и Button is TButton
← →
Суслик (2004-07-15 15:00) [48]Не покажет он ничего.
Успокоится только когда окажется что всё фидо, интернет, секретная сеть ФСБ и пентагона не знают про особенности is.
← →
Sandman25 © (2004-07-15 15:08) [49]Button: TButton;
begin
repeat
Button := TButton(Pointer(Random(MAXINT)));
until Button is TButton;
Button.Click;
end;
Жалко только, что программа не очень хорошая. Но это в данном случае она не хорошая, потому что есть нормальный алгоритм, решающий данную задачу. Но ведь можно напрячь мозги и придумать такое задание, для которого действительно не будет решения или решение будет требовать слишком много памяти для хранения всех контролов.
← →
Суслик (2004-07-15 15:13) [50]
> Жалко только, что программа не очень хорошая
Конечно не очень хорошая.
А что если tbutton скрывается в верхних 2гб? Не подумали?
Вот если от 0 до 4гб, тогда точно была бы хорошая программа - tbutton от нас нигде не сроектся.
:)
← →
Sandman25 © (2004-07-15 15:16) [51][50] Суслик (15.07.04 15:13)
А какая разница? ГСЧ все равно не гарантирует выпадание заданного числа N ни за какое время, а программный ГСЧ не гарантирует, что вообще возможно выпадение этого заданного числа в принципе. Так что в любом случае возможно зацикливание :)
← →
Piter © (2004-07-15 15:25) [52]Sandman25 © (15.07.04 14:49) [44]
Можно 1 пример проявления в хорошо написанной программе?
Ладно. В хорошо написанных программах такого не встречается. Ибо magic compiler работает только в случаях когда программист и сам будет знать о результате IS. Поэтому и не будет применять Is.
Но это те, кто знает
← →
Piter © (2004-07-15 15:29) [53]Суслик (15.07.04 15:00) [48]
Успокоится только когда окажется что всё фидо, интернет, секретная сеть ФСБ и пентагона не знают про особенности is.
мне твои наезды глубоко параллельны. Мне интересна одна догадка и я ее решаю по мере сил. Иронизировать можешь сколько хочешь. Только лучше не в этой ветке.
← →
ИдиотЪ (2004-07-15 15:31) [54]ну хочется человеку, чтоб ему памятник при жизни поставили, тут уж ничем не остановить
Я тоже когда-то нашел одну особенность, тоже немного пообсуждали и успокоились.
Опубликует книгу потом "Моя жизнь в поисках истины is"
← →
Суслик (2004-07-15 15:34) [55]
> Piter © (15.07.04 15:29) [53]
В какой ветке я сам решу, ок?
Иронии и тени не был - это скокойная правда.
Вы все успокоится не можете, что так много времени потратили на такую ерунду. Ну что же - в будущем рациональнее будете.
Какая у вас догадка?! CPU под боком - ответ давно получен.
← →
Суслик (2004-07-15 15:35) [56]
> ИдиотЪ (15.07.04 15:31) [54]
> ну хочется человеку, чтоб ему памятник при жизни поставили,
> тут уж ничем не остановить
Бинго
← →
jack128 © (2004-07-15 18:08) [57]
> А оператором IS мы ПРОСИМ КОМПИЛЯТОР ПРОВЕРИТЬ. Это ведь
> разные вещи?
>
> Я вовсе не в обиде на компилятор, если код:
>
> TButton(SamePointer).Caption := "Ла-ла-ла".
>
> приведет к ошибке. Потому что использовав такую конструкцию
> я ГОВОРЮ компилятору, что SamePointer - это экземпляр TButton.
> Он мне должен верить (я разработчик) и не обязан ничего
> проверять.
а вот так я говорю компилятору, что btn - это кнопка
var
btn: TButton; //И он мне должен верить (я разработчик) и не обязан ничего проверять.
;-)
> Это не технические трудности, это невозможно принципиально.
ну и что? Ну а представим, что это возможно тогда что? Тогда компилятор должен осуществлять такую проверку? Если считаешь, что да, тогда ответь на вопросы, поставленные> [37] han_malign © (15.07.04 13:31)
← →
Piter © (2004-07-15 18:15) [58]Удалено модератором
Примечание: Очередные нападки, в том числе и на модераторов
← →
olookin © (2004-07-15 18:22) [59][58] Piter © (15.07.04 18:15)
Нет бы хоть проявить толику уважения к человеку, который сказал для вас какую-то новую вещь...
Уважаю. Но мне не менее параллельно о семантике IS равно как и тебе мнение там каких то людей, уважающих модераторов или мастеров.
← →
Суслик © (2004-07-15 18:29) [60]
> Факт в том, что это многие не знали, как тот же Суслик.
Ну и что?
> А Вы, видимо, поставили для себя задачу убедить меня, что
> я ламак
Как вам кто-то говорил - вы точно параноик :)))
> чуть попытался задать неочевидный вопрос
Не надо говорить неправду :)))
Вспомните самый первый вопрос? Он был неочевиден? Наверное только вам. :))) Не перетягивайте. И Григорьев и Тимохов заметили вам о том, что считают один из открытых вами фактов (несоответсвие описание реализации) интересным. Что же вам еще надо. Чтобы о вас статью написали в правде? :)))
В качестве вывода :)))
Как вы говорите "интересная вешь" получается: облажался в невинном месте, выяснил много нового (за это респект), почему облажался, и страсть как хочет узнать а могли ли другие (теоретически) так облажаться. И мне кажется начинает успокаиваться узнав о том, что могли, т.к. не знали факта отрытого им.
Спешу разочаровать - не могли :))) Т.к. данный факт для других просто не важен потому как никто не доводит до ситуации, когда такой факт съиграет роль и не зная его облажаешься.
vuk, в частности, а также многие другие очень граммотно это подчеркнули.
----------------------------
За "дефекацию" и весь пост (твой) могут почикать.
Не кипятись :)))
← →
jack128 © (2004-07-15 18:30) [61]
> А Вы, видимо, поставили для себя задачу убедить меня, что
> я ламак.
Да? Где это я такое говорил?
Страницы: 1 2 вся ветка
Текущий архив: 2004.08.01;
Скачать: CL | DM;
Память: 0.57 MB
Время: 0.036 c