Определение сборки Lazarus

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
ctm
новенький
Сообщения: 21
Зарегистрирован: 03.03.2010 15:34:29

Определение сборки Lazarus

Сообщение ctm »

Как определить сборку при написании исходного кода (т.е. директивы компилации, дефайны и т.п.)?
Поиск в инете и в исходниках не помог (может, не знаю что искать)...
modjo
новенький
Сообщения: 92
Зарегистрирован: 19.07.2009 15:52:10
Откуда: Москва

Сообщение modjo »

Есть такой вариае определение версии программы. Но оно работает, если в самой программе есть поддержка версий. (например это видно в свойства файла в виндах):

Код: Выделить всё

// Узнаем версию программы.
var
  Version: TFileVersionInfo;
  i: Integer;
begin
  Version := TFileVersionInfo.Create(nil);
  version.fileName:=ParamStr(0);                  // Указываем файл с которым работаем.
  with Version do
    for i := 0 to VersionStrings.Count-1 do       // Работаем с кучей информации о файле.
      if VersionCategories[i] = 'FileVersion' then
        begin
          StatusBar.Panels[1].Text := 'v' + VersionStrings[i];      // Указываем в программе версию.
          break;
        end;
  Version.Free;
end;
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

В RX я уже компоненту для этого сделал.
Одно но - оно будет работать только с FPC из транка. Библиотека поддержки версий в последнем стабильном релизе (как мне кажется) ещё не было.
ctm
новенький
Сообщения: 21
Зарегистрирован: 03.03.2010 15:34:29

Сообщение ctm »

Сорри не уточнил сразу - нужно отличить сборку под QT, GTK, Win32
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

Код: Выделить всё

{$ifdef LCLQT}
{$ifdef LCLGTK}
{$ifdef LCLWIN32}
ctm
новенький
Сообщения: 21
Зарегистрирован: 03.03.2010 15:34:29

Сообщение ctm »

в исходниках устанавливаемого пакета дефайны не определены, а в исходниках компилируемой программы задан соответствующий дефайн.
что-то подключить нужно?
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

ctm писал(а):в исходниках устанавливаемого пакета дефайны не определены, а в исходниках компилируемой программы задан соответствующий дефайн.
что-то подключить нужно?


нет. этот дефайн назначается самим Лазарусом при сборке проекта, через ключик компиляции (см. скриншот).

КО: ключик выбирается на основе выбранного Windgetset-а
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ctm
новенький
Сообщения: 21
Зарегистрирован: 03.03.2010 15:34:29

Сообщение ctm »

ага, вот в параметрах компиляции у проекта так и написано.
в параметрах компиляции у пакета нет ключей -d*
Ну идея понятна, спасибо
alaken
постоялец
Сообщения: 221
Зарегистрирован: 18.02.2010 08:02:13

Сообщение alaken »

alexs писал(а):В RX я уже компоненту для этого сделал.
Одно но - оно будет работать только с FPC из транка. Библиотека поддержки версий в последнем стабильном релизе (как мне кажется) ещё не было.

пробовал добавить компонент RX Пакет-Настройка установленных пакетов, из доступных выбрал rx 1.0 - Установить выбранное-Сохранить и перезапустить IDE

После перезапуска не вижу у себя во вкладках компонентов, вкладку rx, или она не должна появляться?
Аватара пользователя
AbakAngelSoft
постоялец
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар
Контактная информация:

Сообщение AbakAngelSoft »

Необходимо пересобрать среду: Сервис > Собрать lazarus
В ubuntu это надо делать от root т.е запускать среду надо через консоль

Код: Выделить всё

sudo startlazarus
alaken
постоялец
Сообщения: 221
Зарегистрирован: 18.02.2010 08:02:13

Сообщение alaken »

после нажатия кнопки "Сохранить и перезапустить IDE"Lazarus пересобирается...
сейчас попробую его пересобрать полностью.
проблема на WinXP под Ubuntu не пробовал.

Добавлено спустя 11 минут 41 секунду:
Пересобрал, ничего не изменилось. В сообщениях было написано что компонент rx скомпилировался. В закладках rx не появился...
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

alaken
Есть 2 RX
один начали давно портировать - и он идёт в составе самого Lazarus-а. Но потом это дело бросили.
Я продолжил дело - пакет называется rxfpc и находится в составе LazarusCCR - именно о нём я и говорил.
alaken
постоялец
Сообщения: 221
Зарегистрирован: 18.02.2010 08:02:13

Сообщение alaken »

пробую компилировать пакет, выдает
C:\lazarus\components\rxfpc\rxdbgrid.pas(65,15) Error: There is no method in an ancestor class to be overridden: "TRxColumnTitle.SetCaption(const AnsiString);
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Либо слишком старый Lazarus, либо слишком старые rxfpc.
Я работаю с транковой версией лазаря - поэтому и текущий rxfpc компилю в ней. Старые версии не обещаю поддерживать.
Ответить