Ver Mensaje Individual
  #1  
Antiguo 12-09-2014
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Reputación: 20
FGarcia Va por buen camino
Asignar un evento a un componente creado en tiempo de ejecucion

Espero me puedan ayudar en este pequeño problema

Estoy haciendo pruebas con un component 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 así que he decido crearlo en tiempo de ejecución dentro de un DataModule.

Declaro en la unit del datamodule:

Código 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

Código 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

Código 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:

Cita:
'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!!
__________________
ESTO ES UN FORO ... NO UN MÓVIL
¿Por qué no escribir de una manera comprensible para que los humanos lo podamos entender?
Responder Con Cita