Die Komponente zum Testen ist noch nicht in der LCL registriert.
Code: Alles auswählen
type
TKoSys=class(TPaintbox)
private
FOnPaint:TNotifyEvent;
BkColor:TColor; {Hintergrundfarbe des KoSys}
procedure SetBackColor(c:TColor);
protected
public
property Canvas;
constructor Create(aOwner : TComponent ); override;
destructor Destroy; override;
procedure Paint; override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure MouseMove(Shift: TShiftState; X,Y: Integer); override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
published
{Eigenschaften, die ggf. im Objectinspektor editierbar sind}
property BackColor:TColor read BkColor write SetBackColor;
property OnPaint:TNotifyEvent read FOnPaint write FOnPaint;
end;
Code: Alles auswählen
TKoSysKomponenteForm = class(TForm)
MainMenu: TMainMenu;
KoSysPanel: TPanel;
TestMenuItem: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure TestMenuItemClick(Sender: TObject);
private
{ private declarations }
MyKoSys:TKoSys;
procedure MyKoSysPaint(Sender:TObject);
procedure TKoSysKomponenteForm.FormCreate(Sender: TObject);
begin
MyKoSys:=TKoSys.Create(Self);
MyKoSys.Parent:=KoSysPanel;
MyKoSys.Align:=alClient;
MyKoSys.OnPaint:=MyKoSysPaint; //Fehler: kompiliert aber in Delphi6 ohne Probleme
{Error: Wrong number of parameters specified for call to "MyKoSysPaint"}
end;
procedure TKoSysKomponenteForm.MyKoSysPaint(Sender:TObject);
begin
with MyKoSys.Canvas do begin MoveTo(100,100); LineTo(300,100); end;
inherited Paint;
end;
hinzufügen kann.
Warum kompiliert Delphi6 das ganze ohne Probleme?
Warum bekomme ich statt dessen bei Lazarus den obigen Fehler?
Wie könnte die Lösung hier aussehen?
Vielen Dank schon mal.