ƒомой! «накомимс€: Free Pascal и Lazarus


Ёто скорее путевые заметки при изучении Free Pascal и Lazarus, чем учебник. —обственно, учебники по ѕаскалю и ƒелфи есть, поэтому изуча€ Free Pascal и Lazarus нужно разобратьс€ чем они отличаютс€ от Turbo Pascal7 и ƒелфи7.

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

Free Pascal (FPC) €вл€етс€ 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 .  опию (возможно, устаревшую) можно скачать (4Mb, .rar) на моем сайте.

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

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

 онечно, прежде всего в учебниках, из которых мне нрав€тс€:
ј.ћ. и ¬.ј. ≈панешнековы - Turbo Pascal 7.0 (можно скачать в формате .djvu, 2Mb) и книги ¬.¬.‘аронова.

Ќа этом сайте можно также скачать авторкий учебник-справочник (ѕаскаль, основы ƒелфи), в котором много примеров выполнени€ учебных заданий.

ѕолезно встроить в среду IDE Free Pascal русифицированный справочник по Borland Pascal (как это сделать - см здесь ). Ќеобходимый дл€ этого файл Turbo.tph ( руссифицировал студент ћ√“” им. Ѕаумана Ўепель ќлег Ѕорисович, известный в Internet как VideoLord.) - здесь (0,3ћб .rar). ѕереименуйте как-нибудь англо€зычный Turbo.tph добавьте вместо него скачанный и распакованный Turbo.tph

ѕримеры программ скомпилированных в 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. ѕрограмма (Turbo Pascal7) дл€ работы с файлом анкет
  3. ѕроблемы при компил€ции в FPC этой программы дл€ работы с файлом анкет
  4. ѕрограмма дл€ подсчета числа строк в файле (из папки demo FreePascal). (paramstr, assign, reset, blockread, new, dispose). ќпции компил€тора
  5. FreePascal: —оздание простейшего окна (Hello, World) на уровне WinAPI
  6. Free Pascal: ѕример из папки examples: список устройств CDROM
  7. FreePascal: ѕример из папки examples: “естируем класс StringList
  8. Free Pascal: из папки examples: ƒоступ к базе данных MySQL4,5
  9. Free Pascal: из папки examples: ƒоступ к базе данных: ODBC - MS Access, MySQL
  10. 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.
Rambler's Top100
Hosted by uCoz