Домой! Знакомимся:
Free Pascal и Lazarus

Обновлено: August 05 2010 06:20

Это скорее путевые заметки при изучении Free Pascal и Lazarus, чем учебник. Собственно, учебники по Паскалю и Делфи есть, поэтому изучая Free Pascal и Lazarus нужно разобраться чем они отличаются от Turbo Pascal7 и Делфи7. Надеюсь, что эти заметки будут полезны.

Что такое FreePascal и Lazarus ?

Free Pascal является 32-х и 64-разрядным компилятором Pascal. Компилятор и Run-Time библиотеки доступны для многих операционных систем, в том числе: DOS, Linux, Windows, FreeBSD.
Free Pascal разработан с целью, насколько это возможно, обеспечения совместимости исходников с Turbo Pascal 7.0 и Delphi 7 (хотя эта цель еще не достигнута), а также улучшить эти языки такими элементами, как оператор перегрузки. И, в отличие от своих предшественников, он поддерживает несколько платформ.

Lazarus - это библиотеки классов Free Pascal для эмуляции Delphi. Free Pascal - это компилятор языка Паскаль, свободно распространяемый на условиях GNU Public License (GPL), который работает на многих платформах: Linux, Win32, OS/2, 68K и других. Free Pascal позволяет писать программы, используя объектно-ориентированный синтаксис Delphi. Так что Lazarus - это то недостающее звено, которое открывает возможности кроссплатформной разработки Delphi-подобных программ. В отличие от языка Java, на котором однажды написанные программы могут исполняться на разных платформах с помощью виртуальной машины, программы на Lazarus и Free Pascal могут быть скомпилированы без изменений в "родной" код различных платформ.

Отличия Free Pascal от Турбо7 и Делфи7

При портировании приложений Турбо7 и Делфи7 во Free Pascal и разработке приложений при помощи Free Pascal могут встретиться ситуации, требующие учета этих отличий, описанных здесь (сокращенный перевод гл.7 Руководства пользователя FPC 2.0.4).

Источники информации в Интернете.

  1. Сайт разработчиков FreePascal. Здесь можно найти дистрибутив FreePascal
  2. Страница разработчиков Lazarus. Здесь можно найти дистрибутив Lazarus
  3. Статьи о FreePascal и Lazarus
  4. Статьи о FreePascal и Lazarus
  5. Форум http://freepascal.ru/forum/
  6. Форум Free Pascal на delphimaster.ru
  7. Существует "Самоучитель по программированию на Free Pascal и Lazarus" (сообшил Viesturs Lasinskis). Авторы: Алексеев Е.Р., Чеснокова О.В., Кучер Т.В. Формат - .pdf 4,6Mb Сайты автора: ww.teacher.dn-ua.com и www.teacher.ucoz.net . Если там не найдете - пишите, размещу на win-ni.ru

Для изучения FreePascal пользовался документацией (папка \doc\), приложенной к дистрибутиву (eng), потому что не удалось найти в Интернете перевода для работы Offline.

Где черпать информацию о языке Pascal ?

Конечно, прежде всего в учебниках, из которых мне нравятся: А.М. и В.А. Епанешнековы - Turbo Pascal 7.0 и книги В.В.Фаронова. На этом сайте можно скачать учебник-справочник (Паскаль, основы Делфи), в котором много примеров выполнения учебных заданий. Полезно встроить в среду IDE Free Pascal русифицированный справочник по Borland Pascal (как это сделать - см здесь ). Если нужен файл Turbo.tph ( руссифицировал студент МГТУ им. Баумана Шепель Олег Борисович, известный в Internet как VideoLord.)

Примеры программ скомпилированных в FreePascal

  1. В цикле лекций приводился пример компиляции программы в cреде IDE FreePascal. Заметим, что компиляцию можно выполнять и в режиме командной строки, т е не используя IDE. Пусть текущая папка - E:\FPC2.0.4\bin\i386-win32\, содержащая .exe-файлы проекта FreePascal, (в том числе fp.exe - cреда IDE и fpc.exe - компилятор) и в нее вставлена папка Prob, в которой находится файл menu.pas. Тогда команда:
    > fpc prob\menu.pas
    - выполнит компиляцию файла menu.pas. Исполняемый файл menu.exe появится в папке prob
  2. Проблемы при компиляции в FPC этой программы для работы с файлом анкет
  3. Программа для подсчета числа строк в файле (из папки demo FreePascal). (paramstr, assign, reset, blockread, new, dispose). Опции компилятора
  4. FreePascal: Создание простейшего окна (Hello, World) на уровне WinAPI
  5. Free Pascal: Пример из папки examples: список устройств CDROM
  6. FreePascal: Пример из папки examples: Тестируем класс StringList
  7. Free Pascal: из папки examples: Доступ к базе данных MySQL4,5
  8. Free Pascal: из папки examples: Доступ к базе данных: ODBC - MS Access, MySQL
  9. Free Pascal: из папки examples: необратимое шифрование md5

Интерфейсные разделы модулей (версия fpc-2.2.4)

Чтобы пользоваться подпрограммами, описанными в модулях, нужно ознакомиться с заголовками этих подпрограмм. Поэтому здесь размещены интерфейсы некоторых модулей (хотя пользы от них мало). В Лазарусе тексты модулей доступны (как и в Делфи) если навести курсор на имя модуля (в предложении uses), нажать Ctrl а заием щелкнуть появившуюся ссылку. (А без Ctrl - виден путь к модулю на диске)

  1. CRC, хеширование, шифрование: crc, md5, ntlm
  2. Базы данных: MySQL

Программы с графическим интерфейсом. Lazarus.

Создаем приложения в среде Лазарус

Примечание:
Тексты большинства исходников - в кодировке UTF8, однако, если у Вас WinXP, то просматривать тексты Вы сможете блокнотом (или в Лазарусе).

Опыты с перекодировкой Win1251 -> UFF-8

  1. Обе кодировки открываются блокнотом (WinXP) и он сохраняет в любой (по выбору) кодировке

  2. Текст PHP-скрипта перекодировки (полезно посмотреть его, переключившись в кодировку UTF-8):
    <?
    //Copyright:  akaghost@ua.fm
    $ttbl=array("А"=>"Рђ","Б"=>"Р‘","В"=>"Р’","Г"=>"Р“","Д"=>"Р”","Е"=>"Р•","Ё"=>"РЃ",
    "Ж"=>"Р–","З"=>"Р—","И"=>"Р�","Й"=>"Р™","К"=>"Рљ","Л"=>"Р›","М"=>"Рњ","Н"=>"Рќ",
    "О"=>"Рћ","П"=>"Рџ","Р"=>"Р ","С"=>"РЎ","Т"=>"Рў","У"=>"РЈ","Ф"=>"Р¤","Х"=>"РҐ",
    "Ц"=>"Р¦","Ч"=>"Р§","Ш"=>"РЁ","Щ"=>"Р©","Ъ"=>"РЄ","Ы"=>"Р«","Ь"=>"Р¬","Э"=>"Р­",
    "Ю"=>"Р®","Я"=>"РЇ","Ї"=>"Р‡","І"=>"Р†","Є"=>"Р„","Ў"=>"РЋ","а"=>"Р°","б"=>"Р±",
    "в"=>"РІ","г"=>"Рі","д"=>"Рґ","е"=>"Рµ","ё"=>"С‘","ж"=>"Р¶","з"=>"Р·","и"=>"Рё",
    "й"=>"Р№","к"=>"Рє","л"=>"Р»","м"=>"Рј","н"=>"РЅ","о"=>"Рѕ","п"=>"Рї","р"=>"СЂ",
    "с"=>"СЃ","т"=>"С‚","у"=>"Сѓ","ф"=>"С„","х"=>"С…","ц"=>"С†","ч"=>"С‡","ш"=>"С€",
    "щ"=>"С‰","ъ"=>"СЉ","ы"=>"С‹","ь"=>"СЊ","э"=>"СЌ","ю"=>"СЋ","я"=>"СЏ","і"=>"С–",
    "ї"=>"С—","є"=>"С”","ў"=>"Сћ");
    $string=join("", file("input.win"));
    echo strtr($string, $ttbl);
    ?>
  3. Перекодировщик на Паскале. Текст для FreePascal (подсказал v-t-l - форум FreePascal.ru )
        program win1251_UTF_8;
        var
          f1, f2: Text;
          s: string;
        begin
          if paramcount<2 then
            begin
              writeln('Usage: win1251_UTF_8 infile outfile');
              readln; halt(1);
            end;
          Assign(f1, ParamStr(1));
          Reset(f1);
          Assign(f2, ParamStr(2));
          Rewrite(f2);
          while not EOF(f1) do
          begin
            ReadLn(f1, s);
            WriteLn(f2, AnsiToUtf8(s));
          end;
         Close(f1); Close(f2);
        end.









Реклама от TUT.SU »