Автор Тема: Документация по Free Pascal и Lazarus  (Прочитано 15513 раз)

artyomka

  • Гость
У кого-нибудь есть документация по Free Pascal и Lazarus
« Последнее редактирование: 13.05.2009 18:45:20 от kda »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 30 559
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Документация по Free Pascal и Lazarus
« Ответ #1 : 13.05.2009 19:15:21 »
http://www.freepascal.ru/article/

А пакет lazarus-doc и lazarus-examples  установлен ?
Там правда по-английски.

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 4 920
Re: Документация по Free Pascal и Lazarus
« Ответ #2 : 13.05.2009 23:53:03 »
У кого-нибудь есть документация по Free Pascal и Lazarus
книжки по borland pascal и delphi подходят.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 17 195
    • Домашняя страница
    • Email
Re: Документация по Free Pascal и Lazarus
« Ответ #3 : 20.05.2009 17:04:53 »
У кого-нибудь есть документация по Free Pascal и Lazarus
http://linux.armd.ru/common/img/uploaded/files/Urok_na_konkurs_-Gabdullina_.odt
Андрей Черепанов (cas@)

Оффлайн black

  • alt linux team
  • ***
  • Сообщений: 459
Re: Документация по Free Pascal и Lazarus
« Ответ #4 : 21.05.2009 12:40:03 »
Посмотрите также конкурсные работы:
http://freecode.pspo.perm.ru/glossary/index.html#Интегрированная среда разработки/Lazarus

oleg-it

  • Гость
Re: Документация по Free Pascal и Lazarus
« Ответ #5 : 08.01.2010 08:04:43 »
У кого-нибудь есть документация по Free Pascal и Lazarus
у Lazarus значительная совместимость с Object Pascal (Delphi). К тому же, сообщения об ошибках на русском.
Но самое главное - это создание собственной базы примеров  ::) 

Вот здесь можно посмотреть маленький пример маленького фотоальбома в Lazarus:
http://kslpk.ucoz.ru/forum/8-6-1#14

p.s. кстати, добавил пример "Графические возможности Lazarus - строим график функции Y=Sin(x)". Пример простой, для тех кто забудет как закрашивать точки    :)
« Последнее редактирование: 08.01.2010 20:36:23 от oleg-it »

oleg-it

  • Гость
Re: Документация по Free Pascal и Lazarus
« Ответ #6 : 09.01.2010 20:29:02 »
Создаем краткий справочник в Lazarus.



Назначение справочника - дополнять список команд BASH (можно добавлять любые текстовые файлы, например, по стандартным функциям/процедурам самомого Lazarus). Предоставить удобства графического интерфейса пользователю, или самому себе :)

   Пример 3. Создаем краткий справочник в Lazarus.

Решение->Программа.
------------------------------------
Процедура выполняющаяся при запуске главной формы
------------------------------------
procedure TForm1.FormShow(Sender: TObject);
Var Found:TSearchRec; FindResult: integer;
filename, cd:string;
begin
FindResult:=0;
{Узнаем путь откуда запущена программа}
cd:=ExtractFilePath(Application.ExeName);
 {Задаем рабочий каталог - в локальной папке /BIN и файлы храним в /BIN/bash-help}
SetCurrentDir(cd+'/bash-help/');
{Задаем маску}
filename:='*.txt';
FindResult:=FindFirst(filename,faAnyFile,Found);
while FindResult=0 do begin
{если не '.' & '..', то добавить в список}
if (found.name<>'.') and (found.name<>'..') then
   Listbox1.Items.Add(Found.Name);
   FindResult :=FindNext(Found);
end; {end while}
FindClose(Found);
Listbox1.Sorted:=true; {сортируем список по алфавиту}
end;
------------------------
Кнопка "Добавить справку Bash!"
---------------------
procedure TForm1.Button1Click(Sender: TObject);
 begin
{запускаем внешний скрипт - script, см. ниже!}
  ExecuteProcess('/bin/sh','-c "script"');
end;
----------------------------------
Кнопка: "Обновить список"
---------------------------------
procedure TForm1.Button2Click(Sender: TObject);
begin
    listbox1.Clear; {очистка списка}
    FormShow(Sender); {обновить список}
end;
-----------------------------------
Работа со списком: выбор файла справки
-----------------------------------
procedure TForm1.ListBox1Click(Sender: TObject);
 var filename:string;
begin
   try   {перехват ошибок}
     filename:= listbox1.Items[listbox1.ItemIndex];
     form1.Memo1.Lines.LoadFromFile(filename);
     form1.StatusBar1.SimpleText:=filename;
   {finally}
    except
    ShowMessage('Это директория!');
  end; {end try}
end;

p.s. Здесь все примеры в Lazarus: http://kslpk.ucoz.ru/forum/8-6-1
Кстати, не забудьте поместить StatusBar на форму!
И для поля Memo изменить значение для свойста ReadOnly - false на True
« Последнее редактирование: 19.01.2010 15:57:36 от oleg-it »

oleg-it

  • Гость
Re: Документация по Free Pascal и Lazarus
« Ответ #7 : 11.01.2010 12:28:17 »
В $man man (в конце) нашел как можно создавать текстовые файлы без специальных символом.
Команда:
$man last | col -b > last.txt
----------------
Памятка!
символ | перенаправляет выход с одной команды (процесса), т.е. man last на вход другой, т.е. col -b
А она, соответственно, перенаправляет результат в файл > last.txt
Такая конструкция в Linux называется конвейер (смотреть стр. 103 в книжке "Операционная система Linux. Курс лекций. Учебное пособие / Г. В. Курячий, К. А. Маслинский")

----------------
, т.е. запускаем эту команду и создаем читабельный файл, который затем будет виден в нашей программе.
На вопрос: а зачем вообще создавать еще одну справку, если есть man и info?
Отвечу: для того чтобы вывести справку по команде нужно ее помнить! А начинающему линуксоиду (например мне) трудно их охватить разом. А через небольшой список - в 15-20 команд - можно быстро сориентироваться и просмотреть значения опций и спец. ключей.

p.s. кстати, сократить код откомпилированной Lazarus-программы можно через команду:
$strip <имя программы>
« Последнее редактирование: 19.01.2010 12:53:42 от oleg-it »

Оффлайн maximnik

  • Завсегдатай
  • *
  • Сообщений: 13
Re: Документация по Free Pascal и Lazarus
« Ответ #8 : 16.01.2010 11:28:04 »
Есть еще книга по языку .
Правда маленько устарела и коечто уже поменялось .
Системное программирование в UNIX средствами Free Pascal .Авторы :
А.П. Полищук, С.А. Семериков  .


oleg-it

  • Гость
Re: Документация по Free Pascal и Lazarus
« Ответ #9 : 17.01.2010 20:20:28 »
Есть еще книга по языку .
Правда маленько устарела и коечто уже поменялось .
Системное программирование в UNIX средствами Free Pascal .Авторы :
А.П. Полищук, С.А. Семериков  .


Да, без системного программирования в Linux никак :)
----------
В качестве дополнения к вышеописанной программе прилагаю:

1. Скрипт по созданию man-файлов в "нашей" директории бз управляющих символов:

#!/bin/sh
# переходим в домашний bin-каталог пользователя
cd ~/bin/bash-help/
# читаем имя файла и присваиваем переменной NAME
echo Введите имя программы:
read NAME
# создаем справку на команду -> man $NAME
# перенаправляем вывод на
# "чистку" управляющих символов -> col -b
# создаем файл - $NAME.txt
man $NAME | col -b > $NAME.txt
echo "Создан файл $NAME.txt"


Сохранить все в script -> создать и поместить в локальную директорию ~/bin/ (в AltLinux по умолчанию bin/ прописан в PATH)-> туда же поместить откомпилированную программу и файлы пусть там создаются.
--------------------------
2. В Lazarus-программе (см. выше) помещаем кнопочку "Добавить файл" и пишем:

procedure TForm1.Button1Click(Sender: TObject);
begin

  {запустить внешнее приложение, в нашем случае сценарий script}
ExecuteProcess('/bin/sh','-c "script"');
end;

       
Он запустить командный интерпретатор, который попросит ввести имя файла, например ls и создаст файл ls.txt который будет виден в нашей программке..
Все. 
У меня это выглядит так:
« Последнее редактирование: 19.01.2010 12:55:15 от oleg-it »

Оффлайн AShen

  • alt linux team
  • ***
  • Сообщений: 37
Re: Документация по Free Pascal и Lazarus
« Ответ #10 : 20.01.2010 17:25:43 »
К тому же, сообщения об ошибках на русском.

Скажите спасибо Славе Дубровсокму за то, что при компиляции как в fpc, так и в lazarus'е сообщения на русском в utf8. А то было бы как в апстриме - на голландском ...  :D

oleg-it

  • Гость
Re: Документация по Free Pascal и Lazarus
« Ответ #11 : 20.01.2010 19:37:49 »
К тому же, сообщения об ошибках на русском.

Скажите спасибо Славе Дубровсокму за то, что при компиляции как в fpc, так и в lazarus'е сообщения на русском в utf8. А то было бы как в апстриме - на голландском ...  :D
Будь министром образования - премию бы дал :) за инициативу..
« Последнее редактирование: 21.01.2010 15:19:05 от oleg-it »

oleg-it

  • Гость
Re: Документация по Free Pascal и Lazarus
« Ответ #12 : 21.01.2010 15:45:58 »
Создаем меню и Панель инструментов в Lazarus.
------
Продолжаем усовершенствовать нашу программку.
На вопрос: зачем? :)
Отвечу: чтобы удобно было работать. Если немножко разнообразить нашу программку, то можно выводить справки не только команд Bash, но и текстовые фрагменты, например, описаний стандартных процедур  (сохраненные в файлы)  по самой системе Lozarus, или настройке web-сервера Apache, или Samba, или ...
-------
Алгоритм.

1. Щелкаем по Standart -> TMainMenu и добавляем три кнопки: Обновить список, Создать справку BASH и Выход.



2. Создаем события onClick (код см. ниже)

3. Добавляем панель инструментов: CommonControls -> TtoolBar
и сразу ImageList (если кнопки создать графические)



4. Добавляем три картинки. Не забудьте назначить Mask! например - 0, 1 и 2



5. Задаем для ToolBar (Панели инструментов, не кнопки!) Image - ImageList1
Для кнопок ToolButton1, 2 и 3:
  • ImageIndex - 0
(назначаем индексы картинок)
  • ImageIndex - 1
  • ImageIndex - 2

6. Событие для кнопок дублируем с меню: onClick - MenuItem1Click, для второй кнопки MenuItem2Click и для третьей MenuItem3Click.

См. результат:



Код:

{общая процедура вывода справки}
procedure help_name(name: string);
 Var Found:TSearchRec; FindResult: integer;
filename, cd:string;
begin
FindResult:=0;
{Узнаем путь откуда запущена программа}
cd:=ExtractFilePath(Application.ExeName);
 {Задаем рабочий каталог}
SetCurrentDir(cd+name);
 {Задаем маску}
filename:='*.txt';
FindResult:=FindFirst(filename,faAnyFile,Found);
while FindResult=0 do begin
{если не '.' & '..', то добавить в список}
if (found.name<>'.') and (found.name<>'..') then
   form1.Listbox1.Items.Add(Found.Name);
   FindResult :=FindNext(Found);
end; {end while}
FindClose(Found);
form1.Listbox1.Sorted:=true;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  {по умолчанию - справка по командам BASH}
   help_name('/bash-help/');
end;

procedure TForm1.ListBox1Click(Sender: TObject);
 var filename:string;
begin
   try   {перехват ошибок}
     filename:= listbox1.Items[listbox1.ItemIndex];
     form1.Memo1.Lines.LoadFromFile(filename);
     form1.StatusBar1.SimpleText:=filename;
   {finally}
    except
    ShowMessage('Это директория!');
  end; {end try}
end;
 {Первое меню и первая кнопка панели управления "Обновить список"}
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
    Form1.listbox1.Clear; {очистка списка}
    FormShow(Sender); {обновить список}
end;
{Второе меню и вторая кнопка - "Создать справку BASH"}
procedure TForm1.MenuItem2Click(Sender: TObject);
begin
  ExecuteProcess('/bin/sh','-c "script"');
end;
{Остановить процесс}
procedure TForm1.MenuItem3Click(Sender: TObject);
begin
  halt;
end;

« Последнее редактирование: 21.01.2010 15:47:50 от oleg-it »