.Проект вызвал класс исключения 'External: SIGSEGV'.
В файле 'pallete.pas' на строке 52:
MethodColorChange := ColorChange
Вот в чем собственно суть: есть класс TFormMain который устанавливает значение переменной процедурного типа в объекте класса TPalleteForm.
- Код: Выделить всё
unit Main;
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics,
Menus, ExtCtrls, StdCtrls, Buttons, ActnList, Spin, ComCtrls,
Pallete;
type
TFormMain = class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure ColorChange(Sender: TObject);
public
end;
var
FormMain: TFormMain;
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
PalleteForm.SetColorChange(@ColorChange);
end;
procedure TForm1.ColorChange(Sender: TObject);
begin
end;
end.
- Код: Выделить всё
unit Pallete;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Grids,
ExtCtrls;
type
TMethodColorChange = procedure(Sender: TObject) of object;
TPalleteForm = class(TForm)
private
MethodColorChange: TMethodColorChange;
public
procedure SetColorChange(ColorChange: TMethodColorChange);
end;
var
PalleteForm: TPalleteForm;
implementation
procedure TPalleteForm.SetColorChange(ColorChange: TMethodColorChange);
begin
MethodColorChange := ColorChange;
end;
end.
P.S. Тут не весь код, но только тот который имеет значение в данное проблеме.