No he logrado que funcione el componente eventalert colocado en las forms generados desde ell form principal.
El codigo del proyecto es este.
Código Delphi
[-]program MiApp;
uses
Forms,
MDatos in 'MDatos.pas' ,
Papeleta in 'Papeleta.pas' ,
Main in 'Main.pas' ,
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TDM, DM);
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end.
cuando ejecuto la aplicacion me muestra el form pricipal (Main), desde el cual metiendo un comando en un edit ejecuto la accion, en este caso generar un nuevo form
Código Delphi
[-]procedure TfrmMain.ProcesaComando(ComandoAProcesar : String);
var
NewFolio : Integer;
begin
if Comandos.Text='NP' then
begin
frmPapeleta:=TfrmPapeleta.Create(Self);
frmPapeleta.Show;
end;
end;
de esta manera cuantas veces ponga el comando "NP" se generara un nuevo form y los tendre en pantalla, y podre moverme de uno a otro para meter datos correspondientes.
Bien, este form (frmPapeleta) contiene un FIBDataset, con su respectivo datasource, y con un eventalert. El codigo al meter datos y el del eventalert es:
Código Delphi
[-]procedure TfrmPapeleta.Button1Click(Sender: TObject);
begin
tblDetalles.Insert;
....
....
....
tblDetalles.Post;
end;
procedure TfrmPapeleta.SIBfibEventAlerter1EventAlert(Sender: TObject;
EventName: string; EventCount: Integer);
begin
If EventName='mod_regs_detalles' then
begin
if tblDetalles.Active then tblDetalles.FullRefresh;
ShowMessage('Refresco tabla detalles'); end;
end;
sin embargo cuando hay modificaciones en la tabla a la que esta enlazada el FIBDataset, el evento no se dispara en los forms (frmPapeleta) que tengo en pantalla, sin embargo si el eventalert lo coloco en el form principal (frmMain) funciona perfectamente. Cual es el problema??? o que estoy haciendo mal??? porque no se dispara en estos forms????