Имбирь - твой спиритический овощ. Войти !bnw Сегодня Клубы
УНЯНЯ. У нас есть немножечко инфы об этом пользователе. Мы знаем, что он понаписал, порекомендовал и даже и то и другое сразу. А ещё у нас есть RSS.
Теги: Клубы:

http://delphitools.info/dwscript/ DelphiWebScript > Scripts can be executed from Delphi applications (in a safe, sandboxed fashion) > Optional JavaScript code generation (compile to JavaScript)
#DSSYSG (0) / @octagram / 4370 дней назад
http://octagram.name/img/2012/05/AdaToDelphi.png Переписываю транслит с Ada на Delphi
#NCWY8X (0) / @octagram / 4372 дня назад
Generics хреново сочетаюся с отсутствием нормального RAII, но, наверное, в Embarcadero думают иначе. Предположим, нас интересует арифметика только с операторами +, -, *. Представим себе, что у нас, помимо Integer, есть модуль длинной целочисленной арифметики. Далее, есть generic, который на вход берёт целочисленный тип, а на выходе даёт рациональные числа из них. Либо для вещественных чисел можно взять Double. Далее, есть generic, который на вход берёт тип вещественных чисел, а на выходе даёт комплексные числа из них. Далее, есть generic, который на вход берёт некий числовой тип и делает из него матрицы. Проверить, нормальные ли generics в языке программирования, довольно просто: все возможные осмысленные комбинации этих generic'ов должны быть рабочими, и написание каждого из этих модулей не должно быть утомительным обходом языковых ограничений. Впрочем, в Delphi их хотя бы возможно обойти. Во Free Pascal generics последний раз, когда я смотрел спецификацию, никуда не годятся, потому что нет RAII. Никогда не понимал ФриПаскалистов. Скопировали Delphi 7, а дальше не стали. Испортили язык фичами из C++, но так же хорошо, как в C++, они не могут работать. Про Аду и знать не хотят.
#UI6HFN (0) / @octagram / 4376 дней назад
В Delphi XE2 так и не сделали человеческий, блин, RAII, с контролем над инициализацией (Interface и Variant инициализируются nil, нельзя вызвать метод, пока переменная не инициализирована; у record есть деструкторы, но нет конструкторов) и копированием (у Interface инкрементируется счётчик ссылок, не всегда то, что нужно), и это всё несмотря на то, что в RTL всё необходимое давно есть! Лечится, допустим, оборачиванием interface в record с методами. Методы record сначала проверят, а не nil ли интерфейсное поле, инициализируют при необходимости. Далее, если метод собрался что–то менять, можно сделать Copy On Write. И только после этого передавать вызов интерфейсному объекту. Прям хоть модули для m4 пиши, чтоб одно и то же не копипастить вручную. Несмотря на это, Delphi нельзя назвать застойным. В нём–таки сделана поддержка Unicode, COFF OBJ, Win64, всего того, что очень долго ждали.
#9I6YB3 (0) / @octagram / 4376 дней назад
DCCOSX.EXE
#WBCD19 (0) / @octagram / 4376 дней назад
Давно я не следил за Delphi. А тем временем появились интересные статейки про RTTI в Delphi 7: http://hallvards.blogspot.com/search/label/RTTI (начиная со второй страницы) http://www.transl-gunsmoker.ru/search/label/RTTI (перевод) http://cc.embarcadero.com/item.aspx?id=24074 (готовые модули) В Delphi 7 RTTI весьма разрозненно реализован. Самое простое — это свойства, их мы находим в TypInfo.pas. Далее, чтобы загрузка формы из ресурса могла работать, нужно находить published поля. Это мы находим где–то в Classes, в реализации, без публичного интерфейса. Наконец, самое сложное — published методы. Чтобы при загрузке формы из ресурса можно было назначать методы, адрес published метода можно искать по имени, но и только–то. Перечисление методов — опять лезть во внутренности, не имея публичных интерфейсов. При этом сигнатуры published методов недоступны. Если читать блог по порядку, то сначала автор конструирует самодекомпилятор для методов, перечисляя событийные свойства и используя сигнатуры событийных свойств. Если метод не назначен ни на какое событие, сигнатура недоступна. Далее автору, видимо, подсказали про модуль ObjAuto и директиву $METHODINFO, и на этот раз рефлексия сделана без хаков. После 7й Delphi RTTI был существенно расширен в Delphi 2010. Появился модуль Rtti.pas, где всё приподнесено на блюдечке. Так даже неинтересно.
#28Z2RS (0+1) / @octagram / 4377 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.