Ver Mensaje Individual
  #2  
Antiguo 12-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Fidel.

No veo nada malo en tu codigo...

Ciertamente no tengo el componente TnrComm ni conozco el funcionamiento, pero para salir de toda duda hice una prueba con un control estándar (TEdit) siguiendo la lógica del código y funciona sin errores.

DataModule:
Código Delphi [-]
uses
  SysUtils, Classes, StdCtrls, Graphics;

type
  TdmNrComm = class(TDataModule)
    procedure DataModuleCreate(Sender: TObject);
     //procedure EditKeyPress(Sender: TObject; var Key: Char); { también probado }
  private
    procedure EditKeyPress(Sender: TObject; var Key: Char);
  public
  end;

var
  dmNrComm: TdmNrComm;
  ComPort: TEdit;
....
procedure TdmNrComm.DataModuleCreate(Sender: TObject);
begin
  Randomize;
  ComPort:= TEdit.Create(Self);
  ComPort.Left:= 10;
  ComPort.Top := 10;
  ComPort.Width:= 300;
  ComPort.Color:= clYellow;
  ComPort.OnKeyPress:= EditKeyPress;
  ComPort.Visible:= True;
end;

procedure TdmNrComm.EditKeyPress(Sender: TObject; var Key: Char);
begin
  if Key <> #8 then
    Key:= UpCase(Char(Random(222)+33));
end;

Unit1:
Código Delphi [-]
...
implementation

uses UdmNrComm;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ComPort.Parent:= Self;
end;
La instancia de TdmNrComm está creada antes que la de TForm1.

Lo único que creo que podría estar provocando el error es el método Active en la línea
Código Delphi [-]
ComPort.Active := True;
haciendo alguna actividad no tolerada desde un TDataModule... ¿ Intentaste ejecutarlo con esa línea comentada ?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita