Problem prawdopodobnie jest banalny jednak nie mogę sobie z nim poradzić.
Mianowicie definicje oraz fragment kodu wygląda następująco:
type
ButtonHandles = packed record
AButtonHandle:array[1..MaxButtonNumber] of TButton;
ButtonsTotal:byte;
end;
RTabButtonArray = packed record
ATabHandle: array[1..MaxTabNumber] of TTabSheet;
AButtonHandles: array[1..MaxTabNumber] of ButtonHandles;
TabsTotal:byte;
end;
var
TabButtonArray:RTabButtonArray;
procedure TMainWindow.CreateNewButton(Sender: TObject;var TabNumber:integer);
var ButtonNumber:byte;
begin
if Sender is TTabSheet then
begin
inc(TabButtonArray.AButtonHandles[TabNumber].ButtonsTotal);
ButtonNumber:=TabButtonArray.AButtonHandles[TabNumber].ButtonsTotal;
TabButtonArray.AButtonHandles[TabNumber].AButtonHandle[ButtonNumber]:=
TButton.Create(TabButtonArray.ATabHandle[TabNumber]);
with TabButtonArray.AButtonHandles[TabNumber].AButtonHandle[ButtonNumber] do
begin
Parent:=TabButtonArray.ATabHandle[TabNumber];
Left:=20;
Top:=20;
Width:=120;
Visible:=true;
Name:='ButtonT'+IntToStr(TabNumber)+'N1';
Caption:='Dodaj kolejny'; OnClick:=MainWindow.CreateNewButton(TabButtonArray.AButtonHandles[TabNumber].AButtonHandle[1],TabNumber);
end;
end
else
if Sender is TButton then
begin
end;
end;
Podczas kompilacji pojawia się błąd: E2010 Incompatible types: 'TNotifyEvent' and 'procedure, untyped pointer or untyped parameter'. Dotyczy on przypisania zdarzeniu OnClick procedury. Wydaje mi się, że problem dotyczy przekazywanego parametru TabNumber i można to obejść poprzez użycie zmiennej globalnej, jednak w jaki sposób można przekazać ją jako parametr procedury?