На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS

Дорогие друзья!
Поздравляем вас с Новым 2022 годом!
Всем ЗДОРОВЬЯ, удачи, успеха и благополучия!

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_
Страницы: (15) [1] 2 3 ...  14 15 все  ( Перейти к последнему сообщению )  
> Delphi 8 - Первые впечатления, Шаг вперёд - два шага назад?
    Сегодня имел возможность ознакомиться с Delphi 8. Впечатления двойственные.

    Ну вначале то чего больше нет: а нет всеми любимых WinAPI... Судя по всему теоретически нет так
    как сделан новый Дельфи под .net платформу, а посему о Windows имеет только те сведения которые
    ему даёт ента самая .net. Может и не всё так страшно и со временем многое прояснится, но пока я
    не нашёл возможности вызвать ни одной функции WinAPI.

    Дизайн: Борланд ушёл от своего дизайна в сторону MS Visual Studio, а точнее в сторону VB. В
    общем большинство кнопок на месте, горячие клавиши вроде тоже, но дизайн изменился. Лучше или
    хуже? Не знаю, но для меня пока не привычно. Палитра инструментов переместилась в правый
    край (интересно зачем?), форма в дизайне стала очень напоминать форму в VB, инспектор объектов
    стал чем-то похожим на соотвесттвующее детище MS. Зачем это сделано - не знаю, ИМХО, к
    переходу на .net платформу это всё не имеет никакого отношения, может таким образом
    Борланд пытается перетянуть программистов с продуктов MS, облегчив им переход?

    Вот как выглядит D8 при загрузке в первый раз без проекта.

    user posted image

    А вот какие проекты мы имеем в наличии:

    user posted image

    Давайте выберем проект и набросаем на форму компонентов, выглядеть это будет так:

    user posted image

    А вот редактор кода, тоже "сдвинутый" в сторону MS обрадовал наличием возможности
    навигационного дерева и "скрытия" лишнего кода, а так же подсветкой парных скобок,
    кавычек и т.п.:


    user posted image

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

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

    - файл получился размером аж 8 килобайт. Ну это мы проходили, при наличии .net framework
    на несколько десятков метров это не удивительно...

    - быстродействие - хоть под дебуггером, хоть под средой, хоть в готовом виде скорость
    отработки поцедуры практически одинакова (разница порядка 2-3%) и ровно в 2 раза ниже чем
    тот же код откомпиллированный в Дельфи 5.

    Кстати на Web страничку, открываемую Дельфой по умолчанию мой Norton Antivirus
    отреагировал однозначно - особозлобный вирь! Похоже фирма Symantec решила, что пора начинать
    борьбу с Борландом, по-видимому они решили реинкарнировать свой C++ под .net платформу
    (чем чёрт не шутит?).

    Выводы!

    Итак на первый взгляд (прошу быть снисходительными - к моменту написания этих строк я видел
    эту версию всего пару часов!)

    1. Дизайн. Изменился в сторону продуктов MS и сейчас является гибридом дизайна Дельфи и
    дизайна VB.

    2. Язык. Паскать остался паскалем, в простейших примерах никакой разницы не чуствуется, но
    некое 7е чуство мне говорит, что если копнуть глубже простого цикла и кнопки на форме то
    отличий будет не просто много, а очень много.

    3. Редактор кода. Изменился в лучшую сторону, добавились очень удобные фишки.

    4. Компоненты. Боюсь оказаться неправым, но набор компонентов определяется не столько самим
    Дельфи, сколько .net framework, и набор этот бледный, т.е. его можно кое-как сравнить с
    набором компонентов для Дельфи 1, но по сравнению с Дельфи 5/6/7 выглядит очень тускло,
    представлены самые основные, базовые компоненты.

    5. Производительность самой среды, скорость компилляции - вполне удовлетворительные, нареканий
    нет.

    6. Скорость работы сгенерированных исполняемых файлов - в аккурат в 2 раза меньше тех что
    основанны на классических WinAPI.



    PS. Я пока прикреплю тему, как информационно-новостную. Думаю многим будет интересно.
    Сообщение отредактировано: Vit -
      Видели, видели .. и потом долго плакали!
      Эту систему ждали, надеялись что Борланд в очередной раз докажет всем, что пишет лучшие среды для разработчиков, и что мы получили? Visual Studio UltraLite? Стоило ли вообще выпускать этот продукт?
      Фанаты Delphi после этих слов закидают меня камнями, но увы время не стоит на месте! VCL как и MFC осталось жить два, максимум три года! После выхода LongHorn и .NET 2.0, MS SQL SERVER YUKON, VCL станет никому ненужным, впрочем как и WIN32 API! В Borland это понимают, и поэтому пытаются заскочить в мчащийся поезд .NET! Но сделала это бездарно и ужасно поздно!
      Visual Studio поддерживает .NET уже 2 года! В нем интегрированны практически все необходимые средства разработки: компиляторы 4 языков программирования, MSDN (лучшая и самая полная документация по WINDOWS, кто бы там чего не говорил), Server Explorer, инструменты для создания MSI(инсталляторы), создание Help'ов, инструменты для тестирования приложений, Visual Safe (аналог Borland Star Team) и еще много чего. Не хватает только CASE и RUP, а судя по пресс релизам в VS 2004 CASE средства будут интегрированы в среду! (Прощай Rational Suite!) Более того через полгода (вроде бы к лету выйдет VS 2004), мы получим поддержку AVALON (новый 3D user interface).
      И что нам предлагает Borland? Тоже самое, но с отставанием на 2 года?
      Перейти с Паскаля на C# проще, чем с любого другого языка! Когда я начал изучать C#, подумал, что Microsoft решила перетащить всех Delphi программеров, и судя по тому, что я увидел в Delphi 8, она добъется этого не напрягаясь. Так что предположение многоуважаемого Vit, что Borland сделала интерфрейс Delphi 8 похожим на VS, что бы заполучить разработчиков, использующих средства от Microsoft - заблуждение! Более того, руководитель проекта .NET - человек, который 10 лет назад руководил созданием Delphi!
      Delphi 8 нужна только тем, у кого гигабайты кода на паскале и им лениво его переписывать, хотя D8 и не позволяет простой перекомпиляцией получить управляемый, код, тем не менее, D8 поможет разработчикам плавно перейти на .NET. Насколько я знаю в России крупных проектов на Delphi написано не просто мало, а очень мало! В связи с этим большого спроса на программеров, знающих Delphi не будет. Это еще один гвоздь в гроб Delphi.
      Лично мне все равно на чем писать: на C++, на J++, на Паскале или Бейсике, но писать я буду на том, что лучше документировано, имеет большую функциональность, гибкость и распостраненность. Вы много видели книг по .NET, где примеры написаны на паскале? Из 2-х компактов книг по .NET (порядка 400 книг), которые у меня есть ни одной!!!!! Ну и как писать? Программирование это не только увлечение и призвание, но и работа, а работодатель требует результатов. И как выдавать результаты, если к среде разработки надо прикручивать различные дополнительные инстументы, если нет нормальных книг, если среда разработки не имеет большой распостраненности?
      Borland нас всех кинула! Delphi больше не лучшая среда разработки и с этим надо смириться!
      Аминь.
        Ага, исследуем дальше. Оказывается всё не так плохо. Удалось найти как применять WinAPI - оказывается есть модули, отличия небольшие - теперь нет указателей, т.е. вместо PChar используются строки и т.д. Вот так примерно выглядит использованием ShellExecute:

        ExpandedWrap disabled
          uses ... Borland.Vcl.ShellAPI;
           
          procedure TForm2.Button1Click(Sender: TObject);
          begin
            ShellExecute(handle, 'Open', 'TOTALCMD.EXE', nil, 'C:\totalcmd\', sw_restore);
          end;



        А вот так даётся определение самой функции ShellExecute в модуле у Борланда:

        ExpandedWrap disabled
          function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
            Directory: string; ShowCmd: Integer): HINST; external;
          [DllImport(shell32, CharSet = CharSet.Auto, SetLastError = True, EntryPoint = 'ShellExecute')]


        Забавно, не правда ли?


        Ещё есть директива компилляции {$Unsafecode On}, которая по логике вещей должна позволять работать с указателями и прочими радостями классического программирования. На деле её применение наталкивается на труднопонимаемые ошибки компилляции, резко усугублённые плохой документацией.

        Так скажу сразу - нормального help нет! Т.е. взят некий Html который несомненно содержит некоторые сведения о C#, немного сдобрен статьями по паскалю и это всё! Ни нормальных перекрёсных ссылок, ни привычного и очень любимого "See also", и это даже можно было бы вытерпеть, если бы не страница с мрачным содержимым "No further information is available for this ..." выскакивающая часто и густо на что бы ты не кликнул F1...О примерах кода вообще молчу, кроме нескольких примеров кода на C# ничего не видно, может в сией булке изюм и есть, но у меня не хватило сил доковырять сию булку, что я золушка что-ли?

        Вот как выглядит это подобие на help при вызове справки по идентификатору "function":

        user posted image


        Можете сами судить - это справка по Дельфи или по С#? Как по мне, то я хоть и привык к примерам везде написанным то на С, то на VB, но хоть родной Дельфи Help радовал тем, что справка всё-таки была по Дельфи, без включения "чужеродных" языков там где в этом не было необходимости.
        Сообщение отредактировано: Vit -
          А какая у тебя версия Delphi 8?
            Architect
            Сообщение отредактировано: Vit -
              Build? У меня 7.1.1446.610!
                Тот же самый, а что это что-то в корне меняет? На примере предыдущих версий - никаких радикальных отличий между билдами замечено не было, так мелкие подчистки...
                  Так это Бета, со всеми вытекающими глюками! Тоже самое происходило с Borland C# Builder.
                  Пока не вышел фмнал, не было ни хелпа, ни кучи настроек, за-то глюки, глюки, глюки.

                  А что касаемо компонентов, то их уже достаточно много, и я не могу сказать, что чего-то нехватает.
                  Ставим Component One и полный пекет DevExpress.NET и можно писать почти все, что угодно, более того есть возможность перекомпилировать некоторые компоненты, написанные под D7.
                    Ага, вот как! Странно, нигде вроде не было написано что это бета... Ладно время расставит всё по своим местам.


                    Идём дальше. Вот ложка сахара во всю эту бодягу: работа с базами данных не претерпела существенных изменений, по крайней мере BDE и все визуальные контролы для работы с базами данных на месте, простейшее приложение для баз данных удалось склепать мгновенно без каких-либо затруднений:

                    user posted image

                    Одно непонятно, в результате получился exe файл размером 9 килобайт. Так, где-то дурят нашего брата! Опять какие-то библиотеки и пакеты надо поставлять с исполнительным файлом и похоже в большом количестве. Я понимаю что всякие формы и кнопки зашиты в большом количестве в самом .net framework и их вызов это считанные байты, но DBNavigator, до боли знакомый грид, несмотря уже на сам компонент TTable никакого отношения к MS не имеют и никогда не имели. Чудес не бывает, MS наверняка ничего такого в свой framework не включала, а посему пойду изучать всяки там опции компилляции и бродить по многочисленным настройкам.
                    Сообщение отредактировано: Vit -
                      Ненадо нигде бродить!
                      Посмотри в uses и все увидишь. Борланд для совместимости создала набор своих неймспейсов, что бы можно было быстро перекомпиливать старые приложения.

                      Возьми какую-нибудь прогу написанную в D7 и где используется только стандартные, борландовые классы, поменяй в Uses имена модулей на новые неймспейсы по следующему принципу:
                      модуль Windows заменяем на Borland.Vcl.Windows
                      модуль ComCtrls заменяем на Borland.Vcl.ComCtrls
                      и так далее

                      компилируем
                      наслаждаемся!
                        Для того что-бы откомпилированная программа работала на компьютере необходим .NET Framework и все библиотеки. Так что получив exe размером 10К можно туда добавить мегов 60 в которые будет входить:
                        1. .Net Framework redistributable
                        2. IE 6 SP1
                        3. MDAC 2.7
                        4. Borland .Net framework redistributable
                        5 библиотеки компонентов сторонних разработчиков

                        или есть другой вариант, создать сборку в которой будут все необходимые библиотеки, но это не избавляет от необходимости вместе с программой распостранять 1,2,3 пункты, а это все те же 60 мегов
                          Это понятно (про Uses я уже допёр), непонятно другое (не бить ногами, я в .net новичёк, знаком только с самыми общими концепциями). Эти самые Name Space'ы как я понмаю должны быть где-то установлены, т.е. они суть являются неким подобием пакетов. И полазив по опциям ничего не нашёл - получается включить эти "пакеты" в исполняемый файл нельзя. Теперь возникла куча вопросов:

                          - Как же распространять тогда программы?

                          - В каком виде существуют теперь пакеты и как их расапространять?

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

                          - Как в отсутствии пакетов устанавливать третьесторонние компоненты?

                          Добавлено в :
                          Цитата
                          noiseman, 12.01.04, 21:56
                          Так что получив exe размером 10К можно туда добавить мегов 60 в которые будет входить:
                          1. .Net Framework redistributable
                          2. IE 6 SP1
                          3. MDAC 2.7
                          4. Borland .Net framework redistributable
                          5 библиотеки компонентов сторонних разработчиков


                          Ну допустим пункты 1..3 apriori не интересуют, поставляются с .Net Framework и естественно что условием работы приложения должна быть установлена эта вся ерунда. Т.е. учитываем, что работаем на будущее и или это будет Longhorn или на имеющейся оси уже будет установлен .Net Framework, который и не захочет ставится не сделав update IE и MDAC, поэтому будем считать что пункты 1..3 есть стандартные. Другое дело пункт 4. Реально есть возможность включить борландовские библиотеки в исполняемый файл? Что-то я такой опции не нашёл. То же самое касается и третьесторонних библиотек, в предыдущих версиях Дельфи они все прекрасно включались в поставляемый файл, что хоть и делало его большим, но заметно упрощало процедуры инсталляции и Update...
                            Есть книга, которая ответит на 99% твоих вопросов
                            русское издание: Прогаммирование на платформе Microsoft .NET Framework Автор Джеффри Рихтер
                            английское издание: Applied Microsoft .NET Framework Programming Author Jeffrey Richter

                            .NET отличается от MFC и VCL как MFC и VCL от TurboVision! Вроде бы похоже, а ничего общего нет!
                              Да это возможно! Я не знаю как это делать в Delphi, но в .NET FrameWork SDK есть утилита AL.EXE которая объединяет все необходимые модули в одну сборку!
                              Неймспейсы лежат по следующим папкам:
                              %Program Files%\Borland\BDS\2.0\lib
                              %WINDOWS%\Microsoft.NET\Framework\v1.1.4322
                              %WINDOWS%\assembly\GAC
                                Дело не в книге, мне сейчас не краплет... Просто установив новый продукт я сделал быструю и беглую пробежку по разным аспектам, решил тут же поделиться впечатлениями. Я прекрасно понимаю, что .NET сильно и коренным образом отличается от VCL и MFC (про TurboVision вообще молчу), естественно что не смотря на это я вольно или невольно ищу элементы сходства того что есть с тем что было в предыдущих версиях и с тем опытом программирования который у меня есть. Кроме того меня на данном этапе не интересует детальные механизмы реализации всего и вся в .NET, а интересуют вопросы более общего, более абстрагированного от всяких механизмов плана, ответы на которые помогут оценить применимость продукта вообще, всей идеологии .NET в частности и выявить из них, то что поможет обрисовать область применения новых средств и те возможности которые они открывают (или закрывают). Например меня интересуют вопросы:

                                1) Как распространять приложения написанные на D8?
                                2) Как писать собственные компоненты и интегрировать их в среду? Какие отличия при разработке компонентов от предыдущих версий дельфи?
                                3) Насколько легка переносимость созданного .NET приложения на .NET платформу на другой оси, например под Linux?
                                4) Возможность использования стандартных DLL, ActiveX и т.п. в приложениях на D8 и какие ограничения. Если да, то возможно ли использование .so библиотек под Linux платформой?
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (15) [1] 2 3 ...  14 15 все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0427 ]   [ 16 queries used ]   [ Generated: 19.01.22, 23:46 GMT ]