Free Delphi Examples
Как и обещал, продолжаю повествование о FireMonkey.
Сегодня несколько слов об освещении 3D сцены и об окраске поверхностей 3D объектов. Не смотря на кажущуюся простоту, тема довольно интересная.
Представьте себе обычную комнату, с мебелью и другими предметами интерьера, в которой полностью отсутствует освещение. Теперь давайте создадим новую 3D форму, поместим в ней несколько 3D объектов и… покрасим ее в черный цвет. Примерно так:
self.Color:= TAlphaColors.Null;
Фактически, таким образом, мы получим модель идеальной темной комнаты. В которой, как справедливо заметил Конфуций, очень трудно искать черную кошку. В роли кошек, в нашем случае выступают 3D фигуры. Ни одной фигуры на форме, как вы понимаете, не видно. Вот с этого места, на мой взгляд, и следует рассказывать об освещении и свойстве 3D объектов FireMonkey - Material.
property Material: TMaterial read FMaterial write SetMaterial; Читать далее
Боремся со скоростью!
В предыдущем посте я затронул проблему производительности приложения, использующего DevExpress компоненты. Здесь я расскажу о некоторых своих изысканиях в данном направлении.
Итак, имеем следующее…
Приложение в процессе работы открывает выборку данных. Запрос формируется динамически. В теории набор данных может содержать несколько тысяч записей.
К набору данных привязаны cxGrid, в котором активное представление TcxDBGridDBTableView и cxPivotGrid (еще один очень интересный компонент из набора DevExpress о котором обязательно стоит рассказать). При загрузке свыше тысячи записей наблюдается явственная протормозка.
Попробуем выяснить из-за чего именно. Ниже я приведу свой ход мысли. Возможно, в чем-то я не прав, поэтому надеюсь на вашу помощь в рассуждениях…
Я попытался вычислить количество миллисекунд, затрачиваемых на открытие DataSet’а и на загрузку данных в Grid’ы примерно так: Читать далее
ExpressQuantumGrid
Если бы мне пришлось придумывать название для ExpressQuantumGrid, то я бы назвал его челябинский грид, ведь он настолько крут, что зачастую руководство нужно не только разработчикам, но и конечным пользователям приложений, в которых он используется.
Сразу попытаюсь оговорить отдельные моменты. Коммерческое название продукта ExpressQuantumGrid, хотя класс в Delphi называется TcxGrid. Кроме этого грида в состав ExpressQuantumGrid Suite входят еще несколько гридов и сопутствующих им компонентов. Но пока здесь речь пойдет только о cxGrid. Я буду использовать слово “грид”, хотя его фактически не в русском языке. Но изобретать переводы как-то сетка, табличный элемент управления и т.д. я не буду. Грид, он и в Африке грид. Читать далее
В тестовом режиме запущен сайт http://www.delphifeeds.ru/. Русскоязычный аналог DelphiFeeds.com.
На текущий момент собираются RSS ленты с тринадцати сайтов, и еще с трех – в ручном режиме.
Предложения, пожелания, вопросы можно оставить здесь: http://www.delphifeeds.ru/index.php/feed.
TRttiType обеспечивает нас удобным интерфейсом, который позволяет получать доступ ко всей информации, связанной с типом. В большинстве случаев, как мне кажется, он интуитивно понятен и документирован. Я рекомендую открыть Rtti.pas и посмотреть описание TRttiType.
В общих чертах я рассказал про TRttiType в предыдущих статьях.
Подобно тому, что я начал рассказывать в предыдущей статье, если ваш тип поддерживает поля, свойства и/или методы, то существуют несколько несложных методов получения доступа к ним.
Такие методы предоставляют ко всем полям, свойствам и методам, имеющим RTTI информацию, и в следующих статьях я углубленно рассмотрю TRttiField, TRttiProperty и TRttiMethod.
Перевод второй статьи из цикла о RTTI в Delphi 2010.
В Delphi 2010 атрибуты были добавлены как функциональность языка. Они были доступны в Delphi Prism (для .Net) и вот теперь схожая функциональность появилась и для Win32.
Атрибуты являются способом закрепления метаданных за отдельно взятым типом или членом этого типа.
Они могут применяться во многих областях, и следующий код демонстрирует несколько вариантов использования атрибутов.