воскресенье, 15 февраля 2009 г.

Секреты Delphi или переход с Pascal

Обычно, начинающие программисты, переходя с языка Pascal на Delphi, перетаскивают свои старые функции и прочие участки часто встречающегося кода без изменений, не зная, сколько всего уже реализовано в VCL. Связанно это, прежде всего, с тем, что чаще всего при преподавании языка Pascal в учебных заведениях рассматривают только модули CRT и Graph, содержащие только базовые функции, а современные технические писатели, описывающие Delphi, рассматривают только малую часть всех возможностей данного языка. Вот и выходит, что код нагромождается лишними, часто неоптимизированными функциями.
Так было и со мной, когда после года изучения языка Pascal в вузе, я решил сам освоит Delphi. Купил несколько книжек по данному языку, разобрался с тем, как создавать формы, вводить и выводить данные, стал писать простенькие программы. Но чем больше я углублялся в Delphi, тем чаще стал замечать, что большинство написанного мною кода уже реализовано в стандартных модулях. Изучая исходный код VCL, я открыл для себя много замечательных функций и типов, которые здорово облегчили бы мне работу над многими программами. Сейчас, разрабатывая уже достаточно сложные программы, прежде чем написать какую-нибудь функцию, которая делает более-менее стандартные действия, я проверяю - нет ли уже её реализации в VCL и, процентах в тридцати, такая функция оказывается.
Так вот, совершенно недавно, открыв для себя замечательным модуль ConvUtils (о нем мы еще поговорим), я решил написать данную статью, дабы рассказать новичкам, стремящимся изучить замечательный язык программирования Delphi, о скрытых функциях и возможностях, которые почти нигде не описаны и сразу не бросаются в глаза.
Итак, начнем: Рефакторинг.

3 комментария:

  1. По всей видимости, говоря VCL автор подразумевал RTL. Все-таки путать не нужно, это разные библиотеки

    ОтветитьУдалить
  2. RTL - общее название набора модулей для систем программирования. В Delphi же используется именно VCL. Я понимаю, что слово Visual в расшифровке аббревиатуры (Visual Component Library) может навести на мысль что библиотека представляет собой только средства визуализации (элементы управления и вывода информации), но это не так.

    ОтветитьУдалить
  3. Ты не совсем прав. RTL - это еще и название рантайм-библиотеки Delphi. Эта библиотека представляет собой пакет rtl.bpl, в отличие от VCL, которая представляет собой пакет vcl.bpl. Это две совершенно разные библиотеки. Вообще, в заголовке стандартных юнитов написано, в какую библиотеку он входит - RTL или VCL.
    CodeGear Delphi Runtime Library - это RTL
    CodeGear Delphi Visual Component Library - это VCL.
    VCL - это именно библиотека визуальных (но не только) компонент, а RTL - это библиотека рантайм инструментария, к визуальным компонентам не имеющая никакого отношения. VCL начинается с юнита Controls.pas, а всякие там ConvUtils, SysUtils, Classes, Variants и т.д. - это RTL.

    ОтветитьУдалить