我有一个动态代码,它在 StringGrid 单元格中创建了一个组合框,这个组合是在运行时创建的,我应该为它设置 onChange 事件。我在下面使用这段代码,但是这段代码引发了一个异常,有人可以帮我在 TNotifyEvent 中成为我的 comboBoxOnChange 方法吗?
procedure TForm1.gridSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
var
R: TRect;
combo : TComboBox;
procedure comboBoxOnChange(Sender: TObject);
begin
combo.Visible := false;
combo.Free;
end;
begin
combo := TComboBox.Create(self);
combo.Parent := self;
//[DCC Error] Unit1.pas(57): E2010 Incompatible types: 'TNotifyEvent' and 'procedure, untyped pointer or untyped parameter'
combo.OnChange := comboBoxOnChange;
combo.Items.Add('Item1');
combo.Items.Add('Item2');
combo.Items.Add('Item3');
combo.Items.Add('Item4');
combo.Items.Add('Item5');
combo.Items.Add('Item6');
combo.Items.Add('Item7');
combo.Items.Add('Item8');
combo.Items.Add('Item9');
combo.Items.Add('Item10');
R := Grid.CellRect(ACol, ARow);
R.Left := R.Left + grid.Left;
R.Right := R.Right + grid.Left;
R.Top := R.Top + grid.Top;
R.Bottom := R.Bottom + grid.Top;
combo.Left := R.Left + 1;
combo.Top := R.Top + 1;
combo.Width := (R.Right + 1) - R.Left;
combo.Height := (R.Bottom + 1) - R.Top;
combo.Visible := True;
combo.SetFocus;
CanSelect := True;
end;