Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   TDTParseInputEvent, Bug de Delphi 7 ? (https://www.clubdelphi.com/foros/showthread.php?t=67443)

ecfisa 17-04-2010 09:38:30

TDTParseInputEvent, Bug de Delphi 7 ?
 
Hola a todos.
Haciendo unas pruebas con el componente TDateTimePicker para contestar a un compañero, creo que apareció un bug.
El problema sucede cuando pongo la propiedad ParseInput:= True para que me permita aprovechar el evento OnUserInput.
Pero este evento jamás se dispara. No es un componente que use mucho y nunca lo había notado.

Según la ayuda de Delphi:
Delphi syntax:
type TDTParseInputEvent = procedure(Sender: TObject; const UserString: string; var DateAndTime: TDateTime;
var AllowChange: Boolean) of object;

property OnUserInput: TDTParseInputEvent;

Sintetizando... el código que realizé:
Código:

type
  TForm1 = class(TForm)
    DTimePicker: TDateTimePicker;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
  private
    procedure DTimePickerUserInput(Sender: TObject; const UserString: string;
                      var DateAndTime: TDateTime; var AllowChange: Boolean);
  public
  end;
var
  Form1: TForm1;
 
implementation {$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  DTimePicker.ParseInput:= True;
  DTimePicker.OnUserInput:= DTimePickerUserInput;
end;
 
procedure TForm1.DTimePickerUserInput(Sender: TObject;
 const UserString: string; var DateAndTime: TDateTime;var AllowChange: Boolean);
begin
  ShowMessage('*'); // Beep o poniendo un Break, no entra a esta línea
end;

Si alguien encuentra algún error en el código, o sabe del bug, agradezco su respuesta.

Saludos.

rgstuamigo 17-04-2010 16:12:03

Segun mis pruebas el evento OnUserInput se dispara siempre y cuando el
TDateTimePicker tenga el cursor o el foco y presionemos con el Mouse como queriendo seleccionar una fecha del calendario(desplegar el calendario); al hacer ésto inmediatamente se dispara dicho evento.;)
Desde luego como tú lo has dicho la propiedad ParseInput del TDateTimePicker deberá estar en TRUE ;).
PD. Tal parece que la primera vez, al ejecutar la aplicacion, no se dispara dicho evento, pero luego si lo hace.;)
Saludos...:)

ecfisa 17-04-2010 19:18:25

Hola rgstuamigo, gracias por responder.:)

Sí, sucede tál como decis; al iniciar la aplicación no responde, luego sí.

Dado lo símple del código de prueba, viendo que no respondía y habiendo leido en la ayuda:
'Write an OnUserInput event handler implement special processing that needs to occur when the user types directly into the TDateTimePicker'
Todo me inducia a pensar que no se ejecutaba.

Gracias de nuevo y Saludos.


La franja horaria es GMT +2. Ahora son las 06:05:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi