На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

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


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> RAD Studio XE 2 , Обсуждаем новую версию Delphi
    Никто не знает, х64-версию будут продавать независимо от х32? Или по одной лицензии обе пойдут?

    Эта тема была разделена из темы "Новости Embarcadero"
      Фига ты спросил :) Тут народ очкует - будет ли она вообще...
        Хм. А что, разве есть возможность, что накроется?
          Цитата Fr0sT @
          Хм. А что, разве есть возможность, что накроется?

          Разве ты не знаешь сколько обещанного ждут?

          Или Е давало повод верить во все обещания которые они дают?

          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
            Я где то читал что на одном из семинаров была презентована демка сего продукта. А с учетом того что они как то вяло в последнее время работают с багрепортом то возможно заняты новым продуктом (хотя возможно это весна и они заняты совсем не программированием :lol: )

            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
              Да выйдет она, выйдет (я даже знаю когда, но не скажу :) ).

              Просто я к тому, что странно задавать такие вопросы, когда продукт официально ещё не объявлен.

              Цитата joiner @
              Или Е давало повод верить во все обещания которые они дают?


              С каких пор "мы думаем, что x64 стоит ожидать в 2010-м" стало обещанием?

              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                Если мне не изменяет память то они в прошлом году заявили о отложении выхода 64 в пользу поддержки макоса. посему если и были где то обещания то они автоматически анулировались )

                Цитата CodeMonkey @
                Просто я к тому, что странно задавать такие вопросы, когда продукт официально ещё не объявлен.

                согласен. но по всем приметам это все таки будет одна среда. (изменения структуры библиотек, + видел скрин где это было наглядно видно, но не факт что подленный)
                но я наверно как и многие делфисты жду этого лишь для галочки: "А мы тоже можем собирать x64 приложения". Ибо в текущей работе это не надо.

                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                Сообщение отредактировано: ViktorXP -
                  Цитата ViktorXP @
                  как и многие делфисты жду этого лишь для галочки: "А мы тоже можем собирать x64 приложения"

                  Нет. Не для галочки.

                  Цитата ViktorXP @
                  Ибо в текущей работе это не надо.

                  Так надо, что в адрес EmbarCadero уже все матерные слова закончились, вот все и помалкивают :)

                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                    Цитата CodeMonkey @
                    Да выйдет она, выйдет (я даже знаю когда, но не скажу ).

                    А ну давай колись ! :)

                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                      Что там колоть? Все наверняка будет традиционно: в мае объявят, к сентябрю выпустят.

                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                        Мне в общем-то х64 не нужно совсем, а вот коллега ждет, у него софт очень много памяти требует. Но после х64 Е-ро по идее должны заняться мультиплатформой :)

                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                          Цитата P.O.D @
                          http://www.embarcadero.com/products/delphi/64-bit

                          Миленько. Все-таки integer & cardinal - всю дорогу 32bit.
                          То есть, адресную арифметику перекраивать. В принципе понятно: много чего меняется.
                          И увлекашки оптимизацией на ассемблере тоже попали.

                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                            Отлично! Я уж пересмотрел все свои проекты и компоненты, исправил кучу подозрительных integer <-> pointer мест. Лишним никогда не будет.
                            Только вот непонятно, в каком виде это будет? На презентации компилировалось прямо в ХЕ, однако не думаю, что они упустят возможность испечь новую версию студии - еще бы, такой прорыв! Опять же, непонятно, будет ли две версии студии (32 и 64), и как они будут лицензироваться. Ведь на 32-й среде не запустишь 64-е приложения.

                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                              Цитата Fr0sT @
                              Только вот непонятно, в каком виде это будет? На презентации компилировалось прямо в ХЕ, однако не думаю, что они упустят возможность испечь новую версию студии - еще бы, такой прорыв!


                              Конечно, это будет XE 2. Непонятно, с чего ты взял, что это в XE кто-то собирается добавлять.

                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                Цитата Fr0sT @
                                Я уж пересмотрел все свои проекты и компоненты, исправил кучу подозрительных integer <-> pointer мест. Лишним никогда не будет.

                                Там рекомендуют преобразовывать pointer к PBytes. Несколько неожиданно...

                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                  Цитата CodeMonkey @
                                  Конечно, это будет XE 2. Непонятно, с чего ты взял, что это в XE кто-то собирается добавлять.

                                  А, они так решили назвать, ХЕ2? Я просто не знал аббревиатуры.
                                  Цитата Romkin @
                                  Там рекомендуют преобразовывать pointer к PBytes. Несколько неожиданно...

                                  Мда, странно. Возможно, имелся в виду PByte?

                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                    Цитата Fr0sT @
                                    Мда, странно. Возможно, имелся в виду PByte?

                                    Да, точно, PByte :D Это я уже запутался. MyPtr := PByte(P) + 10;
                                    На 64 битах еще только одно соглашение о вызовах, cdecl и остальное - игнорируется. Поэтому и все библиотеки должны быть 64 бит, однако. Брр.
                                    Строки - те же самые, как я понял. То есть строку длиннее 2Gb не напишешь, только динамический массив. Ну и хорошо, а то delete и наращивание длины в цикле на 1 у строки в десяток гигов уже ужасает.

                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                      Цитата Romkin @
                                      Поэтому и все библиотеки должны быть 64 бит, однако. Брр.


                                      Не поэтому.

                                      Добавлено
                                      P.S. Рекомендую ещё глянуть: http://www.gunsmoker.ru/2010/11/64-windows.html

                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                        Цитата CodeMonkey @
                                        Не поэтому.

                                        А, так переходников нет. Ну и хорошо, а то и так зоопарк.

                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                          Выходит, 32-е библиотеки совсем нельзя будет использовать?

                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                            Совсем.

                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                              Народ, а зачем вам 64 битное приложение??

                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                Цитата jack128 @
                                                Народ, а зачем вам 64 битное приложение??

                                                Да, вроде как Windows 8 будет только 64-битная.

                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                  Это не более чем слухи. MS про Windows 8 ещё ничего не сказала.

                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                    Profi ну если они планирую в году 2020ом выпустить - возможно. ежели до 2015ого - не верю. Страшилки...

                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                      Цитата CodeMonkey @
                                                      Это не более чем слухи. MS про Windows 8 ещё ничего не сказала.

                                                      :no:
                                                      Было заявлено самой MS что следующая Windows будет только x64.

                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                        Цитата jack128 @
                                                        Народ, а зачем вам 64 битное приложение??

                                                        Читал статью CodeMonkey про 64-разрядность, был уверен в её утверждениях (х64 нужно в основном для потребления огромных кусков памяти + для библиотек и плагинов), однако потом встретил вот такое мнение:
                                                        Цитата
                                                        1. Application written for x86_64 don't need to care about backward compatibility. x86 applications are often compiled for i486 (even if optimised for i686) so some of the optimisation is lost or cannot be utilised fully.

                                                        2. x86_64 has more registers, which means stack (which is slow) needs to be used less often.

                                                        3. x86_64 has support for 64-bit arithmetic including multiplying two 64-bit numbers to get a single 128-bit number (ie. multiplying big numbers is 4 times faster). This helps with encryption based on multiplying big numbers (read: SSL).

                                                        4. Running 32-bit application on 64-bit system requires context of the CPU to be changed each time such application gets some CPU time.

                                                        5. Pure 64-bit system needs less libraries to be loaded since compatibility libraries are not needed.

                                                        Of course, the biggest drawback is:

                                                        1. Pointers are 64-bit and stack is aligned to 64-bit which means that more memory is used.

                                                        So on systems with moderate amount of memory, 64-bit system may be way slower than 32-bit one. However, after certain point, 64-bit system and 64-bit applications may turn out to be faster.

                                                        Выглядит разумным. Комментарии от знающих людей?

                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                        Сообщение отредактировано: Fr0sT -
                                                          Гм, а чему это противоречит?

                                                          В "64 нужен, потому что..." вовсе не обязательно входит "каждый пункт, чем 64 отличается от 32 в WOW-е".

                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                            Ну, из твоей статьи складывается ощущение, что сама по себе х64 версия ничего не дает.

                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                              Да? Ну не знаю.

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

                                                              Про отсутствие эмуляции - не сказано. Но вроде это же очевидно?

                                                              Наверное, разница только в стиле текста.

                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                Сказано, но распределено по тексту и не очень акцентировано. Неплохо бы где-нибудь в итогах также привести плюсы х64 приложения по сравнению с х32 под х64 ОС. Имхо.

                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                Сообщение отредактировано: Fr0sT -
                                                                  Ага, я вот и выясняю, что можно подправить.

                                                                  Думаю, что можно вторую статью после прощупа беты написать. Поменьше, но без предварительной информации - уже чисто по отличиям и на что смотреть при переходе.

                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                    Цитата CodeMonkey @
                                                                    Думаю, что можно вторую статью после прощупа беты написать

                                                                    Было бы неплохо :)

                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                      Цитата Romkin @
                                                                      Там рекомендуют преобразовывать pointer к PBytes. Несколько неожиданно...

                                                                      Я уже месяц назад это сделал в своих проектах. Когда на FPC переходил. :P

                                                                      Добавлено
                                                                      Цитата Fr0sT @
                                                                      Выглядит разумным. Комментарии от знающих людей?

                                                                      1) Предложение не очём. x86-64 поддерживает функционал SSE2. Да какую то часть совместимости отбросили, но этого не горячо не холодно SSE3 и так далее надо поддерживать. Капля в море.
                                                                      2) Есть противоречивые данные. Говорят что плюса в этом нет. Сам не проверял.
                                                                      3) Это от архитектуры завесит. Честно скажу что не везде так.
                                                                      4) Ровно также контекст переключается и при 64 бинтом. А регистров стало больше. Сохранять их дольше. Правда ОС это дело оптимизирует. Если задача имеет наивысший приоритет, то ОС не сохраняет контекст целиком, а только нужное.
                                                                      5) x86-64 это по большому счёту набор команд. А архитектур больше. И совместимость делается под архитектуру а не под набор команд.


                                                                      Цитата Fr0sT @
                                                                      Of course, the biggest drawback is:

                                                                      1. Pointers are 64-bit and stack is aligned to 64-bit which means that more memory is used.

                                                                      Стек в программе всего 1. А выравнивание памяти устраняет умный менеджер памяти, такой как FastMM.

                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                        Цитата Pavia @
                                                                        А выравнивание памяти устраняет умный менеджер памяти


                                                                        В каком смысле устраняет?

                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                          Думаю, большинство пока что замерло в ожидании x64 :)

                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                            Цитата Fr0sT @
                                                                            Думаю, большинство пока что замерло в ожидании x64

                                                                            А зачем? XE - считай, отлаженный юникод плюс отутюженные JSON и DataSnap новый. 64 разряда не такая уж необходимая фишка.
                                                                            Плюс если замерли на чем-то ниже 2009, то апгрейд скорее всего сделать не удастся :(

                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                              Romkin, ну, я вот замер на 2010, ХЕ содержал не так много улучшений, чтобы его приобретать. А вот 64-я позарез нужна, ее купят.

                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                Цитата Romkin @
                                                                                А зачем?

                                                                                А перейди на 64-битую ось, так сразу данный вопрос и отпадет :)

                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                  Цитата Riply @
                                                                                  А перейди на 64-битую ось, так сразу данный вопрос и отпадет

                                                                                  наш вполне себе 32х битный софт вполне себе на 64битной винде работает. У мя дома стоит win7 x64 - под ней туча 32битных программ работает.
                                                                                  в чем проблема?? Или каждый второй дельфиец драйвера пишет???

                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                    Ну не каждый второй, и не драйвера.

                                                                                    А вот shell extensions - каждый двадцатый писать вполне может.

                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                      Цитата jack128 @
                                                                                      наш вполне себе 32х битный софт вполне себе на 64битной винде работает

                                                                                      Дык я и не говорила, что не работает :)
                                                                                      Просто, когда под 64-биткой работаешь, захочется, лично для себя, какую-нибудь "помогалку" написать
                                                                                      и споткнешся, что это туда-то не инжектировать :(
                                                                                      Или пойдут танцы с какими-нибудь Wow64Redirection, которые, крайне не рекомендуется использовать.
                                                                                      И т.д.

                                                                                      Все эти мелочи, вкупе, оставляют довольно неприятный осадок,
                                                                                      что родная среда до сих пор не добралась до х64.

                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                        Цитата ViktorXP @
                                                                                        Но меня интересует на кого расчитан продукт

                                                                                        Продукт, однозначно, рассчитан на Delphi-программистов, которые его приобретут ради лицензии, а потом поймут, что приобретение Профешионала просто неизбежно...
                                                                                        Ну, не хватило у меня сразу средств на проф... зато проапгрейдится можно со скидкой...
                                                                                        Это маркетинговый ход, кто в бизнесе шарит - сразу поймет....

                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                          Цитата Riply @
                                                                                          А перейди на 64-битую ось, так сразу данный вопрос и отпадет

                                                                                          Расслабляемся. и следующая будет x86.
                                                                                          это не говорит что не нужно переходить на 64. это дает больше времени ембаркадеровцам отладить новый компилятор.

                                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                            Пруф — ?

                                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                            Сообщение отредактировано: Fr0sT -
                                                                                              А тем временем уже есть 4 бета версия XE2, под кодовым названием Pulsar. В ней есть компиляция x64 и даже компиляция консольный приложений под мак.

                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                Круто! Интересно, можно ли где-то скачать? В тестеры записываться лениво

                                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                  А как в тестеры записаться вообще? :rolleyes: Нетерпится испробовать испробовать 64 бита.

                                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                    http://www.embarcadero.com/products/beta-programs
                                                                                                    но не факт что попадешь в тестируемую группу. я у их зарегин уже несколько лет и ни разу не тестировал Delphi Win32

                                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                      А никто х64 не щупал? Поделитесь хоть впечатлениями.

                                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                        Щупали. Но... NDA.

                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                          Ну хоть в целом как? Работает? :)

                                                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                            Цитата Fr0sT @
                                                                                                            Ну хоть в целом как? Работает?

                                                                                                            В любом случаи работать будет. :lol:

                                                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                              Цитата ViktorXP @
                                                                                                              Цитата Fr0sT @
                                                                                                              Ну хоть в целом как? Работает?

                                                                                                              В любом случаи работать будет.

                                                                                                              Вопрос как раз именно в том как оно работать будет

                                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                ну не думаю что сценарий работы будет чем то отличатся от текущей. вспомним переход на юникод или дженерики. сначала глючит, а потом работает нормально.
                                                                                                                а если судить со скринов и описаловки то работа в самой студии не поменяется.

                                                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                  По идее, в правильно спроектированном приложении вообще ничего не надо будет менять - все изменения внутренние.

                                                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                    УРААААААА!
                                                                                                                    http://forum.vingrad.ru/forum/topic-334023.html
                                                                                                                    что бы не нарушать договор о не разглашении я лучше ссылку дам где это уже разглашено.

                                                                                                                    Добавлено
                                                                                                                    кодовое название они странное взяли "Pulsar". Интересно к чему бы это. <_<

                                                                                                                    Добавлено
                                                                                                                    ща качну Seven 64 битную. завтра пойду и куплю две плашки по два гига и буду перебиратся на 64-битную платформу ))))))

                                                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                      И кросс-платформа есть!!! о_О Резко качаю!

                                                                                                                      Пока только яблооси... неоткуда взять. Т.ч. пока зацениваем только 64.

                                                                                                                      апд

                                                                                                                      Поставил. Конечно, первым делом погонял огненную обезьяну :)
                                                                                                                      Под виртуалкой - кошмар: падает, зависает, АВ. Но на хост машине всё ОК. Впечатление - красивые контролы, хотя АльфаСкинс покрасивее будут.
                                                                                                                      Первый глюк - если боковая панель на "автосвертке", то вернуть ее в зафиксированное положение никак не удается - она просто удаляется. При этом повторный вызов панли через View не срабатывает.
                                                                                                                      Добавили неймспейсы к юнитам, непривычно и пока неудобно. Теперь придется еще и неймспейс запоминать. К тому же подстановка местами не срабатывает.

                                                                                                                      Ни один из замеченных мною глюков не исправили. Реквесты тоже не сделали ни один.

                                                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                      Сообщение отредактировано: Fr0sT -
                                                                                                                        Цитата Fr0sT @
                                                                                                                        Добавили неймспейсы к юнитам, непривычно и пока неудобно.

                                                                                                                        да. меня это тоже выбило. я даже подумал что придется опять переводить проекты на новую платформу. но благо и без их собирается.

                                                                                                                        Добавлено
                                                                                                                        плохо что сама студия осталась 32-битная. :(

                                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                          Неймспейсы добавлять не надо. В опциях проекта нужно указать дефолт-неймспейсы. Вообще-то они там должны быть по умолчанию для новых проектов. Если импортируется старый проект - тогда да, может не быть. Но вообще, импорт старых проектов - не самая удачная идея. Проекты всегда лучше пересоздавать. Пути могут поменяться, наборы BPL-к, etc.

                                                                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                            Цитата CodeMonkey @
                                                                                                                            Пути могут поменяться, наборы BPL-к, etc.
                                                                                                                            Это все можно дефолтить. (удалением *.dproj, *.local и *.identcache файлов)

                                                                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                              Цитата Fr0sT @
                                                                                                                              Добавили неймспейсы к юнитам, непривычно и пока неудобно. Теперь придется еще и неймспейс запоминать. К тому же подстановка местами не срабатывает.

                                                                                                                              так же как удобнее файлы раскладывать по папкам, так же и юниты удобнее раскидывать по неймспесам.
                                                                                                                              А то что IDE глюкавая - ты сам её выбирал ;-)

                                                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                если будет возможность создавать свои немспейсы то может быть.

                                                                                                                                а если нет. то какая разница. это нужно будет заучивать где какой модуль находится, но зачем если в самой логике это ничего не меняет.

                                                                                                                                Добавлено
                                                                                                                                интересно одно. они сделали поддержку iSO, но почему нет других. у их когдато был продукт BuilderX который мог сорирать под симбию. его можно было бы развить, добавить туда андроид, ну и пусть что не паскалевский язык, зато среда знакомая и удобная (если взять карбид то он не удобный, медленный и уж очень много лишнего.)

                                                                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                Сообщение отредактировано: ViktorXP -
                                                                                                                                  Цитата jack128 @
                                                                                                                                  так же как удобнее файлы раскладывать по папкам, так же и юниты удобнее раскидывать по неймспесам

                                                                                                                                  Собственно, насколько я понимаю, это достигается простым наименованием юнита namespace.unitname.pas, что можно было сделать еще фиг знает когда.
                                                                                                                                  Хотя, возможно, будет удобнее, если вместо IdFoo, IdBar будет Indy.Foo, Indy.Bar
                                                                                                                                  Цитата ViktorXP @
                                                                                                                                  они сделали поддержку iSO, но почему нет других. у их когдато был продукт BuilderX который мог сорирать под симбию. его можно было бы развить, добавить туда андроид, ну и пусть что не паскалевский язык, зато среда знакомая и удобная (если взять карбид то он не удобный, медленный и уж очень много лишнего.)

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

                                                                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                    ну мне дроид не интересен. мне интересна симбия.
                                                                                                                                    пс. а в дроиде и впрямь нет архитектуры на подобие симбии? это ведь логично и удобно. (хотя некоторые ограничения налаживаются)

                                                                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                      Цитата Fr0sT @
                                                                                                                                      Собственно, насколько я понимаю, это достигается простым наименованием юнита namespace.unitname.pas, что можно было сделать еще фиг знает когда.

                                                                                                                                      да, мы с 2007 дельфи так называем модули. Просто терь и Embarcadero додумалась, что это не плохо, что радует.

                                                                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                        Цитата ViktorXP @
                                                                                                                                        ну мне дроид не интересен. мне интересна симбия

                                                                                                                                        А вот создателям она неинтересна. Соответственно через пару лет сдохнет. Кому охота делать ее поддержку? Мб, на FP можно под нее писать?
                                                                                                                                        Цитата ViktorXP @
                                                                                                                                        а в дроиде и впрямь нет архитектуры на подобие симбии? это ведь логично и удобно

                                                                                                                                        ты так говоришь, как будто все знают архитектуру симбы
                                                                                                                                        Цитата jack128 @
                                                                                                                                        Просто терь и Embarcadero додумалась, что это не плохо

                                                                                                                                        RAD 2009. Generics.Collections, Generics.Defaults...

                                                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                          Цитата Fr0sT @
                                                                                                                                          Мб, на FP можно под нее писать?

                                                                                                                                          он не полноценно ее поддерживает.
                                                                                                                                          Цитата Fr0sT @
                                                                                                                                          А вот создателям она неинтересна. Соответственно через пару лет сдохнет. Кому охота делать ее поддержку?

                                                                                                                                          Врпинципи все на это указывает. но некоторые нюансы меня смущают.
                                                                                                                                          1. мелкософт продолжает выпускать новые версии сильвера (возможно еще что то я спецом ничего не искал) и для симбии (возможно и для совместимости. но лично я вообще ни разу не видел сайта под мобилу с использованием сильвера.)
                                                                                                                                          2.нокиа полностью закрыла сайт симбии с припиской что он начнет работать в следующем году и что сейчас ведутся работы по переписыванию симбии. и симбия станет полностью опенсорсная (хотя я и раньше так думал. но возможно я чего то не знал)

                                                                                                                                          то что разогнали всех тех разработчиков было правильно. ибо столько крыворуких там было (за столько лет немогли нормально ее сделать. вон дроид и то быстрее справился). я понимаю что исправлять всегда труднее чем писать новое. но их там было много. даже если каждому дать исправлять по одной кнопке то за месяц они бы точно справились. (хотя бы такие банальные приколы как в одном месте есть кинетическая прокрутка а в других ее нет.)

                                                                                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                          Сообщение отредактировано: ViktorXP -
                                                                                                                                            Цитата Fr0sT @
                                                                                                                                            RAD 2009. Generics.Collections, Generics.Defaults...

                                                                                                                                            угу, два модуля - это круто. А IOUtils/Character/Diagnostics и тд - назвали по старому. ну и само наименование: "Generics.Collections" - почему деталь реализации (generics) вынесена в первую часть названия??

                                                                                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                              да он ща в обще в неймспейсе system находится.
                                                                                                                                              кстати прикол: пишешь System точка, показывает все что привязано в ней. пишешь Generics и по всей логике он должен был показать все что лежит там, но облом.

                                                                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                              Сообщение отредактировано: ViktorXP -
                                                                                                                                                Цитата ViktorXP @
                                                                                                                                                пишешь Generics и по всей логике он должен был показать все что лежит там, но облом

                                                                                                                                                Вот об этом я и писал, когда говорил, что подстановка не пашет. С Winapi та же шняга.

                                                                                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                  Цитата ViktorXP @
                                                                                                                                                  да он ща в обще в неймспейсе system находится.

                                                                                                                                                  Ну если ембаркадеро все так же "заимствует" идеи из .NET то generic колекции должны находится в System.Collections.Generics , а legacy колекции в System.Collections

                                                                                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                    вчера обнаружил. они дали возможность привязывать свой манифест. это круто. а то было немного не удобно привязывать вистовский манифест (сразу вспоминалась история с D5-D7 и ресурсами)
                                                                                                                                                    и у прогресс бара сделали возможность стиля Marquee :). теперь не нужно извращаться на WinApi

                                                                                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                      Цитата ViktorXP @
                                                                                                                                                      и у прогресс бара сделали возможность стиля Marquee
                                                                                                                                                      Это еще в 2010 было! :P

                                                                                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                        Цитата Alexander N @
                                                                                                                                                        Это еще в 2010 было!
                                                                                                                                                        хм. не заметил. (сейчас нет этой версии что бы проверить.) на один костыль меньше тянуть совместимость.

                                                                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                        Сообщение отредактировано: ViktorXP -
                                                                                                                                                          Вышла восьмая бета Пульсара (но называется почему-то Seven) - Delphi / C++ Builder Beta Seven Build 16.0.4223.41907. Куча переименований в Firemonkey, фиксы дебаггера и 50 других багфиксов

                                                                                                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                          Сообщение отредактировано: Fr0sT -
                                                                                                                                                            Цитата Fr0sT @
                                                                                                                                                            Вышла восьмая бета Пульсара (но называется почему-то Seven) - Delphi / C++ Builder Beta Seven Build 16.0.4223.41907. Куча переименований в Firemonkey, фиксы дебаггера и 50 других багфиксов


                                                                                                                                                            Нет, называется она именно восьмой:
                                                                                                                                                            Цитата
                                                                                                                                                            Delphi / C++Builder Beta Eight Build 16.0.4223.41907 is now available for download at beta.embarcadero.com in the Pulsar project.


                                                                                                                                                            а когда релиз будет? никто не знает?

                                                                                                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                              Посмотрел чейнджлог - несколько х64 багов, несколько firemonkey, пара в базовых классах. Мои все репорты так и остались... да и баг с исчезанием боковых панелей тоже не поправили

                                                                                                                                                              Добавлено
                                                                                                                                                              Цитата ych_boriss @
                                                                                                                                                              Нет, называется она именно восьмой

                                                                                                                                                              user posted image
                                                                                                                                                              Цитата ych_boriss @
                                                                                                                                                              а когда релиз будет? никто не знает?

                                                                                                                                                              Уж лучше бы не спешили, побольше багов починили бы

                                                                                                                                                              апд. Исчезла возможность задать дефолтные свойства проекта - только через сохранение и применение конфигурации, это так задумано?

                                                                                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                              Сообщение отредактировано: Fr0sT -
                                                                                                                                                                Цитата Fr0sT @
                                                                                                                                                                Мои все репорты так и остались... да и баг с исчезанием боковых панелей тоже не поправили


                                                                                                                                                                А ты разве бета-тестер? Для сообщения багов беты там специальная процедура, закрытый раздел на QC.

                                                                                                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                  Цитата CodeMonkey @
                                                                                                                                                                  А ты разве бета-тестер?

                                                                                                                                                                  Ну хз, считаюсь ли бета-тестером или нет, но репорты на 16-ю версию компайлера вижу. А "свои репорты" - имел в виду те, о которых сообщал раньше. Они меня, само собой, больше всего интересуют.

                                                                                                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                    а вы видели какие лехкие exe файлы она создает? + несмотря на то что не стоит птички "собирать для удаленного отладчика" она всеравно собирает с rsm файлом.

                                                                                                                                                                    Добавлено
                                                                                                                                                                    + прикол произошол.
                                                                                                                                                                    при удалении компонента вывалилось окно о крахе. ну и предложила мне отправить отчет. отправил. дало ссылку где можно посмотреть результат. где написано:
                                                                                                                                                                    ExpandedWrap disabled
                                                                                                                                                                      Project:  Delphi.Net
                                                                                                                                                                      Version:  16.0
                                                                                                                                                                    После такого только валериана поможет :D

                                                                                                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                    Сообщение отредактировано: ViktorXP -
                                                                                                                                                                      Девятую бету подогнали)
                                                                                                                                                                      Список багфиксов на этот раз довольно внушительный. Для себя отметил:
                                                                                                                                                                      * MainForm's TDataSource component can not reference Data Module's TDataSet component
                                                                                                                                                                      * TCustomMemoryStream - 32 bit limitations
                                                                                                                                                                      * Allow procedure/function declarations to specify their entry point code alignment - любопытно, что они там сделали
                                                                                                                                                                      * Winsock.pas needs to be updated to Winsock 2.2

                                                                                                                                                                      Добавлено
                                                                                                                                                                      P.S. В акции зарегился, вдруг повезёт :)
                                                                                                                                                                      Эх, жаль на world tour не попадаю...

                                                                                                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                        О том, что есть в XE2, и о Firemonkey в частности: RAD STUDIO XE2: Launch Event Report

                                                                                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                          Тыц.

                                                                                                                                                                          Цитата
                                                                                                                                                                          iOS support for native code FireMonkey apps !! – Yes folks – use Delphi to build iPhone and iPad apps that even Steve Jobs will be happy to have in his Store!
                                                                                                                                                                          Native Android apps – using PhoneGap in RadPHP
                                                                                                                                                                          Native Android apps – to come in the future for Delphi (as well as Linux)
                                                                                                                                                                          DataSnap client proxy generation – for Android, .NET, Objective-C, Blackberry, iOS etc etc


                                                                                                                                                                          Т.е. iOS, включая iPad и iPhone - уже сейчас в Native.
                                                                                                                                                                          Android - уже сейчас, но из под RadPHP. И он же является прицелом для реализации под Delphi.

                                                                                                                                                                          Кстати:
                                                                                                                                                                          Цитата
                                                                                                                                                                          Starter Edition will be available right from the start along with Pro, Enterprise and Architect.
                                                                                                                                                                          ALL platforms supported by the cross-platform capabilities will be in ALL editions, including Starter!


                                                                                                                                                                          Ещё кстати: на конфу 13-го сентября кто-то идёт?

                                                                                                                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                            Цитата CodeMonkey @
                                                                                                                                                                            Native Android - уже сейчас, но из под RadPHP.

                                                                                                                                                                            ))))
                                                                                                                                                                            Это просто сайт. немного оптимизированы под маленький дисплей. но это не нативный код. это php/html/js посему заявлять что они могут писать приложения под айфонь я бы не стал (ибо с тойже легкостю я могу взять блокнот и сказать что он пишет нативные приложения под симбию. и при этом совершенно спокойно верстать html странички под ее)

                                                                                                                                                                            хотя может я чето не понял в ихней идеи и они в хтмл компилируют сишные вставки.

                                                                                                                                                                            только что опять попробовал поискать sdk андроида и нашол. нормальный сишный sdk. значит все таки под их можно писать на сишке. а раньше не находил. и на всех блогах говорили что только на джаве.

                                                                                                                                                                            Добавлено
                                                                                                                                                                            я кстате так и не понял. чей они компилятор x64/iSO используют. свой или freepascal?

                                                                                                                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                              Цитата ViktorXP @
                                                                                                                                                                              Это просто сайт. немного оптимизированы под маленький дисплей. но это не нативный код.


                                                                                                                                                                              Во-первых, модифицировать цитату - не кошерно.

                                                                                                                                                                              Во-вторых, там есть доступ к Native API. Как я понимаю, именно это имелось в виду по ссылке.

                                                                                                                                                                              Цитата ViktorXP @
                                                                                                                                                                              заявлять что они могут писать приложения под айфонь я бы не стал


                                                                                                                                                                              Я не очень в курсе, но на iPhone/iPad - iOS же стоит? А под iOS native DXE2 пишет.

                                                                                                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                Цитата CodeMonkey @
                                                                                                                                                                                Во-первых, модифицировать цитату - не кошерно.

                                                                                                                                                                                да это еще на их сайте написано. (хм. я чето подумал что я плохо сцетировал и добавил надпись. звиняюсь. спать надо больше и меньше работать по ночам)

                                                                                                                                                                                Цитата CodeMonkey @
                                                                                                                                                                                Я не очень в курсе, но на iPhone/iPad - iOS же стоит?

                                                                                                                                                                                и опять таки они пишут что могут ща писать приложения на айфон.

                                                                                                                                                                                пс. кстати они вместе с радпхп еще и sdk, джаву и апач предоставляют. и не единого примера нововведений. хотя может где то глубоко внедрях папки simples лежит. нужно будет сею папку перековырять. (в xe2 удобнее в этом плане. они дают их качать отдельно)

                                                                                                                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                  Цитата ViktorXP @
                                                                                                                                                                                  значит все таки под их можно писать на сишке. а раньше не находил. и на всех блогах говорили что только на джаве.

                                                                                                                                                                                  Там, насколько я знаю, так устроено: на сях пишутся сервисы (не имеют доступа к гую), а гуевые - на джаве

                                                                                                                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                    нашел недостаток в неймспейсах (по крайне мере не удобно).

                                                                                                                                                                                    ExpandedWrap disabled
                                                                                                                                                                                      uses
                                                                                                                                                                                        WinApi.Windows;
                                                                                                                                                                                       
                                                                                                                                                                                      .....
                                                                                                                                                                                      var
                                                                                                                                                                                        Param1: WinApi.Windows.TPoint; // норма
                                                                                                                                                                                        Param1: Windows.TPoint; // ошибка

                                                                                                                                                                                    ExpandedWrap disabled
                                                                                                                                                                                      uses
                                                                                                                                                                                        Windows;
                                                                                                                                                                                       
                                                                                                                                                                                      .....
                                                                                                                                                                                      var
                                                                                                                                                                                        Param1: WinApi.Windows.TPoint; // ошибка
                                                                                                                                                                                        Param1: Windows.TPoint; // норма

                                                                                                                                                                                    То есть от приставки "WinApi" зависит логика объявления типа.

                                                                                                                                                                                    Добавлено
                                                                                                                                                                                    логически то это все правильно. но писать в коде WinApi.Windows.TPoint уж очень неудобно, и среда в коде вообще с неймспейсами плохо работает (вообще не показывает типы)

                                                                                                                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                      Цитата ViktorXP @
                                                                                                                                                                                      логически то это все правильно

                                                                                                                                                                                      А мне не понятно, почему "логически - это правельно" ?? Поясни, пжлста

                                                                                                                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                        По-моему, это баг.

                                                                                                                                                                                        В правилах разрешения имён явно сказано, что при объявлении

                                                                                                                                                                                        ExpandedWrap disabled
                                                                                                                                                                                          uses
                                                                                                                                                                                            WinApi.Windows;


                                                                                                                                                                                        Windows.TPoint должно разрешаться правильно:

                                                                                                                                                                                        Цитата
                                                                                                                                                                                        The following Writeln statements are equivalent:

                                                                                                                                                                                        ExpandedWrap disabled
                                                                                                                                                                                          uses MyCompany.Libs.Unit2;
                                                                                                                                                                                           
                                                                                                                                                                                          begin
                                                                                                                                                                                            Writeln(MyCompany.Libs.Unit2.SomeString);
                                                                                                                                                                                            Writeln(SomeString);
                                                                                                                                                                                          end.


                                                                                                                                                                                        На QC сообщай.

                                                                                                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                          ExpandedWrap disabled
                                                                                                                                                                                            А мне не понятно, почему "логически - это правельно" ?? Поясни, пжлста
                                                                                                                                                                                          ибо модуль winapi.windows называется. посему если не учитывать пространственные имена то среда это видит как одно целое имя.

                                                                                                                                                                                          Добавлено
                                                                                                                                                                                          Цитата
                                                                                                                                                                                          На QC сообщай.

                                                                                                                                                                                          вечером напишу им. а то ща на работе.

                                                                                                                                                                                          Добавлено
                                                                                                                                                                                          Цитата CodeMonkey @
                                                                                                                                                                                          По-моему, это баг.

                                                                                                                                                                                          нет. там ведь явно показано в примере
                                                                                                                                                                                          ExpandedWrap disabled
                                                                                                                                                                                            Writeln(Unit2.SomeString);       // ERROR!
                                                                                                                                                                                            Writeln(Libs.Unit2.SomeString);  // ERROR!
                                                                                                                                                                                            Writeln(MyCompany.Libs.Unit2.SomeString);      // Correct.
                                                                                                                                                                                            Writeln(SomeString);                           // Correct.


                                                                                                                                                                                          Добавлено
                                                                                                                                                                                          блин. а смысл тогда пространственных имен если ими только модули нарекаются.

                                                                                                                                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                            А, точно, не так прочитал.

                                                                                                                                                                                            Тогда всё верно.

                                                                                                                                                                                            Зато TPoint нормально разрешится.

                                                                                                                                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                              но как разрулить ситуацию с двумя одинаковыми типами? переставлять местами модули? или указывать полное имя модуля? это тупо

                                                                                                                                                                                              Добавлено
                                                                                                                                                                                              это приведет к тому что проще указать Windows нежели WinApi.Windows. ибо имя короче, а разруливать однотипные имена проще.

                                                                                                                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                Цитата ViktorXP @
                                                                                                                                                                                                это приведет к тому что проще указать Windows нежели WinApi.Windows


                                                                                                                                                                                                Гм.

                                                                                                                                                                                                И указывать TPoint проще, чем Windows.TPoint.

                                                                                                                                                                                                Кто ж спорит.

                                                                                                                                                                                                А ты хотел, чтобы полноквалифицированное имя было бы проще указывать, чем короткое? И как же это так?

                                                                                                                                                                                                Цитата
                                                                                                                                                                                                но как разрулить ситуацию с двумя одинаковыми типами?


                                                                                                                                                                                                Да как и раньше:
                                                                                                                                                                                                1). Выбрать основное пространство/модуль.
                                                                                                                                                                                                а). Полноквалифицированное имя для вспомогательного идентификатора, короткое - для основного.
                                                                                                                                                                                                б). Псевдоним для вспомогательного идентификатора.

                                                                                                                                                                                                2). Не выбирать.
                                                                                                                                                                                                а). Полноквалифицированные имена (оба).
                                                                                                                                                                                                б). Псевдонимы на оба типа.

                                                                                                                                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                  да при таких раскладах смысл неймспейса пропадает. ибо для чего он еще нужен кроме как удобно найменовать модуль? это и раньше сделать можно было. и работало бы даже удобнее. ибо он не считал бы WinApi пространственным именем, а WinApi.Windows видел как неразделимое имя модуля. что при вело бы к нормальной работе выпадающего списка с типами. а ща оно глючит ибо не видит дальше одноуровнего пространственного имени

                                                                                                                                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                  Сообщение отредактировано: ViktorXP -
                                                                                                                                                                                                    блин. FireMonkey умеет работать только с битмапом. при этом нельзя включить транспарен у контролов. нельзя загрузить иконку на кнопку.
                                                                                                                                                                                                    и если рисуешь линию то нужно учитывать еще пол пикселя (иначе идет отрисовка между двумя пикселями что приводит до утолщения линии).
                                                                                                                                                                                                    при этом делфя постоянно глючить и перестает нормально работать с fm компонентами. редактор кода вообще сходит сума, и начинает себя вести не предсказуемо (ругается там где ошибки вообще нет. и перестает ругаться на это место только после перезапуска всей студии. отваливаются горячие клавиши и кодекомплит, начинают работать только после ребилда или перезапуска студии)

                                                                                                                                                                                                    и очень часто приходится писать что то наподобие
                                                                                                                                                                                                    ExpandedWrap disabled
                                                                                                                                                                                                      Canvas.Fill.Kind := TBrushKind.bkSolid;

                                                                                                                                                                                                    вместо
                                                                                                                                                                                                    ExpandedWrap disabled
                                                                                                                                                                                                      Canvas.Fill.Kind := bkSolid;
                                                                                                                                                                                                    ибо оно тупо не видит bkSolid

                                                                                                                                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                      ViktorXP
                                                                                                                                                                                                      а презентация в Киеве то будет
                                                                                                                                                                                                      пруф

                                                                                                                                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                        Это неплохо. Обязательно буду если они решатся ее провести.

                                                                                                                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                          Dот стоило только вчера поставить бету 9, как подогнали бету 10.
                                                                                                                                                                                                          Только багфиксы, ничего нового; фиксы в основном по FM, дебуггеру и проблемам на х64.

                                                                                                                                                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                            Цитата Fr0sT @
                                                                                                                                                                                                            дебуггеру и проблемам на х64.

                                                                                                                                                                                                            круть. а то ide страшно лагала на x64

                                                                                                                                                                                                            Добавлено
                                                                                                                                                                                                            надо будет сегодня вечером поставить

                                                                                                                                                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                              Компилятор под 64 бита сделали свой, родной.
                                                                                                                                                                                                              Вот только компилятор весьма корявый, еще и оптимизатор компилятора для 64-бит пока отсутствует.
                                                                                                                                                                                                              По моим наблюдениям 64-битные дельфийские программы работают значительно медленнее 32-битных. На QC куча репортов по поводу оптимизации компилятора, которые переведены на следующий релиз. Увы, пока насладиться 64-битами не выйдет, можно считать, что компилятор только для ознакомления и ковыряния. В общем, имхо, аналогичная ситуация как с дженериками на 2009-й дельфе. Ждем XE2 :)

                                                                                                                                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                              Сообщение отредактировано: [S]mike -
                                                                                                                                                                                                                Это хорошо что свой. пусть и корявинький (подправить всегда успеют), но свой.

                                                                                                                                                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                  А, еще забыл. С Extended полная лажа, просто перекомпилировать код не удастся. У 64-битного компилятора Extended аналогичен Double со всеми вытекающими...

                                                                                                                                                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                    Цитата ViktorXP @
                                                                                                                                                                                                                    при этом делфя постоянно глючить и перестает нормально работать с fm компонентами. редактор кода вообще сходит сума, и начинает себя вести не предсказуемо

                                                                                                                                                                                                                    При VCL разработке такого не наблюдается. что же они такое делают когда проектируешь FM

                                                                                                                                                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                      ViktorXP, ты хоть не под виртуалкой тестишь? Вроде я такого не наблюдал, на Висте с влюченным Aero нормально. Хотя я по FireMonkey только примеры смотрел.

                                                                                                                                                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                        не. на хостовой системе.

                                                                                                                                                                                                                        Добавлено
                                                                                                                                                                                                                        я не просто тестю на их примеры, а решил написать маленькие проекты.( с написанием компонента, юзанием интерфейсов, джинериков и работы с dll)

                                                                                                                                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                          Под виртуалкой FM совершенно неюзабельно, ага. Что, кстати, не есть гут.

                                                                                                                                                                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                            надо будет попробовать что же такое с ней происходит под виртуалкой. но нужно учитывать что весь интерфейс FM выводится через DirectX. посему в виртуалке как минимум нужно поставить птичку что бы юзала сей вывод (сею птичку уже все имеют. хотя насчет VirtualPC не помню)

                                                                                                                                                                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                              Цитата ViktorXP @
                                                                                                                                                                                                                              надо будет попробовать что же такое с ней происходит под виртуалкой. но нужно учитывать что весь интерфейс FM выводится через DirectX.

                                                                                                                                                                                                                              Четко написано, что FM не будет ничего выводить без аппаратной поддержки.

                                                                                                                                                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                VirtualBox вроде как эмулирует эту поддержку. В любом случае как-то нехорошо, что проги будут предъявлять особенные требования к железу. Это всё-таки не 3Д моделирование.

                                                                                                                                                                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                  Цитата Fr0sT @
                                                                                                                                                                                                                                  В любом случае как-то нехорошо, что проги будут предъявлять особенные требования к железу


                                                                                                                                                                                                                                  FM - GPU-powered. Это из определения библиотеки.

                                                                                                                                                                                                                                  Но FM не обязателен для разработки. Это опция. Можно использовать что-то иное.

                                                                                                                                                                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                    Цитата CodeMonkey @
                                                                                                                                                                                                                                    Но FM не обязателен для разработки. Это опция. Можно использовать что-то иное.

                                                                                                                                                                                                                                    Это единственное средство, которое на Д позволит делать кросс-платформу => если будет выбор, делать кросс-платформу или win-only, ответ очевиден => ФМ будет широко использоваться => виртуалки в пролёте :(

                                                                                                                                                                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                      Это единственное средство которое вообще позволяет собирать под мак.
                                                                                                                                                                                                                                      Цитата Fr0sT @
                                                                                                                                                                                                                                      В любом случае как-то нехорошо, что проги будут предъявлять особенные требования к железу.

                                                                                                                                                                                                                                      Это нормально. С учетом мака по другому не получится.

                                                                                                                                                                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                        Ну, FPC то вроде бы на родной API садится. Понятное дело, что если юзаешь родной API - это чертова уйма несовместимостей и компромиссов, и легче сделать свое с нуля, но такая критичность к железу всё-таки не радует. Интересно, а на удаленные сеансы это тоже распространяется?

                                                                                                                                                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                          эм... FM это такой же набор компонентов как и VCL только другой. только в отличии от второго FM выводит все через DX, что позволяет делать "красивые" и "живые" интерфейсы (и главное исчезает проблема артефактов и моргания). в любом случаи они будут юзать API самой оси (также как и VCL, которая является оболочкой к WinApi. (и не надо тут же вспоминать DevExpress и ему подобные, речь не о том))
                                                                                                                                                                                                                                          ты видел на каком железе мак работает? и там все движется и плавает. я так и не нашел птичку как все это выключить (хотя не сильно старался)

                                                                                                                                                                                                                                          Добавлено
                                                                                                                                                                                                                                          Цитата Fr0sT @
                                                                                                                                                                                                                                          Это единственное средство, которое на Д позволит делать кросс-платформу

                                                                                                                                                                                                                                          самой кросплатформенности нет (такой как это есть в яве). есть кросс-код.(типа сишной QT)

                                                                                                                                                                                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                          Сообщение отредактировано: ViktorXP -
                                                                                                                                                                                                                                            ViktorXP, я имел в виду API контролов, а не абстрактный графический API.

                                                                                                                                                                                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                              Цитата Fr0sT @
                                                                                                                                                                                                                                              я имел в виду API контролов

                                                                                                                                                                                                                                              что ты под этим имеешь ввиду?

                                                                                                                                                                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                ViktorXP, CreateWindow, SetWindowStyle и т.д.

                                                                                                                                                                                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                  а какая разница что ты создашь визуальный объект через CreateWondows или ты создашь полигон в 3d. и в одном и во втором случаи пользователь будет видеть одно и тоже.

                                                                                                                                                                                                                                                  в VCL есть компонент TControl который не создается через CreateWindows но темнемения он имеет визуальное отображение.

                                                                                                                                                                                                                                                  и тут не надо забывать про всякие девекспресы и скины. которые делают отрисовку под себя (посути вся логика отрисовки стандартного побоку).

                                                                                                                                                                                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                    ViktorXP, разница в том, что вся виндовая парадигма "все является окном" летит в тартарары. А это - невозможность выцепить контрол на чужой проге, большие проблемы со скринридерами и т.д.

                                                                                                                                                                                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                      Цитата Fr0sT @
                                                                                                                                                                                                                                                      большие проблемы со скринридерами и т.д.


                                                                                                                                                                                                                                                      Кстати, в Windows есть Acessibility API, который (вроде как) позволяет с этим бороться. Но это надо, чтобы фреймворк это поддерживал.

                                                                                                                                                                                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                        Цитата Fr0sT @
                                                                                                                                                                                                                                                        разница в том, что вся виндовая парадигма "все является окном" летит в тартарары.
                                                                                                                                                                                                                                                        а в макак как с этим дело? кто то вообще смотрел его sdk? а он вообще хоть есть?

                                                                                                                                                                                                                                                        Добавлено
                                                                                                                                                                                                                                                        пс. никто тебе не запрещает работать на впрямую через api ни в одной из систем. FM это визуальные компоненты, не более того.

                                                                                                                                                                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                          Цитата ViktorXP @
                                                                                                                                                                                                                                                          а в макак как с этим дело? кто то вообще смотрел его sdk? а он вообще хоть есть?

                                                                                                                                                                                                                                                          СДК точно есть, да и интерфейс ихний даже имя имеет - cocoa. То же для никсов, только там для каждого оконного менеджера АПИ разные.
                                                                                                                                                                                                                                                          Цитата ViktorXP @
                                                                                                                                                                                                                                                          никто тебе не запрещает работать на впрямую через api ни в одной из систем

                                                                                                                                                                                                                                                          Благодарствую, что дозволили, боярин :)

                                                                                                                                                                                                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                            кстати такой подход даже лучше нежели через CreateWindow ибо можно полностью контролировать окно от начала до конца. только нужно что бы они по исправляли косяки в FM (самое большее что меня повергло так это то что они заблочили конструктор у формы.). а то что в твое окно больше никто не полезет это разве плохо?

                                                                                                                                                                                                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                              Цитата ViktorXP @
                                                                                                                                                                                                                                                              а то что в твое окно больше никто не полезет это разве плохо?

                                                                                                                                                                                                                                                              Случаи разные бывают.
                                                                                                                                                                                                                                                              Например: есть прога по типу браузера. Отображает некую длинную страницу с картинками, таблицами и прочей красивостью. Юзер хочет сохранить всё это в виде картинки. Запускает скринграббер в режиме прокрутки, и... обламывается. Потому что скринграбберу тупо некому слать WM_SCROLL. В бешенстве изломав клавиатуру, юзер удаляет прогу, очищает корзину, форматирует хард и клянется никогда больше не иметь дело с её автором.
                                                                                                                                                                                                                                                              Да, можно придумать на этот пример кучу возражений, но суть, думаю, ясна.

                                                                                                                                                                                                                                                              Тем не менее, я также не спорю, что реализованный с нуля интерфейс решает нереальную гору проблем с совместимостью. Однако есть немалое количество людей, которым подавай не какой-то там раскрашенный, а обязательно нативный вид программ. Что, в общем-то, вполне понятно: единая схема для всех приложений, одна настройка отражается сразу на всех окнах - огромный плюс.

                                                                                                                                                                                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                Вышла Бета 11.

                                                                                                                                                                                                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                  Мда, а список багфиксов недоступен - сервер выдает ошибку. Придется ждать, пока починят

                                                                                                                                                                                                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                    Пишут, что 164 фикса. Правда те баги, которые меня интересуют и которые я репортил, пока, вроде, не пофиксили.

                                                                                                                                                                                                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                      О, починили. Много фиксов дебуггера, компилятора и ФМ.

                                                                                                                                                                                                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                        Никогда не имел дела с вебинарами, это потом можно будет скачать в виде файла или посмотреть в записи?

                                                                                                                                                                                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                          Кто-нибудь может просто и доходчиво объяснить, как с помощью этой новой студии писать и под винду, и под мак? Если FireMonkey это только интерфейс, а для мака все равно нужно использовать IDE на маке, какой в этом смысл, код-то весь разный будет? В общем, избавьте из каши в голове плз.

                                                                                                                                                                                                                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                            Цитата Fr0sT @
                                                                                                                                                                                                                                                                            Никогда не имел дела с вебинарами, это потом можно будет скачать в виде файла или посмотреть в записи?
                                                                                                                                                                                                                                                                            Когда то это было без проблем. теперь это у ембаркадеровцев как то по дебильному сделано. так как не известно где они лежат и если идти по старой ссылки то там предлагается регится на вебинар, хотя он уже прошел

                                                                                                                                                                                                                                                                            Добавлено
                                                                                                                                                                                                                                                                            shershen. создаешь FireMonkey проект. добавляешь платформу iOS и пере собираешь. все.

                                                                                                                                                                                                                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                              Цитата ViktorXP @
                                                                                                                                                                                                                                                                              создаешь FireMonkey проект. добавляешь платформу iOS и пере собираешь. все.

                                                                                                                                                                                                                                                                              и программа написанная под винду будет работать на маке? :-О

                                                                                                                                                                                                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                если ты не будешь привязываться к системе то да.
                                                                                                                                                                                                                                                                                там ограничения появляются. например нельзя юзать модуль Windows и тд.

                                                                                                                                                                                                                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                  Так вот вопрос и стоит, что делать, если "привязываться к системе"? Нельзя же написать серьезную программу и не вызвать ни одной WinApi функции.

                                                                                                                                                                                                                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                    Цитата shershen @
                                                                                                                                                                                                                                                                                    Так вот вопрос и стоит, что делать, если "привязываться к системе"? Нельзя же написать серьезную программу и не вызвать ни одной WinApi функции.
                                                                                                                                                                                                                                                                                    Почему? можно.
                                                                                                                                                                                                                                                                                    Для каких нужд ты ее будешь вызвать?
                                                                                                                                                                                                                                                                                    для отрисовки? так тут уже все совсем по другому.
                                                                                                                                                                                                                                                                                    для работы с реестром? так в маке нет реестра.
                                                                                                                                                                                                                                                                                    для работы с файлом? есть FileOpen/FileCreate/FileXXXXX
                                                                                                                                                                                                                                                                                    Так для чего тебе WinApi? если ты все таки придумаешь для чего то difine еще никто не отменял.

                                                                                                                                                                                                                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                      Ну понятно. По сути, чтобы перевести готовую вин-программу на мак, нужно заново ее написать на FM. Жаль, я наивно верил в чудо) Спасибо за разъяснения.

                                                                                                                                                                                                                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                        по большому счету да. просто пересобрать не получится.

                                                                                                                                                                                                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                          А кстати, если софтина использует обычный VCL компонент, сторонний, то вариантов ее перенести нет?

                                                                                                                                                                                                                                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                            Нет.

                                                                                                                                                                                                                                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                            Сообщение отредактировано: ViktorXP -
                                                                                                                                                                                                                                                                                              При желании можно попробовать. имена у компонентов одинаковые. но я думаю легче будет новый создать.
                                                                                                                                                                                                                                                                                              а если сторонний то вообще торба. ибо пока производитель не выпустит FireMinkey аналог то он него придется отказаться.

                                                                                                                                                                                                                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                              Сообщение отредактировано: ViktorXP -
                                                                                                                                                                                                                                                                                                В таком случае, непонятна такая эйфория вокруг FM. Было бы интересно послушать, может кто-нибудь расскажет о своих планах использования FM? Мне видится его ограниченное использование для новых не очень сложных проектов, но с удовольствием послушаю другие мнения. :)

                                                                                                                                                                                                                                                                                                PS. Естественно, я говорю с точки зрения Win-разработчика, не щупавшего мак :)

                                                                                                                                                                                                                                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                Сообщение отредактировано: shershen -
                                                                                                                                                                                                                                                                                                  shershen, если ты будешь писать только под винду то можешь оставатся на VCL иначе пересаживайся.
                                                                                                                                                                                                                                                                                                  на FireMonkey можно за пять минут набросать окно 3DMax-а. и это уже не будет похоже на простенький проект.
                                                                                                                                                                                                                                                                                                  пс. хотя для меня времени нужно побольше. я пока разобрался что к чему. и студия в этом пока мало помогает.

                                                                                                                                                                                                                                                                                                  Добавлено
                                                                                                                                                                                                                                                                                                  VCL они тоже подпилили. теперь там меньше ошибок (я так думаю).

                                                                                                                                                                                                                                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                    Цитата shershen @
                                                                                                                                                                                                                                                                                                    Мне видится его ограниченное использование для новых не очень сложных проектов, но с удовольствием послушаю другие мнения. :)

                                                                                                                                                                                                                                                                                                    Если посмотреть на все кроссплатформенные приложения под мак и винду, то они используют какой-то кроссплатформенный набор виджетов вроде Qt. Или это совсем разные проекты (Skype).

                                                                                                                                                                                                                                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                      понемногу начал в езжать в логику FireMonkey. на нем такие вещи можно творить. менять абсолютно все (AlphaSkin отдыхает). при желании даже интерфейс DevExpress-са можно клонировать.
                                                                                                                                                                                                                                                                                                      нашел как картинку на кнопку тыкать (это не очевидно и немного не удобно но можно. по идеи эту же настройку можно присвоить и другой кнопке но пока это го не делал. не дошел).

                                                                                                                                                                                                                                                                                                      Добавлено
                                                                                                                                                                                                                                                                                                      вот только жалко что нельзя объединить стекло и FireMonkey :(

                                                                                                                                                                                                                                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                        Немало фиксов, включая хелп, стили (надо будет пощупать эту фичу!), БД и много ФМ. Также есть надежда, что пофиксили тупой глюк с пропаданием служебных окошек, если их из состояния "сворачиваемое" попытаться перевести в "прилепленное"

                                                                                                                                                                                                                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                          Цитата Fr0sT @
                                                                                                                                                                                                                                                                                                          (надо будет пощупать эту фичу!)

                                                                                                                                                                                                                                                                                                          под уже существующие меняй что хочешь, но я не понял как создать свой. и демки нет :(

                                                                                                                                                                                                                                                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                            ViktorXP, а видел проги в /bin? Как раз демка и редактор стилей. Кажется, создание там было.

                                                                                                                                                                                                                                                                                                            Добавлено
                                                                                                                                                                                                                                                                                                            bin\VclStyleDesigner.exe, но создание там реализовано довольно криво - всегдадается на растерзание стандартный стиль. Причем если удалить картинку со всеми глифами, прога этого не поймет и будет выдавать AV на каждое обращение.

                                                                                                                                                                                                                                                                                                            ЗЫ. Баг с док-окошками в самом деле починили! А вот с {$IF} и кодинг-инструментами остался :(

                                                                                                                                                                                                                                                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                            Сообщение отредактировано: Fr0sT -
                                                                                                                                                                                                                                                                                                              но там тоже нельзя создать стиль под новый компонент. имеется ввиду под свой собственный компонент.

                                                                                                                                                                                                                                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                Ааа, в этом смысле... да по идее должен быть способ, иначе смысл этой фичи будет не больше чем от тем Виндов без манифеста

                                                                                                                                                                                                                                                                                                                P.S. Только у меня не логинится на http://qc.embarcadero.com ?

                                                                                                                                                                                                                                                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                Сообщение отредактировано: Fr0sT -
                                                                                                                                                                                                                                                                                                                  а я пользуюсь программой. как то влом на сайт заходить.

                                                                                                                                                                                                                                                                                                                  Добавлено
                                                                                                                                                                                                                                                                                                                  опытным путем нашел, что бы включить отрисовку без директа достаточно поменять флаги
                                                                                                                                                                                                                                                                                                                  ExpandedWrap disabled
                                                                                                                                                                                                                                                                                                                    GlobalUseDirect2DSoftware := true;
                                                                                                                                                                                                                                                                                                                    GlobalUseDirect2D := false;

                                                                                                                                                                                                                                                                                                                  но нужно немного стили подправить. удалить из их GlowEffect
                                                                                                                                                                                                                                                                                                                  он юзаеют Direct (библа d3d9.dll)

                                                                                                                                                                                                                                                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                    Йее! Но как-то тихо выпустили, ни тебе оповещений на мыло, ничего. Чейнджлога тоже не видать, похоже, просто взяли b12 и зарелизили.

                                                                                                                                                                                                                                                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                      да. это тот самый кандидат.

                                                                                                                                                                                                                                                                                                                      Добавлено
                                                                                                                                                                                                                                                                                                                      так только сегодня его и зарелизили. посему оповещение еще не пришло. еще не успели

                                                                                                                                                                                                                                                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                        Официальный анонс, наверное, ещё будет. Просто релиз - это же не пятиминутное дело. Просто некоторые особо пронырливые уже нашли ссылочки :)

                                                                                                                                                                                                                                                                                                                        Добавлено
                                                                                                                                                                                                                                                                                                                        P.S. Поря создавать Новости Delphi XE 2 :lol:

                                                                                                                                                                                                                                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                          Ну список что в ней есть я и так знаю (кстати, они втихую включили и Фастрепорт, что приятно), я про чейнджлог в отличие от беты 12. Тем более что там есть пара очень мешающих багов. Ну да ладно. Будем надеяться на сервис-паки.

                                                                                                                                                                                                                                                                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                            почему в тихую? он был в бета вериях (с седьмой то точно). и где то в бета недрах сее написано было.

                                                                                                                                                                                                                                                                                                                            Добавлено
                                                                                                                                                                                                                                                                                                                            Цитата
                                                                                                                                                                                                                                                                                                                            System Requirements
                                                                                                                                                                                                                                                                                                                            Intel Pentium or compatible, 1.6GHz minimum (2GHz+ recommended)
                                                                                                                                                                                                                                                                                                                            1GB RAM (2 GB+ recommended)
                                                                                                                                                                                                                                                                                                                            3-9 GB (or more) of free disk space
                                                                                                                                                                                                                                                                                                                            0.5-1.5 GB additional temporary free space for use by the installer
                                                                                                                                                                                                                                                                                                                            Mouse or other pointing device
                                                                                                                                                                                                                                                                                                                            DVD-ROM drive (if installing from a Media Kit DVD)
                                                                                                                                                                                                                                                                                                                            1024x768 or higher resolution monitor
                                                                                                                                                                                                                                                                                                                            Color quality above 256 colors (32-bit or 16-bit is sufficient)


                                                                                                                                                                                                                                                                                                                            FireMonkey Requirements

                                                                                                                                                                                                                                                                                                                            FireMonkey development requires Delphi XE2, C++Builder XE2, or RAD Studio XE2 running on Windows.

                                                                                                                                                                                                                                                                                                                            FireMonkey applications run on multiple platforms with these requirements:

                                                                                                                                                                                                                                                                                                                            Basic Graphics Processing Unit (GPU):
                                                                                                                                                                                                                                                                                                                            For Windows development, any vendor DirectX 9.0 class or better (Pixel Shader Level 2)
                                                                                                                                                                                                                                                                                                                            For OSX and iOS development, OpenGL

                                                                                                                                                                                                                                                                                                                            Note: Qualified Macs all have a qualified GPU.
                                                                                                                                                                                                                                                                                                                            2 GB RAM or more
                                                                                                                                                                                                                                                                                                                            они еще не знают что я нашол как заставить рабатать FireMonkey без DirectX :)

                                                                                                                                                                                                                                                                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                              самое не удобное так это sdk к iOS. вчера листал справку (в бета версии), искал хоть что нибудь на IPhone и iOS и вот что нашол:
                                                                                                                                                                                                                                                                                                                              Цитата
                                                                                                                                                                                                                                                                                                                              Xcode provides the required development files from the Mac. You can install Xcode from any of the following sources:
                                                                                                                                                                                                                                                                                                                              On your "Mac OS X Install" DVD, under Optional Installs, double-click Xcode.mpkg to install Xcode on your system.
                                                                                                                                                                                                                                                                                                                              At the Mac App Store, download Xcode for free.
                                                                                                                                                                                                                                                                                                                              As a registered Apple Developer, you can download the free version of Xcode 3. To register and then download Xcode 3:
                                                                                                                                                                                                                                                                                                                              Register (free of charge) as an Apple Developer at http://developer.apple.com/programs/register/.
                                                                                                                                                                                                                                                                                                                              Go to Mac Dev Center
                                                                                                                                                                                                                                                                                                                              Click the Xcode 3 and iOS SDK 4.3 download link (Xcode 3.2.6 and iOS SDK 4.3)


                                                                                                                                                                                                                                                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                                Что-то в стандартной online справке XE2 трудно найти, что хочешь. К примеру, новая плюшка TOSVersion: http://blogs.embarcadero.com/pawelglowacki/2011/08/31/39273

                                                                                                                                                                                                                                                                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                                  http://docwiki.embarcadero.com/VCL/XE2/en/SysUtils.TOSVersion <- вот она. Если вопрос про поиск по сайту, то надо же время на индексацию новых страниц поисковиком.

                                                                                                                                                                                                                                                                                                                                  Добавлено
                                                                                                                                                                                                                                                                                                                                  http://docwiki.embarcadero.com/RADStudio/en/Unit_Names_Alphabetical_List_with_Unit_Scopes - полезный список на тему "кудыть всё делось". Замена поиску по диску.

                                                                                                                                                                                                                                                                                                                                  (может всё же разделить новости и обсуждение по темам?)

                                                                                                                                                                                                                                                                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                                    мда. они решили немного усложнить нам отладку и модификацию кода.
                                                                                                                                                                                                                                                                                                                                    В делфи есть такая потрясающая вещь что он компилирует файл даже если он не сохранен. Я довльно часто этим пользовался если мне нужно посмотреть на поведения какого то объекта и что бы упростить себе жизнь я модифицировал стандартный модуль (не сохранял. измененный он висел в редакторе открытым) и в текущий момент компилился мой модифицированный.
                                                                                                                                                                                                                                                                                                                                    также если стандартные модули реагируют на какой то дефайн то можно было этим оперировать при сборке.
                                                                                                                                                                                                                                                                                                                                    а теперь торба... такая большая и темная. я так понял что они больше никогда пересобиратся не будут.
                                                                                                                                                                                                                                                                                                                                    заметил это еще с дефайнами (они на мои дефайны тупо не реагируют). потом открыл модуль закоментил несколько строк и пересобрал, и редактор поставил точки где я закоментил. и отладчик даже показал что они выполняются.

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

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

                                                                                                                                                                                                                                                                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                                    Сообщение отредактировано: ViktorXP -
                                                                                                                                                                                                                                                                                                                                      Мда, теперь с модификацией RTL тяжко. Причем даже когда пытаюсь скомпилить стандартный модуль из ком строки, все подключаемые модули компилятся, а нужный - нет.
                                                                                                                                                                                                                                                                                                                                      ExpandedWrap disabled
                                                                                                                                                                                                                                                                                                                                        "c:\program files\rad studio\bin\dcc32.exe" -$O- -$W+ --no-config -M -B -I"c:\program files\rad studio\lib\Win32\release" -U"c:\program files\rad studio\lib\Win32\release" -E"C:\Program Files\RAD Studio\source\rtl\sys" "C:\Program Files\RAD Studio\source\rtl\sys\System.SysUtils.pas"


                                                                                                                                                                                                                                                                                                                                      Добавлено
                                                                                                                                                                                                                                                                                                                                      Удаление dcu из <OS>/release и debug не помогает - среда начинает ругаться на отсутствие файла.

                                                                                                                                                                                                                                                                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                                        я почти тоже описывал чуть выше (но без командной строки). повесил им в багрепорте. пока тихо.

                                                                                                                                                                                                                                                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                                          прикольный глюк можно в FireMonkey поймать.
                                                                                                                                                                                                                                                                                                                                          Прикреплённый файлПрикреплённый файл__________.png (178 Кбайт, скачиваний: 658)
                                                                                                                                                                                                                                                                                                                                          и это не артефакты. это реально такая отрисовка. в таких крывых компонентах даже печатать можно и и скролить. (но в скрол сложно прицелится ибо он отражается в одно месте а физически находится в другом)

                                                                                                                                                                                                                                                                                                                                          Добавлено


                                                                                                                                                                                                                                                                                                                                          Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                                            с какой версии на ХЕ2 можно обновляться?

                                                                                                                                                                                                                                                                                                                                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                                            Сообщение отредактировано: Frees -
                                                                                                                                                                                                                                                                                                                                              Frees, с 2007 и новее

                                                                                                                                                                                                                                                                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                                                Цитата ViktorXP @
                                                                                                                                                                                                                                                                                                                                                прикольный глюк можно в FireMonkey поймать.
                                                                                                                                                                                                                                                                                                                                                Посоветовали обновить драйвер. помогло. от ныне к программам на делфи нужно будет писать что бы версию драйвера юзеры обновляли :)

                                                                                                                                                                                                                                                                                                                                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                                                  а кто на FM уже игру сделал?

                                                                                                                                                                                                                                                                                                                                                  Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                                                    Поскольку сейчас плотно сижу на VS, возник глюпый вопрос об возможности нормального сосуществования RAD Studio 2010, XE и XE2 вместе (на одном, в данном случае, системном томе). Или это невозможно в принципе? Или возможно?

                                                                                                                                                                                                                                                                                                                                                    ЗЫ без VM. Просто нужно, чтобы все они три стояли на "C:\" и никак не мешали друг другу.

                                                                                                                                                                                                                                                                                                                                                    Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                                                      У меня на работе стоят вместе Delphi 7, 2010 и XE. XE2 ещё не ставил, а 2010 и XE никак друг другу не мешают. Думаю и XE2 если поставить - никаких проблем не возникнет.

                                                                                                                                                                                                                                                                                                                                                      Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                                                        у меня стоит 2007, 2010, XE, XE2 работают нормально. вот компоненты глючат (проблема с DevExpress-ом. намучился пока его нормально поставил. а все остальные работают нормально)

                                                                                                                                                                                                                                                                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                                                          Прикольное ограничение появилось.
                                                                                                                                                                                                                                                                                                                                                          Создаем форму и переименовываем ее в CustomForm (что бы тип получился TCustomForm).
                                                                                                                                                                                                                                                                                                                                                          и ide тут начинает страшно ругатся (что переименовать нельзя). помогает только выбить ее через диспетчер задач. хотя если сохранить эту форму и переименовать все через блокнот то все работает.
                                                                                                                                                                                                                                                                                                                                                            Цитата Krid @
                                                                                                                                                                                                                                                                                                                                                            возможности нормального сосуществования RAD Studio 2010, XE и XE2 вместе (на одном, в данном случае, системном томе)

                                                                                                                                                                                                                                                                                                                                                            Сами среды должны ужиться, вот с хелпом могут быть проблемы (долбаный DocExpl).
                                                                                                                                                                                                                                                                                                                                                              Респект ребятам! С нетерпением жду, когда у нас закупят лицензии. Хочется уже новенького, плюс избавиться от нескольких корявых костылей, связанных с глюками 2010.

                                                                                                                                                                                                                                                                                                                                                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                                                                вот попалась интересная штука

                                                                                                                                                                                                                                                                                                                                                                Конвертор VCL -> FireMonkey
                                                                                                                                                                                                                                                                                                                                                                  как сказали на семинаре. конвертировать не реально. а подобные простые формы будет проще по новой пересоздать.
                                                                                                                                                                                                                                                                                                                                                                    Вышел первый апдейт:
                                                                                                                                                                                                                                                                                                                                                                    http://blog.marcocantu.com/blog/delphi_xe2_update1.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+marcocantublog+%28marcocantu.blog%29

                                                                                                                                                                                                                                                                                                                                                                    Расскажите люди, что там реально-то изменилось?

                                                                                                                                                                                                                                                                                                                                                                    Добавлено
                                                                                                                                                                                                                                                                                                                                                                    Ну и конечно здесь тоже много букв написано:
                                                                                                                                                                                                                                                                                                                                                                    http://docwiki.embarcadero.com/RADStudio/en/Release_Notes_for_XE2#Please_Install_XE2_Update_1

                                                                                                                                                                                                                                                                                                                                                                    Судя по Notes, Firemonkey так пока и остаётся сыростью.
                                                                                                                                                                                                                                                                                                                                                                      Цитата Fr0sT @
                                                                                                                                                                                                                                                                                                                                                                      Респект ребятам! С нетерпением жду, когда у нас закупят лицензии. Хочется уже новенького, плюс избавиться от нескольких корявых костылей, связанных с глюками 2010.


                                                                                                                                                                                                                                                                                                                                                                      На самом деле мне кажется, что просто срок - сентябрь был установлен свыше.

                                                                                                                                                                                                                                                                                                                                                                      А доделать не успели - пустили в релиз последнюю бету. Вот теперь и доделывают.

                                                                                                                                                                                                                                                                                                                                                                      Добавлено
                                                                                                                                                                                                                                                                                                                                                                      Цитата Dimonka @
                                                                                                                                                                                                                                                                                                                                                                      Расскажите люди, что там реально-то изменилось?


                                                                                                                                                                                                                                                                                                                                                                      120 фиксов. Точного списка пока не опубликовали.

                                                                                                                                                                                                                                                                                                                                                                      Добавлено
                                                                                                                                                                                                                                                                                                                                                                      Цитата CodeMonkey @
                                                                                                                                                                                                                                                                                                                                                                      Точного списка пока не опубликовали


                                                                                                                                                                                                                                                                                                                                                                      Хотя не...

                                                                                                                                                                                                                                                                                                                                                                      Вот же он: http://edn.embarcadero.com/article/41649

                                                                                                                                                                                                                                                                                                                                                                      В чём тогда вопрос был?
                                                                                                                                                                                                                                                                                                                                                                        Цитата CodeMonkey @
                                                                                                                                                                                                                                                                                                                                                                        Вышел Update 1 для XE2: http://docwiki.embarcadero.com/RADStudio/e...ll_XE2_Update_1

                                                                                                                                                                                                                                                                                                                                                                        Ссылки: http://delphi-insider.blogspot.com/2011/09...uilder-xe2.html

                                                                                                                                                                                                                                                                                                                                                                        Фиксы: http://edn.embarcadero.com/article/41649

                                                                                                                                                                                                                                                                                                                                                                        Оперативненько. Меньше месяца - и уже 120 фиксов.


                                                                                                                                                                                                                                                                                                                                                                        А мне и релиз не понравился. Особенно Unit Scope и какая-то невнятная муть с конфигурациями проектов.

                                                                                                                                                                                                                                                                                                                                                                        Несколько своих компонентов запросто перенёс с 2010 в XE. А вот перенести их из XE в XE2 оказалось довольно-таки напряжно..

                                                                                                                                                                                                                                                                                                                                                                        Ну поменяли сигнатуры некоторых WinAPI ф-ций.. С одной стороны правильно сделали, а с другой - кучу проектов переделывать надо. Это конечно мои проблемы, но они реально зае-ли этими своими модификациями RTL/VCL :angry: Где обратная совместимость?? Даже мелкомягкие так своих клиентов/пользователей не напрягают.

                                                                                                                                                                                                                                                                                                                                                                        ЗЫ IMHO, версия сырая и в некоторых местах банально недоделанная. Пока останусь на XE.

                                                                                                                                                                                                                                                                                                                                                                        Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                                                                                                                                                                                                                                                                                                                                                          Цитата Krid @
                                                                                                                                                                                                                                                                                                                                                                          Даже мелкомягкие так своих клиентов/пользователей не напрягают.

                                                                                                                                                                                                                                                                                                                                                                          эээ... .net?

                                                                                                                                                                                                                                                                                                                                                                          Добавлено
                                                                                                                                                                                                                                                                                                                                                                          Цитата Krid @
                                                                                                                                                                                                                                                                                                                                                                          но они реально зае-ли этими своими модификациями RTL/VCL :angry: Где обратная совместимость??

                                                                                                                                                                                                                                                                                                                                                                          ну это новый этап. это как с 2007 на 2009.

                                                                                                                                                                                                                                                                                                                                                                          Добавлено
                                                                                                                                                                                                                                                                                                                                                                          Цитата Krid @
                                                                                                                                                                                                                                                                                                                                                                          ЗЫ IMHO, версия сырая и в некоторых местах банально недоделанная. Пока останусь на XE.

                                                                                                                                                                                                                                                                                                                                                                          там много исправлений в VCL. с vcl оно ведет себя стабильно, а вот при FireMonkey... когда кодишь то ощущаешь себя мартышкой с гранатой которая через каждых 10 минут само произвольно выплевывает кольцо.
                                                                                                                                                                                                                                                                                                                                                                            Цитата ViktorXP @
                                                                                                                                                                                                                                                                                                                                                                            эээ... .net?

                                                                                                                                                                                                                                                                                                                                                                            .Net - платформа, а RAD Studio - Framework. Это разные вещи.
                                                                                                                                                                                                                                                                                                                                                                              если ничего не трогать низкоуровневое. то никаких проблем. мой компонент например прекрасно перенесся с XE в XE2 (а вот что бы он заработал на 2010 немного помучатся пришлось)

                                                                                                                                                                                                                                                                                                                                                                              Добавлено
                                                                                                                                                                                                                                                                                                                                                                              пс. хотя он даже WinApi юзает. он за счет ее внедряется в окно и подменяет оконную процедуру.
                                                                                                                                                                                                                                                                                                                                                                                Ну а для меня WinAPI в XE2 и есть самая большая проблема.

                                                                                                                                                                                                                                                                                                                                                                                Например, в той же SendMessageTimeout последний параметр всегда был "var lpdwResult: DWORD". А в XE2 - это указатель (lpdwResult: PDWORD_PTR).
                                                                                                                                                                                                                                                                                                                                                                                И таких ф-ций дофига. Они поменяли сигнатуры, и из-за этого мне кучу кода переписывать надо :angry:, бо WinAPI я юзаю почти везде (в том числе и в компонентах).

                                                                                                                                                                                                                                                                                                                                                                                С одной стороны это хорошо, что они многие сигнатуры WinAPI ф-ций сделали такими же, как в VS. Но из-за этого нужно переписывать код (который в предыдущих версиях работать не будет :wall:).

                                                                                                                                                                                                                                                                                                                                                                                Ну а про Unit Scope и конфигурациях проектов я уже говорил.. Прикинь, сколько ручной работы нужно, чтобы перенести все свои проекты в XE2!

                                                                                                                                                                                                                                                                                                                                                                                Цитата ViktorXP @
                                                                                                                                                                                                                                                                                                                                                                                ну это новый этап. это как с 2007 на 2009.

                                                                                                                                                                                                                                                                                                                                                                                Я и говорю
                                                                                                                                                                                                                                                                                                                                                                                Цитата Krid @
                                                                                                                                                                                                                                                                                                                                                                                они реально зае-ли этими своими модификациями RTL/VCL
                                                                                                                                                                                                                                                                                                                                                                                :yes:

                                                                                                                                                                                                                                                                                                                                                                                Цитата ViktorXP @
                                                                                                                                                                                                                                                                                                                                                                                а вот при FireMonkey... когда кодишь то ощущаешь себя мартышкой с гранатой которая через каждых 10 минут само произвольно выплевывает кольцо

                                                                                                                                                                                                                                                                                                                                                                                А вот FireMonkey как раз порадовал. Конечно, как первый блин - немного комом получился, но в общем и целом хорошая штука, IMHO. Посмотри пример.
                                                                                                                                                                                                                                                                                                                                                                                  Цитата Krid @
                                                                                                                                                                                                                                                                                                                                                                                  Конечно, как первый блин - немного комом получился

                                                                                                                                                                                                                                                                                                                                                                                  я это понимаю. но мне не понятно почему среда ведет себя не в адеквате. при том что я пишу простой код, не связаный с FireMonkey, но в проекте FireMonkey.
                                                                                                                                                                                                                                                                                                                                                                                  сама же библиотека компонентов FireMonkey заслуживает похвал. сделана очень гибко и красиво. есть конечно недостатки, но как ты правильно заметил тут дело в блине :D
                                                                                                                                                                                                                                                                                                                                                                                    вот это не дочеты:
                                                                                                                                                                                                                                                                                                                                                                                    ExpandedWrap disabled
                                                                                                                                                                                                                                                                                                                                                                                      procedure MQEventCallbackProc(var Item: TItemRespunce; Loss: Boolean);
                                                                                                                                                                                                                                                                                                                                                                                      begin
                                                                                                                                                                                                                                                                                                                                                                                       list2.SendCallback(procedure (SENMessage: PSENMessage; var Buf: PByte; var Size: Integer)
                                                                                                                                                                                                                                                                                                                                                                                        begin
                                                                                                                                                                                                                                                                                                                                                                                          Move(Item.Buf^, Buf^, Item.Size);
                                                                                                                                                                                                                                                                                                                                                                                          Size := Item.Size;
                                                                                                                                                                                                                                                                                                                                                                                        end);
                                                                                                                                                                                                                                                                                                                                                                                      end;
                                                                                                                                                                                                                                                                                                                                                                                    При этом ругать идет
                                                                                                                                                                                                                                                                                                                                                                                    ExpandedWrap disabled
                                                                                                                                                                                                                                                                                                                                                                                      [DCC Error] UMain.pas(50): E2555 Cannot capture symbol 'Item'
                                                                                                                                                                                                                                                                                                                                                                                      [DCC Error] UMain.pas(50): E2555 Cannot capture symbol 'Item'
                                                                                                                                                                                                                                                                                                                                                                                      [DCC Error] UMain.pas(51): E2555 Cannot capture symbol 'Item'


                                                                                                                                                                                                                                                                                                                                                                                    помнится когда то тип Pointer был не совместим с типом Integer.
                                                                                                                                                                                                                                                                                                                                                                                    ExpandedWrap disabled
                                                                                                                                                                                                                                                                                                                                                                                      var
                                                                                                                                                                                                                                                                                                                                                                                       P: Pointer;
                                                                                                                                                                                                                                                                                                                                                                                       PB: PByte;
                                                                                                                                                                                                                                                                                                                                                                                       I: Integer;
                                                                                                                                                                                                                                                                                                                                                                                       
                                                                                                                                                                                                                                                                                                                                                                                       P := P+I;// по прежнему не совместимы
                                                                                                                                                                                                                                                                                                                                                                                       PB := PB+I;// работает. что не может не радовать.
                                                                                                                                                                                                                                                                                                                                                                                       
                                                                                                                                                                                                                                                                                                                                                                                       FreeAndNil(I);// а вот это жесть. и оно не ругается на это. даже не предупреждает.
                                                                                                                                                                                                                                                                                                                                                                                      Цитата ViktorXP @
                                                                                                                                                                                                                                                                                                                                                                                      FreeAndNil(I);// а вот это жесть. и оно не ругается на это. даже не предупреждает.

                                                                                                                                                                                                                                                                                                                                                                                      В 2010 так же, сам недавно столкнулся - переделал класс в запись, а Freeandnil убрать забыл. Ловил AV. Баг Репорт есть, но делать проверку не хотят (по неизвестной мне причине)
                                                                                                                                                                                                                                                                                                                                                                                      Сообщение отредактировано: Fr0sT -
                                                                                                                                                                                                                                                                                                                                                                                        О какую я ошибку выцепил. Я не сразу понял из за чего ошибка. ибо ругается оно вообще не там где ошибка.
                                                                                                                                                                                                                                                                                                                                                                                        ExpandedWrap disabled
                                                                                                                                                                                                                                                                                                                                                                                          type
                                                                                                                                                                                                                                                                                                                                                                                            TChildObject<T: record> = class(TObject)
                                                                                                                                                                                                                                                                                                                                                                                            private
                                                                                                                                                                                                                                                                                                                                                                                              type
                                                                                                                                                                                                                                                                                                                                                                                                PItem = ^TItem;
                                                                                                                                                                                                                                                                                                                                                                                                TItem = record
                                                                                                                                                                                                                                                                                                                                                                                                  Data: T;
                                                                                                                                                                                                                                                                                                                                                                                                end;
                                                                                                                                                                                                                                                                                                                                                                                                TInternalObject = class(TObject)
                                                                                                                                                                                                                                                                                                                                                                                                public
                                                                                                                                                                                                                                                                                                                                                                                                  procedure Test(P: Pointer);
                                                                                                                                                                                                                                                                                                                                                                                                end;
                                                                                                                                                                                                                                                                                                                                                                                              var
                                                                                                                                                                                                                                                                                                                                                                                                InternalObject: TInternalObject;
                                                                                                                                                                                                                                                                                                                                                                                            public
                                                                                                                                                                                                                                                                                                                                                                                              constructor Create;
                                                                                                                                                                                                                                                                                                                                                                                              destructor Destroy; override;
                                                                                                                                                                                                                                                                                                                                                                                            end;
                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                                                                                          { TChildObject<T>.TInternalObject }
                                                                                                                                                                                                                                                                                                                                                                                          procedure TChildObject<T>.TInternalObject.Test(P: Pointer);
                                                                                                                                                                                                                                                                                                                                                                                          var
                                                                                                                                                                                                                                                                                                                                                                                            Item: PItem absolute P; //F2084 Internal Error: AV06A90AD4-W00000014-1
                                                                                                                                                                                                                                                                                                                                                                                            //если
                                                                                                                                                                                                                                                                                                                                                                                            //Item: PItem; то все работает
                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                                                                                          {or:}
                                                                                                                                                                                                                                                                                                                                                                                          var
                                                                                                                                                                                                                                                                                                                                                                                            Item: PItem;
                                                                                                                                                                                                                                                                                                                                                                                            Data: PByte absolute Item; //F2084 Internal Error: AV06A90AD4-W00000014-1
                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                                                                                          begin
                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                                                                                          end;
                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                                                                                          { TChildObject<T> }
                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                                                                                          constructor TChildObject<T>.Create;
                                                                                                                                                                                                                                                                                                                                                                                          begin
                                                                                                                                                                                                                                                                                                                                                                                            InternalObject := TInternalObject.Create();
                                                                                                                                                                                                                                                                                                                                                                                          end;
                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                                                                                          destructor TChildObject<T>.Destroy;
                                                                                                                                                                                                                                                                                                                                                                                          begin
                                                                                                                                                                                                                                                                                                                                                                                            FreeAndNil(InternalObject);
                                                                                                                                                                                                                                                                                                                                                                                            inherited;
                                                                                                                                                                                                                                                                                                                                                                                          end;
                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                                                                                          type
                                                                                                                                                                                                                                                                                                                                                                                            TTestRecord = record
                                                                                                                                                                                                                                                                                                                                                                                              I: Integer;
                                                                                                                                                                                                                                                                                                                                                                                            end;
                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                                                                                          var
                                                                                                                                                                                                                                                                                                                                                                                            ChildObject: TChildObject<TTestRecord>;
                                                                                                                                                                                                                                                                                                                                                                                          begin
                                                                                                                                                                                                                                                                                                                                                                                            ChildObject := TChildObject<TTestRecord>.Create();
                                                                                                                                                                                                                                                                                                                                                                                            ChildObject.InternalObject.Test(nil);
                                                                                                                                                                                                                                                                                                                                                                                          end;


                                                                                                                                                                                                                                                                                                                                                                                        Добавлено
                                                                                                                                                                                                                                                                                                                                                                                        а у кого то Update 2 есть? интересно будет ли там это работать
                                                                                                                                                                                                                                                                                                                                                                                        Сообщение отредактировано: ViktorXP -
                                                                                                                                                                                                                                                                                                                                                                                          Цитата ViktorXP @
                                                                                                                                                                                                                                                                                                                                                                                          вот это не дочеты:
                                                                                                                                                                                                                                                                                                                                                                                          ExpandedWrap disabled
                                                                                                                                                                                                                                                                                                                                                                                            procedure MQEventCallbackProc(var Item: TItemRespunce; Loss: Boolean);
                                                                                                                                                                                                                                                                                                                                                                                            begin
                                                                                                                                                                                                                                                                                                                                                                                             list2.SendCallback(procedure (SENMessage: PSENMessage; var Buf: PByte; var Size: Integer)
                                                                                                                                                                                                                                                                                                                                                                                              begin
                                                                                                                                                                                                                                                                                                                                                                                                Move(Item.Buf^, Buf^, Item.Size);
                                                                                                                                                                                                                                                                                                                                                                                                Size := Item.Size;
                                                                                                                                                                                                                                                                                                                                                                                              end);
                                                                                                                                                                                                                                                                                                                                                                                            end;
                                                                                                                                                                                                                                                                                                                                                                                          При этом ругать идет
                                                                                                                                                                                                                                                                                                                                                                                          ExpandedWrap disabled
                                                                                                                                                                                                                                                                                                                                                                                            [DCC Error] UMain.pas(50): E2555 Cannot capture symbol 'Item'
                                                                                                                                                                                                                                                                                                                                                                                            [DCC Error] UMain.pas(50): E2555 Cannot capture symbol 'Item'
                                                                                                                                                                                                                                                                                                                                                                                            [DCC Error] UMain.pas(51): E2555 Cannot capture symbol 'Item'

                                                                                                                                                                                                                                                                                                                                                                                          А что здесь не так? var, const параметры нельзя передавать в анонимную процедуру. Объявляй локальную переменную.

                                                                                                                                                                                                                                                                                                                                                                                          Пруф:
                                                                                                                                                                                                                                                                                                                                                                                          Цитата
                                                                                                                                                                                                                                                                                                                                                                                          E2555 Cannot capture symbol '%s' (Delphi)From RAD Studio
                                                                                                                                                                                                                                                                                                                                                                                          Go Up to Error and Warning Messages (Delphi) Index


                                                                                                                                                                                                                                                                                                                                                                                          The parameter indicated in the message cannot be captured, for example because the parameter is defined as a constant.

                                                                                                                                                                                                                                                                                                                                                                                          Retrieved from "http://docwiki.embarcadero.com/RADStudio/en/E2555_Cannot_capture_symbol_%27%25s%27_(Delphi)"
                                                                                                                                                                                                                                                                                                                                                                                          Category: RAD Studio Reference


                                                                                                                                                                                                                                                                                                                                                                                          Добавлено
                                                                                                                                                                                                                                                                                                                                                                                          Цитата
                                                                                                                                                                                                                                                                                                                                                                                          Item: PItem absolute P;

                                                                                                                                                                                                                                                                                                                                                                                          Пора уже забыть о существовании такой конструкции. Стыдно, товарищ! :yes:

                                                                                                                                                                                                                                                                                                                                                                                          Добавлено
                                                                                                                                                                                                                                                                                                                                                                                          Цитата ViktorXP @
                                                                                                                                                                                                                                                                                                                                                                                          помнится когда то тип Pointer был не совместим с типом Integer.

                                                                                                                                                                                                                                                                                                                                                                                          Никогда! Только через приведение типов.

                                                                                                                                                                                                                                                                                                                                                                                          Совместим был PChar. Но это была залипуха, которую убрали с помощью PByte. И это более логично, потому что указательная арифметика применима не только к строкам, а и любым двоичным данным. К чему тут PChar?

                                                                                                                                                                                                                                                                                                                                                                                          Добавлено
                                                                                                                                                                                                                                                                                                                                                                                          Цитата Krid @
                                                                                                                                                                                                                                                                                                                                                                                          Например, в той же SendMessageTimeout последний параметр всегда был "var lpdwResult: DWORD". А в XE2 - это указатель (lpdwResult: PDWORD_PTR).

                                                                                                                                                                                                                                                                                                                                                                                          Мда, жалко. С var-ом так удобно было :yummy:
                                                                                                                                                                                                                                                                                                                                                                                            Цитата [S]mike @
                                                                                                                                                                                                                                                                                                                                                                                            А что здесь не так? var, const параметры нельзя передавать в анонимную процедуру. Объявляй локальную переменную.

                                                                                                                                                                                                                                                                                                                                                                                            Да я так и понял. и именно подобным способом и решил. но могли бы это и предусмотреть. хотя боюсь там не все так просто (с учетом того что анонимная функция вообще как интерфейс создается (если верить отладчику) Прикреплённый файлПрикреплённый файл1.png (19,97 Кбайт, скачиваний: 570) )

                                                                                                                                                                                                                                                                                                                                                                                            Добавлено
                                                                                                                                                                                                                                                                                                                                                                                            Цитата [S]mike @
                                                                                                                                                                                                                                                                                                                                                                                            Пора уже забыть о существовании такой конструкции. Стыдно, товарищ!

                                                                                                                                                                                                                                                                                                                                                                                            ну не скажи. absolute очень удобная вещь.

                                                                                                                                                                                                                                                                                                                                                                                            Добавлено
                                                                                                                                                                                                                                                                                                                                                                                            вот недавно мне нужно было по быстрому набросать код вывода одного файла. там нюанс был что в блоке сначала идет признак что это, а потом сам блока причем следующий блок только в конце текущего. и размеры у их у всех разные. и идут они не по порядку. с absolute это получилось куда красивее
                                                                                                                                                                                                                                                                                                                                                                                            ExpandedWrap disabled
                                                                                                                                                                                                                                                                                                                                                                                              procedure ShowSecurity();
                                                                                                                                                                                                                                                                                                                                                                                              var
                                                                                                                                                                                                                                                                                                                                                                                                B: Byte;
                                                                                                                                                                                                                                                                                                                                                                                                I, f, Ccp: Integer;
                                                                                                                                                                                                                                                                                                                                                                                              var
                                                                                                                                                                                                                                                                                                                                                                                                ms: TMemoryStream;
                                                                                                                                                                                                                                                                                                                                                                                                CP_info: PCP_info;
                                                                                                                                                                                                                                                                                                                                                                                                Utf8_info: PcpUtf8_info absolute CP_info;
                                                                                                                                                                                                                                                                                                                                                                                                cpClassRefInfo: PcpClassRefInfo absolute CP_info;
                                                                                                                                                                                                                                                                                                                                                                                                cpIntegerInfo: PcpIntegerInfo absolute CP_info;
                                                                                                                                                                                                                                                                                                                                                                                                cpPackage: PcpPackage absolute CP_info;
                                                                                                                                                                                                                                                                                                                                                                                              begin
                                                                                                                                                                                                                                                                                                                                                                                                ms := TMemoryStream.Create;
                                                                                                                                                                                                                                                                                                                                                                                                try
                                                                                                                                                                                                                                                                                                                                                                                                  ms.LoadFromFile(security_f);
                                                                                                                                                                                                                                                                                                                                                                                                  with PExportFile(ms.Memory)^ do
                                                                                                                                                                                                                                                                                                                                                                                                  begin
                                                                                                                                                                                                                                                                                                                                                                                                    WriteLn('Magic: ', IntToHex(Magic, 8));
                                                                                                                                                                                                                                                                                                                                                                                                    WriteLn('Version: ', MajorVersion, '.', MinorVersion);
                                                                                                                                                                                                                                                                                                                                                                                                    WriteLn('ConstantPoolCount: ', ConstantPoolCount));
                                                                                                                                                                                                                                                                                                                                                                                                    CP_info := @ConstantPool[0];
                                                                                                                                                                                                                                                                                                                                                                                                    if ConstantPoolCount > 0 then
                                                                                                                                                                                                                                                                                                                                                                                                    begin
                                                                                                                                                                                                                                                                                                                                                                                                      Ccp := ConstantPoolCount;
                                                                                                                                                                                                                                                                                                                                                                                                      while Ccp > 0 do
                                                                                                                                                                                                                                                                                                                                                                                                      begin
                                                                                                                                                                                                                                                                                                                                                                                                        WriteLn('CP_info.Tag: ', GetNameBycpType(CP_info.Tag));
                                                                                                                                                                                                                                                                                                                                                                                                        case CP_info.Tag of
                                                                                                                                                                                                                                                                                                                                                                                                          cptPackage:
                                                                                                                                                                                                                                                                                                                                                                                                            begin
                                                                                                                                                                                                                                                                                                                                                                                                              WriteLn('CP_info.NameIndex: ', cpClassRefInfo.NameIndex);
                                                                                                                                                                                                                                                                                                                                                                                                              WriteLn('CP_info.Version: ', cpPackage.MajorVersion, '.', cpPackage.MinorVersion);
                                                                                                                                                                                                                                                                                                                                                                                                              Write('CP_info.AID: ');
                                                                                                                                                                                                                                                                                                                                                                                                              for I := 0 to cpPackage.AID_length - 1 do
                                                                                                                                                                                                                                                                                                                                                                                                                Write(IntToHex(cpPackage.AID[I], 2));
                                                                                                                                                                                                                                                                                                                                                                                                              WriteLn;
                                                                                                                                                                                                                                                                                                                                                                                                              CP_info := cpPackage.Next;
                                                                                                                                                                                                                                                                                                                                                                                                            end;
                                                                                                                                                                                                                                                                                                                                                                                                          cptClassRef:
                                                                                                                                                                                                                                                                                                                                                                                                            begin
                                                                                                                                                                                                                                                                                                                                                                                                              WriteLn('CP_info.NameIndex: ', cpClassRefInfo.NameIndex);
                                                                                                                                                                                                                                                                                                                                                                                                              CP_info := cpClassRefInfo.Next;
                                                                                                                                                                                                                                                                                                                                                                                                            end;
                                                                                                                                                                                                                                                                                                                                                                                                          cptInteger:
                                                                                                                                                                                                                                                                                                                                                                                                            begin
                                                                                                                                                                                                                                                                                                                                                                                                              WriteLn('CP_info.bytes: ', cpIntegerInfo.bytes);
                                                                                                                                                                                                                                                                                                                                                                                                              CP_info := cpIntegerInfo.Next;
                                                                                                                                                                                                                                                                                                                                                                                                            end;
                                                                                                                                                                                                                                                                                                                                                                                                          cptUtf8:
                                                                                                                                                                                                                                                                                                                                                                                                            begin
                                                                                                                                                                                                                                                                                                                                                                                                              Write('CP_info.Bytes: ');
                                                                                                                                                                                                                                                                                                                                                                                                              for I := 0 to Utf8_info.Length - 1 do
                                                                                                                                                                                                                                                                                                                                                                                                                Write(Utf8_info.Bytes[I]);
                                                                                                                                                                                                                                                                                                                                                                                                              WriteLn;
                                                                                                                                                                                                                                                                                                                                                                                                              CP_info := Utf8_info.Next;
                                                                                                                                                                                                                                                                                                                                                                                                            end;
                                                                                                                                                                                                                                                                                                                                                                                                        end;
                                                                                                                                                                                                                                                                                                                                                                                                        Dec(Ccp);
                                                                                                                                                                                                                                                                                                                                                                                                        WriteLn;
                                                                                                                                                                                                                                                                                                                                                                                                      end;
                                                                                                                                                                                                                                                                                                                                                                                                    end;
                                                                                                                                                                                                                                                                                                                                                                                                  end;
                                                                                                                                                                                                                                                                                                                                                                                                finally
                                                                                                                                                                                                                                                                                                                                                                                                  FreeAndNil(ms);
                                                                                                                                                                                                                                                                                                                                                                                                end;
                                                                                                                                                                                                                                                                                                                                                                                              end;
                                                                                                                                                                                                                                                                                                                                                                                              Цитата ViktorXP @
                                                                                                                                                                                                                                                                                                                                                                                              хотя боюсь там не все так просто (с учетом того что анонимная функция вообще как интерфейс создается (если верить отладчику)

                                                                                                                                                                                                                                                                                                                                                                                              Именно! А если передавать var-переменную в анонимную процедуру, то ты будешь ожидать, что, изменив ее значение так, задашь результат конечной переменной, а это будет не так.

                                                                                                                                                                                                                                                                                                                                                                                              Цитата ViktorXP @
                                                                                                                                                                                                                                                                                                                                                                                              ну не скажи. absolute очень удобная вещь.

                                                                                                                                                                                                                                                                                                                                                                                              Это паскалевский рудимент (как и goto), имеющий в современной дельфи массу ограничений и имеющий сомнительную кроссплатформенность (как и ассемблерные вставки). А смысла в нем особо нет. Я лично обхожусь без особых неудобств.

                                                                                                                                                                                                                                                                                                                                                                                              Добавлено
                                                                                                                                                                                                                                                                                                                                                                                              Цитата ViktorXP @
                                                                                                                                                                                                                                                                                                                                                                                              вот недавно мне нужно было по быстрому набросать код вывода одного файла. там нюанс был что в блоке сначала идет признак что это, а потом сам блока причем следующий блок только в конце текущего. и размеры у их у всех разные. и идут они не по порядку. с absolute это получилось куда красивее

                                                                                                                                                                                                                                                                                                                                                                                              Красоты коду это не добавляет, что в процедурном программировании, что в ООП. Для ООП нужен был бы полиморфизм объектов: создавать экземпляр класса нужного типа, который бы записывал нужные данные, а потом возвращал следующий блок. Для процедурного программирования все это нужно было бы вынести в отдельные функции. Все было бы намного красивее, практичнее и без absolute.
                                                                                                                                                                                                                                                                                                                                                                                                Цитата [S]mike @
                                                                                                                                                                                                                                                                                                                                                                                                Все было бы намного красивее, практичнее и без absolute.

                                                                                                                                                                                                                                                                                                                                                                                                Ну это холивар по типу "нельзя юзать goto".
                                                                                                                                                                                                                                                                                                                                                                                                :)
                                                                                                                                                                                                                                                                                                                                                                                                  Цитата ViktorXP @
                                                                                                                                                                                                                                                                                                                                                                                                  Ну это холивар по типу "нельзя юзать goto".

                                                                                                                                                                                                                                                                                                                                                                                                  А это и не холивар. Нельзя и все.

                                                                                                                                                                                                                                                                                                                                                                                                  Здесь я наглядно показал, что Goto - это непрактично, некрасиво и к тому же медленно :yes:

                                                                                                                                                                                                                                                                                                                                                                                                  Добавлено
                                                                                                                                                                                                                                                                                                                                                                                                  Да, про Integer и Pointer я тебе тоже ответил. Так что в данном случае твои претензии несостоятельны.
                                                                                                                                                                                                                                                                                                                                                                                                    Цитата [S]mike @
                                                                                                                                                                                                                                                                                                                                                                                                    Здесь я наглядно показал, что Goto - это непрактично, некрасиво и к тому же медленно


                                                                                                                                                                                                                                                                                                                                                                                                    Да будет тебе известно, что статья Дейкстры в своё время была написано не просто так, а для конкретной цели: борьбы с кодом-лапшой, пример которого ты и привёл. А код-лапша получался из интересных свойств ранних языков, вроде Basic.

                                                                                                                                                                                                                                                                                                                                                                                                    И много сегодня у нас пишут код-лапшу? Нет. Так в чём же тогда реальный вред от goto? С каким-таким монстром мы боремся?

                                                                                                                                                                                                                                                                                                                                                                                                    Противники goto всегда выбирают самые плохие примеры ("плохие" - в смысле "страшные"), вроде лапши или перехода в середину цикла извне и т.п. Тут, конечно, не поспоришь, да и не нужно спорить - они правы.

                                                                                                                                                                                                                                                                                                                                                                                                    Только вот они умело "забывают" про то, что использование goto бывает иногда удобно. Скажем, для прерывания двойного цикла. Противники goto тут же говорят, что, дескать, двойной цикл надо бы оформить в отдельную функцию и воспользоваться Exit. Как-то не очень согласуется с "быстрее" и "практичнее". Не, если исходный код на страницу - однозначно надо выделять, но если кроме двойного цикла в процедуре всего несколько строчек, то выделять из неё подпрограмму - явный overkill.

                                                                                                                                                                                                                                                                                                                                                                                                    Аналогично и absolute - он опасен не более, чем нетипизированные указатели и goto, но иногда может быть полезен. Надеюсь, нетипизированные указатели не хотим запрещать в native-языках?

                                                                                                                                                                                                                                                                                                                                                                                                    Добавлено
                                                                                                                                                                                                                                                                                                                                                                                                    Второй пример полезности goto - обработка ошибок. Конечно, конкретно в Delphi это не применимо (тут есть try/finally), но в других языках без SEH (в старом Pascal-е или в Basic-е) - вполне.
                                                                                                                                                                                                                                                                                                                                                                                                      Цитата CodeMonkey @
                                                                                                                                                                                                                                                                                                                                                                                                      но иногда может быть полезен

                                                                                                                                                                                                                                                                                                                                                                                                      Такой прием называется "дай обезьяне гранату" (без намеков на ник ;) ). Можно конечно воспользоваться. Но стоит элементарно где-то описАться, как получим кучу труднонаходимых ошибок.

                                                                                                                                                                                                                                                                                                                                                                                                      Для первого примера с компонентами RTTI или WinAPI было бы более удобным способом.

                                                                                                                                                                                                                                                                                                                                                                                                      А вообще, читаем комменты к оригиналу статьи http://www.deltics.co.nz/blog/?p=586

                                                                                                                                                                                                                                                                                                                                                                                                      Цитата CodeMonkey @
                                                                                                                                                                                                                                                                                                                                                                                                      Надеюсь, нетипизированные указатели не хотим запрещать в native-языках?

                                                                                                                                                                                                                                                                                                                                                                                                      Во всяком случае их использование следует минимизировать, а не декларировать все указателем, потом через absolute "приводить" к нужным типам :D
                                                                                                                                                                                                                                                                                                                                                                                                        Цитата [S]mike @
                                                                                                                                                                                                                                                                                                                                                                                                        Такой прием называется "дай обезьяне гранату" (без намеков на ник ). Можно конечно воспользоваться. Но стоит элементарно где-то описАться, как получим кучу труднонаходимых ошибок.


                                                                                                                                                                                                                                                                                                                                                                                                        Приведённая примером статья, хотя и содержит несколько случаев, но предлагает использовать absolute всего для одной вещи: уменьшения шума в коде от приведения типов или переприсваивания указателей. При таком использовании опасности absolute не превышают опасностей оригинального кода (с использованием указателей или преведений типов).

                                                                                                                                                                                                                                                                                                                                                                                                        Поэтому "стоит элементарно где-то описАться" - это не недостаток absolute. Это недостаток жёсткого приведения типа или использования указателей.

                                                                                                                                                                                                                                                                                                                                                                                                        Другими словами, ситуация с absolute как минимум не хуже оригинала.

                                                                                                                                                                                                                                                                                                                                                                                                        Я просканировал комменты, но не нашёл ни одного, говорящего про недостаток именно самого absolute, а не операции, которую он подменяет.

                                                                                                                                                                                                                                                                                                                                                                                                        Цитата
                                                                                                                                                                                                                                                                                                                                                                                                        Во всяком случае их использование следует минимизировать, а не декларировать все указателем, потом через absolute "приводить" к нужным типам


                                                                                                                                                                                                                                                                                                                                                                                                        Несомненно.

                                                                                                                                                                                                                                                                                                                                                                                                        Лично я к goto, absolute и указателям отношусь как "можно использовать только в разрешённых верховной партией случаях" :lol:

                                                                                                                                                                                                                                                                                                                                                                                                        P.S.
                                                                                                                                                                                                                                                                                                                                                                                                        Цитата
                                                                                                                                                                                                                                                                                                                                                                                                        Для первого примера с компонентами RTTI или WinAPI было бы более удобным способом.


                                                                                                                                                                                                                                                                                                                                                                                                        Это же просто пример. Он сделан на компонентах, чтобы писать меньше кода - не надо описывать классы. В целом же там могут быть не компоненты, классы без RTTI и даже вовсе не классы. Простой пример: записи, чьё содержимое трактуется по первому полю.
                                                                                                                                                                                                                                                                                                                                                                                                          хм. не знал что можно еще и классы так приводить. и я всегда почему то считал что ссылка absolute всегда должна быть одного размера с исходной переменной.

                                                                                                                                                                                                                                                                                                                                                                                                          Добавлено
                                                                                                                                                                                                                                                                                                                                                                                                          я не один такой. "мой" баг пометили как дубликат и по ссылке я узнал что он тянется еще с 2009 версии.
                                                                                                                                                                                                                                                                                                                                                                                                          Сообщение отредактировано: ViktorXP -
                                                                                                                                                                                                                                                                                                                                                                                                            Цитата ViktorXP @
                                                                                                                                                                                                                                                                                                                                                                                                            FreeAndNil(I);// а вот это жесть. и оно не ругается на это. даже не предупреждает.


                                                                                                                                                                                                                                                                                                                                                                                                            это было всегда и во всех версиях дельфи.

                                                                                                                                                                                                                                                                                                                                                                                                            можно сделать аналог, без этого недостатка

                                                                                                                                                                                                                                                                                                                                                                                                            ExpandedWrap disabled
                                                                                                                                                                                                                                                                                                                                                                                                              TObjectHelper = class
                                                                                                                                                                                                                                                                                                                                                                                                              public
                                                                                                                                                                                                                                                                                                                                                                                                                procedure FreeAndNil<T: TObject>(var Obj: T);
                                                                                                                                                                                                                                                                                                                                                                                                              end;
                                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                                                                                                                              procedure TObjectHelper.FreeAndNil<T: TObject>(var Obj: T);
                                                                                                                                                                                                                                                                                                                                                                                                              begin
                                                                                                                                                                                                                                                                                                                                                                                                                SysUtils.FreeAndNil(Obj);
                                                                                                                                                                                                                                                                                                                                                                                                              end;
                                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                                                                                                                              Obj: TObject;
                                                                                                                                                                                                                                                                                                                                                                                                              I: Integer;
                                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                                                                                                                              TObjectHelper.FreeAndNil<TObject>(Obj); // компилится
                                                                                                                                                                                                                                                                                                                                                                                                              TObjectHelper.FreeAndNil<Integer>(I); // НЕ компилится
                                                                                                                                                                                                                                                                                                                                                                                                              Что-то я не понял
                                                                                                                                                                                                                                                                                                                                                                                                              Цитата
                                                                                                                                                                                                                                                                                                                                                                                                              'Packed' Now Forces Byte Alignment of Records

                                                                                                                                                                                                                                                                                                                                                                                                              If you have legacy code that uses the packed record type and you want to link with an external DLL or with C++, you need to remove the word "packed" from your code. The packed keyword now forces byte alignment, whereas in the past it did not necessarily do this. The behavior change is related to C++ alignment compatibility changes in Delphi 2009.

                                                                                                                                                                                                                                                                                                                                                                                                              http://docwiki.embarcadero.com/RADStudio/en/Delphi_Compiler_Changes_for_XE2

                                                                                                                                                                                                                                                                                                                                                                                                              Цитата
                                                                                                                                                                                                                                                                                                                                                                                                              Record Type Data Field Alignment

                                                                                                                                                                                                                                                                                                                                                                                                              In previous versions of Delphi, packed records were used to ensure proper data alignment when calling external libraries and notably certain external Windows API functions that require record or struct parameters. Unused data fields were introduced to "pad things out" and make the needed data fields line up as needed. The current compiler implementation eliminates the need for using packed records this way, in most cases. Revising your existing source code to eliminate needless packed records and "padding" makes the source more clear and easier to maintain.

                                                                                                                                                                                                                                                                                                                                                                                                              If you require that your existing data files maintain compatibility with older versions of Delphi, apply the compiler directive {$OLDTYPELAYOUT ON} to source code where the older record organization is still needed.

                                                                                                                                                                                                                                                                                                                                                                                                              http://docwiki.embarcadero.com/RADStudio/en/Converting_32-bit_Delphi_Applications_to_64-bit_Windows

                                                                                                                                                                                                                                                                                                                                                                                                              Что они в итоге сделали с packed?
                                                                                                                                                                                                                                                                                                                                                                                                                В Delphi 2009 было убрано это поведение.

                                                                                                                                                                                                                                                                                                                                                                                                                Насчёт XE2 - тоже не уловил. Вроде packed по своему определению делает то, что они приписали изменениям в XE2.

                                                                                                                                                                                                                                                                                                                                                                                                                Добавлено
                                                                                                                                                                                                                                                                                                                                                                                                                Вот здесь есть мнение, что документация говорит про выравнивание начала записи, а не полей в ней.
                                                                                                                                                                                                                                                                                                                                                                                                                  немного не понял про Packed. он идет теперь по умолчанию и его можно не указывать или все так как прежде. с Packed пакует без Packed выравнивает.

                                                                                                                                                                                                                                                                                                                                                                                                                  Добавлено
                                                                                                                                                                                                                                                                                                                                                                                                                  все. по примеру я понял. если внутри есть пакованная запись то и эта запись будет паковаться
                                                                                                                                                                                                                                                                                                                                                                                                                  Сообщение отредактировано: ViktorXP -
                                                                                                                                                                                                                                                                                                                                                                                                                    Если фишка именно в выравнивании начала записи (в массивах, я так полагаю - а где еще?), то причем тут код в DLL? И еще интересно, как согласуют выравнивание полей в записях, переправляющихся в WinAPI функции.
                                                                                                                                                                                                                                                                                                                                                                                                                      Расположение записи на стеке тоже выравнивается.
                                                                                                                                                                                                                                                                                                                                                                                                                        Цитата ViktorXP @
                                                                                                                                                                                                                                                                                                                                                                                                                        с Packed пакует без Packed выравнивает.

                                                                                                                                                                                                                                                                                                                                                                                                                        :yes:
                                                                                                                                                                                                                                                                                                                                                                                                                        Но такое поведение вроде нужно директивами задавать.
                                                                                                                                                                                                                                                                                                                                                                                                                          да нет. вроде он по умолчанию выравнивает до восьми или до четырех байт. это если хочешь поменять изменить это то либо packed либо директивы. лично я юзаю packed лишь тогда когда мне нужно "кучно" собрать байты. во всех других случаях это потеря производительности.
                                                                                                                                                                                                                                                                                                                                                                                                                            Да :yes: И это нисколько не противоречит вышесказанному:
                                                                                                                                                                                                                                                                                                                                                                                                                            Цитата ViktorXP @
                                                                                                                                                                                                                                                                                                                                                                                                                            с Packed пакует без Packed выравнивает.

                                                                                                                                                                                                                                                                                                                                                                                                                            А ты попробуй поиграться с директивами {$OLDTYPELAYOUT} и {$A}

                                                                                                                                                                                                                                                                                                                                                                                                                            кста, а какая у тебя версия Delphi (а то я тут тебе советую..)?

                                                                                                                                                                                                                                                                                                                                                                                                                            Добавлено
                                                                                                                                                                                                                                                                                                                                                                                                                            Цитата ViktorXP @
                                                                                                                                                                                                                                                                                                                                                                                                                            вроде он по умолчанию выравнивает до восьми или до четырех байт

                                                                                                                                                                                                                                                                                                                                                                                                                            Судя по встроенному help'у (XE2 - Update3, Help - Update3) - выравнивает до 8 (quadword).
                                                                                                                                                                                                                                                                                                                                                                                                                              Меня в основном волнует, не изменилось ли поведение при указании packed.
                                                                                                                                                                                                                                                                                                                                                                                                                              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                                                                                                                                                                                                                                                                                                                                                                                              0 пользователей:


                                                                                                                                                                                                                                                                                                                                                                                                                              Рейтинг@Mail.ru
                                                                                                                                                                                                                                                                                                                                                                                                                              [ Script execution time: 0,5091 ]   [ 19 queries used ]   [ Generated: 18.07.25, 00:34 GMT ]