delphi
type TdmSerial = class(TDataModule) cpComm1: TComPort; cdpCondec: TComDataPacket; procedure cdpCondecPacket(Sender: TObject; const Str: string); procedure cpComm1AfterClose(Sender: TObject); procedure cpComm1AfterOpen(Sender: TObject); procedure DataModuleCreate(Sender: TObject); private { Private declarations } FAjustesPuerto: string; FOnAbreCierraPuerto:TNotifyEvent; public { Public declarations } property AjustesPuerto: string read FAjustesPuerto write FAjustesPuerto; property OnAbreCierraPuerto: TNotifyEvent read FOnAbreCierraPuerto write FOnAbreCierraPuerto; end;
Como pueden ver estoy creando un campo llamado FAjustesPuerto y un Evento FOnAbreCierraPuerto.
Tambien estoy creando dos propiedades AjustesPuerto y OnAbreCierraPuerto.
Después desde un Formulario estoy tratando de usar este evento y propiedades del modulo de datos para mostrar el resultado en el panel 0 del StatusBar, sin embargo no consigo leer nada.
delphi
procedure TfrmInicial.FormCreate(Sender: TObject); begin dmSerial.OnAbreCierraPuerto := UpdateStatusBar; //Asignamos el evento end; procedure TdmSerial.cpComm1AfterClose(Sender: TObject); begin FAjustesPuerto := 'Desconectado'; //Disparamos el evento if assigned(FOnAbreCierraPuerto) then FOnAbreCierraPuerto(self); end; procedure TdmSerial.cpComm1AfterOpen(Sender: TObject); begin FAjustesPuerto := cpComm1.Port + ': ' + BaudRatetoStr(cpComm1.BaudRate ) + ',' + DataBitsToStr(cpComm1.DataBits) + ',' + ParityToStr(cpComm1.Parity.Bits ) + ',' + StopBitstoStr(cpComm1.StopBits); //Disparamos el evento if assigned(FOnAbreCierraPuerto) then FOnAbreCierraPuerto(self); end; procedure TfrmInicial.UpdateStatusBar(Sender: TObject); begin statusBar1.Panels[0].Text := dmserial.AjustesPuerto; end;
Por cierto no me pregunten de donde lei que esto se hacia asi porque no me acuerdo de la referencia

¿Alguna sugerencia?
Delphi XE2