Доброго времени суток!
В Си есть переменные класса памяти static, которые инициируются один раз и сохраняют свое значение после выхода из функции. Вопрос: есть аналог в лазарус или использовать глобальные переменные?
Модератор: Модераторы
procedure TForm1.Button1Click(Sender: TObject);
const
d : Double = 1.0;
begin
d := d * 2;
ShowMessage(Format("%.2f",[d]));
end;
SSerge писал(а):поскольку может повлечь трудно диагностируемые ошибки
Снег Север писал(а):Только при редкостной криворукости программиста
unit Unit1;
{$mode objfpc}{$H+}
interface
function Func1: integer;
function Func2: integer;
implementation
type
{ TMyClass }
TMyClass = class
field: integer;
constructor Create;
end;
TMyRec = record
field: integer;
end;
constructor TMyClass.Create;
begin
field := 0;
end;
var
MyClass: TMyClass = nil;
MyRec: TMyRec = (field: 0);
function Func1: integer;
begin
if MyClass = nil then
MyClass := TMyClass.Create;
Inc(MyClass.field);
Result := MyClass.field;
end;
function Func2: integer;
begin
Inc(MyRec.field);
Result := MyRec.field;
end;
end.
if GL_LibHandle = nil then
InitOpenGL;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15