Estoy haciendo pruebas con un componenet llamado nrComm que es un componente para capturar datos seriales. Funciona Ok sin embargo no puedo usarlo en un modulo de datos solo en un form asi que he decido crearlo en tiempo de ejecucion dentro de un DataModule.
Declaro en la unit del datamodule:
delphi
unit UdmNrComm; interface uses System.SysUtils, System.Classes, nrclasses, nrcomm; type TdmNrComm = class(TDataModule) procedure DataModuleCreate(Sender: TObject); procedure OnAfterReceive(Com: TObject; Buffer: Pointer; Received: Cardinal); private { Private declarations } public { Public declarations } end; var dmNrComm: TdmNrComm; ComPort: TnrComm; implementation uses UfrmStart; {%CLASSGROUP 'System.Classes.TPersistent'} {$R *.dfm}
Creo el componente
delphi
procedure TdmNrComm.DataModuleCreate(Sender: TObject); begin ComPort := TnrComm.Create(nil); ComPort.BaudRate := 9600; ComPort.ComPortNo := 6; ComPort.Parity := pNone; ComPort.StopBits := sbOne; ComPort.ByteSize := 8; ComPort.EnumPorts := epFullPresent; ComPort.BufferInSize := 8000; ComPort.BufferOutSize := 8000; ComPort.StreamProtocol := spNone; ComPort.OnAfterReceive := OnAfterReceive; ComPort.Active := True; end;
Trato de usar el procedimiento
delphi
procedure TdmNrComm.ComPortAfterReceive(Com: TObject; Buffer: Pointer; Received: Cardinal); var i:integer; ch:AnsiChar; begin //LO QUE TENGA QUE HACER end;
Recibo un aviso:
'TdmNrComm' does not contain a member named 'ComPortAfterReceive' at line 34(34:21)
Pienso que es una tontería pero no le encuentro..
Agradezco como siempre su atención!!