Для старых систем какую версию fpc взять тогда?
Конечно хотелось бы использовать generic, не хочется возвращаться в pascal 90-ых.
Найдено 15 результатов
- 24.01.2026 13:55:14
- Форум: Free Pascal Compiler
- Тема: Хочу переписать свою библиотеку LDL на FreePascal
- Ответы: 4
- Просмотры: 1797
- 24.01.2026 11:57:13
- Форум: Free Pascal Compiler
- Тема: Хочу переписать свою библиотеку LDL на FreePascal
- Ответы: 4
- Просмотры: 1797
Хочу переписать свою библиотеку LDL на FreePascal
Приветствую!
Разрабатываю библиотеку LDL (Little DirectMedia Layer)
Основная идея, это поддержка старых и новых систем. Проблема в том, что бы обеспечить на С++ поддержку большого количества старых систем, это поиск С++ компиляторов настройка тулчейна и т.д И это меня очень сильно тормозит.
К ...
Разрабатываю библиотеку LDL (Little DirectMedia Layer)
Основная идея, это поддержка старых и новых систем. Проблема в том, что бы обеспечить на С++ поддержку большого количества старых систем, это поиск С++ компиляторов настройка тулчейна и т.д И это меня очень сильно тормозит.
К ...
- 24.06.2020 07:39:10
- Форум: Lazarus
- Тема: Отделение бизнес логики от базы
- Ответы: 5
- Просмотры: 6118
Отделение бизнес логики от базы
Приветствую!
Хотелось бы уточнить вопрос, как отделить бизнес логику от базы данных в проектах Lazarus?
Я знаю, что есть патnерн MVC но не видел его применения в Delphi/Lazarus. Может есть какие то практики, советы и т.д
Пример.
Есть таблица заказов в базе, данную информацию нужно выводить ...
Хотелось бы уточнить вопрос, как отделить бизнес логику от базы данных в проектах Lazarus?
Я знаю, что есть патnерн MVC но не видел его применения в Delphi/Lazarus. Может есть какие то практики, советы и т.д
Пример.
Есть таблица заказов в базе, данную информацию нужно выводить ...
- 12.06.2020 12:25:22
- Форум: Lazarus
- Тема: Задать прозрачность в TImage
- Ответы: 1
- Просмотры: 2708
Задать прозрачность в TImage
Приветствую.
Создал форму, к ней по размеру формы TBitmap. Все рисование происходит в TBitmap, после чего копируется на форму.
Загружаю bmp изображение, задаю цвет прозрачности, но картинка выводится целиком.
Инициализация
Manager := TResourceManager.Create();
MainWindow.Width ...
Создал форму, к ней по размеру формы TBitmap. Все рисование происходит в TBitmap, после чего копируется на форму.
Загружаю bmp изображение, задаю цвет прозрачности, но картинка выводится целиком.
Инициализация
Manager := TResourceManager.Create();
MainWindow.Width ...
- 04.06.2020 22:53:36
- Форум: Общее
- Тема: Реализация C++ std::string
- Ответы: 2
- Просмотры: 12010
Реализация C++ std::string
Приветствую.
Пытался реализовать строки string C++ на паскале. Что хочется добиться от таких строк.
Строка содержит массив char оканчивающаяся на 0.
Цель:
1. Строка должна уметь очищаться. (С++ реализации в индекс 0 присваивается символ 0)
2. При добавлении строки, строка расширяется на ...
Пытался реализовать строки string C++ на паскале. Что хочется добиться от таких строк.
Строка содержит массив char оканчивающаяся на 0.
Цель:
1. Строка должна уметь очищаться. (С++ реализации в индекс 0 присваивается символ 0)
2. При добавлении строки, строка расширяется на ...
- 19.02.2015 09:07:49
- Форум: Обучение Free Pascal
- Тема: Опережающее рбъявление object'а
- Ответы: 2
- Просмотры: 9372
Опережающее рбъявление object'а
Приветствую.
type
TList = Object;
PWidget = ^TWidget;
TWidget = Object
Next : PWidget;
Prev : PWidget;
Child: TList;
end;
PList = ^TList;
TList = Object // Duplicate identifier "TList"
//Forward type not resolved "TList"
Head: PWidget;
Tail: PWidget;
procedure ...
type
TList = Object;
PWidget = ^TWidget;
TWidget = Object
Next : PWidget;
Prev : PWidget;
Child: TList;
end;
PList = ^TList;
TList = Object // Duplicate identifier "TList"
//Forward type not resolved "TList"
Head: PWidget;
Tail: PWidget;
procedure ...
- 16.02.2015 18:19:50
- Форум: Обучение Free Pascal
- Тема: Вопрос о наследовании object'ов
- Ответы: 11
- Просмотры: 24881
Re: Вопрос о наследовании object'ов
В этом и хитрость
Имхо, вы перемудрили сами себя.
Создаете объект TList {ноду}, от него наследуете GameObject просто расширяя его полем с типом String... а уже от него расширяете до остальных объектов. Большая часть геморроя исчезнет, так как реализация разделится на "системную" и "прикладную ...
Имхо, вы перемудрили сами себя.
Создаете объект TList {ноду}, от него наследуете GameObject просто расширяя его полем с типом String... а уже от него расширяете до остальных объектов. Большая часть геморроя исчезнет, так как реализация разделится на "системную" и "прикладную ...
- 16.02.2015 17:15:14
- Форум: Обучение Free Pascal
- Тема: Вопрос о наследовании object'ов
- Ответы: 11
- Просмотры: 24881
Re: Вопрос о наследовании object'ов
Дож писал(а):I := I^.Next; //Error: Incompatible types: got "PGameObject" expected "PResource"
Это та же самая ошибка. Справа выражение типа PGameObject, а слева — переменная PResource. Решается также
Всё исправил. Спасибо за помощь.
- 16.02.2015 17:11:04
- Форум: Обучение Free Pascal
- Тема: Вопрос о наследовании object'ов
- Ответы: 11
- Просмотры: 24881
Re: Вопрос о наследовании object'ов
{$mode objfpc}{$H+}
{$ASSERTIONS ON}
Unit List;
interface
Uses
GameObject;
type
PList = ^TList;
TList = object
Head: PGameObject;
Tail: PGameObject;
procedure Create();
procedure Append(Elem: PGameObject);
procedure Destroy();
procedure Remove(Elem: PGameObject);
end ...
- 16.02.2015 17:02:16
- Форум: Обучение Free Pascal
- Тема: Вопрос о наследовании object'ов
- Ответы: 11
- Просмотры: 24881
Re: Вопрос о наследовании object'ов
Точно, что сразу и не подумал о приведении типов.
Но осталась ошибка.
function TResourceManager.Find(Src: STRING): PResource;
var
H: INTEGER;
I: PResource;
begin
H := Hash(Src);
I := PResource(Table[H].Head);
while (I <> NIL) and (I^.Name <> Src) do
begin
I := I^.Next; //Error ...
Но осталась ошибка.
function TResourceManager.Find(Src: STRING): PResource;
var
H: INTEGER;
I: PResource;
begin
H := Hash(Src);
I := PResource(Table[H].Head);
while (I <> NIL) and (I^.Name <> Src) do
begin
I := I^.Next; //Error ...
- 16.02.2015 16:53:38
- Форум: Обучение Free Pascal
- Тема: Вопрос о наследовании object'ов
- Ответы: 11
- Просмотры: 24881
Re: Вопрос о наследовании object'ов
Смысл в том, что для объектов которые я наследую от TGameObject, применять единые контейнеры, без написания новых под каждый тип. Да и по логике, именно наследование, позволяет это сделать. Есть конечно вариантная запись, но это больше хак, да и не удобен.
Добавлено спустя 4 минуты 33 секунды ...
Добавлено спустя 4 минуты 33 секунды ...
- 16.02.2015 16:15:57
- Форум: Обучение Free Pascal
- Тема: Вопрос о наследовании object'ов
- Ответы: 11
- Просмотры: 24881
Вопрос о наследовании object'ов
Приветствую.
Чуть кода.
У меня в проекте, есть базовый объект от которого наследуются остальные. Поля next и prev, нужны для реализации универсального списка, для остальных объектов.
type
PGameObject = ^TGameObject;
TGameObject = object
Next: PGameObject;
Prev: PGameObject;
end ...
Чуть кода.
У меня в проекте, есть базовый объект от которого наследуются остальные. Поля next и prev, нужны для реализации универсального списка, для остальных объектов.
type
PGameObject = ^TGameObject;
TGameObject = object
Next: PGameObject;
Prev: PGameObject;
end ...
- 28.02.2014 21:26:10
- Форум: Общее
- Тема: Ошибка 216 при создании класса.
- Ответы: 1
- Просмотры: 6803
Ошибка 216 при создании класса.
Добрый вечер.
{$mode objfpc}
unit SCL;
interface
TYPE
TList = Class
type
PList = ^AList;
AList = record
Next : PList;
Data : POINTER;
end;
var
First: PList;
Last : PList;
PROCEDURE Init();
PROCEDURE PushFront(v: POINTER);
END;
implementation
PROCEDURE TList ...
{$mode objfpc}
unit SCL;
interface
TYPE
TList = Class
type
PList = ^AList;
AList = record
Next : PList;
Data : POINTER;
end;
var
First: PList;
Last : PList;
PROCEDURE Init();
PROCEDURE PushFront(v: POINTER);
END;
implementation
PROCEDURE TList ...
- 19.12.2013 11:06:07
- Форум: Free Pascal Compiler
- Тема: Проблема с вариантными записями и строками
- Ответы: 3
- Просмотры: 4483
Re: Проблема с вариантными записями и строками
Эпопея завершена.
Для writeln нужно приводить в string
writeLn(string(i^.Button.Name));
writeLn(string(i^.CheckBox.Name));
Теперь всё робит.
Добавлено спустя 1 минуту 3 секунды:
Заменил string на PString
PString это же указатель на String... попробуй воспользоваться оператором взятия ...
Для writeln нужно приводить в string
writeLn(string(i^.Button.Name));
writeLn(string(i^.CheckBox.Name));
Теперь всё робит.
Добавлено спустя 1 минуту 3 секунды:
Заменил string на PString
PString это же указатель на String... попробуй воспользоваться оператором взятия ...
- 19.12.2013 10:51:11
- Форум: Free Pascal Compiler
- Тема: Проблема с вариантными записями и строками
- Ответы: 3
- Просмотры: 4483
Проблема с вариантными записями и строками
Приветствую.
Идея такова, хранить в одной записи, разные записи через вариантную запись в pascal. Вот код.
{$mode objfpc}{$H+}
program main;
type
Attr = (Button, CheckBox);
type
PButton = ^TButton;
TButton = record
Id : integer;
PosX : integer;
PosY : integer;
SizeX : ...
Идея такова, хранить в одной записи, разные записи через вариантную запись в pascal. Вот код.
{$mode objfpc}{$H+}
program main;
type
Attr = (Button, CheckBox);
type
PButton = ^TButton;
TButton = record
Id : integer;
PosX : integer;
PosY : integer;
SizeX : ...
