Desculpe Jhonas, mas copiei a mensagem de erro errada. Vou colocar aqui todos os códigos que estou usando. tavez esteja fazendo algo errado em outra parte: No form principal: ...
public
{ public declarations }
procedure SetBtnEvent(BtnID: byte; BtnEvent: TNotifyEvent);
end;
var
frmMain: TfrmMain;
implementation
...
procedure TfrmMain.SetBtnEvent(BtnID: byte; BtnEvent: TNotifyEvent);
begin
case btnID of
1: tbAdd.OnClick := BtnEvent; // botão insert
end;
end;
procedure TfrmMain.tbAddClick(Sender: TObject); //botão inserir
begin
dmMain.zqPES.Insert;
ShowMessage('Inserindo...'); //só para testar...
end;
...
Agora o código no form filho
...
public
{ public declarations }
procedure pesAddClick;
var
frmCadPessoas: TfrmCadPessoas(Sender: TObject);
implementation
...
procedure TfrmCadPessoas.pesAddClick; //procedimentos que devem ser feitos ao se precionar o botão de inserir no form principal
begin
if frmValCPF_CNPJ = nil then
Application.CreateForm(TfrmValCPF_CNPJ, frmValCPF_CNPJ);
frmValCPF_CNPJ.ShowModal;
if valCpfCnpj = True then
begin
dmMain.zqPES.Insert;
dmMain.zqFIS.Insert;
dmMain.zqEND.Insert;
EnableComponents(Self); //função própria
UnsetReadOnly(Self); //função própria
ClearComponents(Self); //função própria
dbeCOD.ReadOnly := True;
dbeCOD.Color := clForm;
dmMain.zqFISFIS_CPF.AsString :=
Copy(numCpfCnpj, 1, 3) + '.' + Copy(numCpfCnpj, 4, 3) + '.' +
Copy(numCpfCnpj, 7, 3) + '-' + Copy(numCpfCnpj, 10, 2);
cbTipo.ItemIndex := 0;
dbeNOME.SetFocus;
end;
end;
procedure TfrmCadPessoas.FormCreate(Sender: TObject);
begin
DisableComponents(Self);
filterClick := False;
ActiveSQLQuery := dmMain.zqPES;
frmMain.SetBtnEvent(1, pesAddClick); //erro nessa linha. Estou usando essa função no form create ao invez de onactive porque por enquanto so tenho 1 form filho.
end;
.
.. Ao compilar aparece esse erro: unitcadpessoas.pas(197,37) Error: Incompatible type for arg no. 2: Got "untyped", expected "<procedure variable type of procedure(TObject) of object;Register>" unitmain.pas(184,20) Hint: Found declaration: TfrmMain.SetBtnEvent(Byte,TNotifyEvent); Já tentei passar varios tipos de parametros e ate deixar sem nada como acima, mas nada funciona.