Ver Mensaje Individual
  #5  
Antiguo 21-05-2010
r1d2m3 r1d2m3 is offline
Miembro
 
Registrado: nov 2009
Posts: 88
Reputación: 17
r1d2m3 Va por buen camino
Gracias por las respuestas, les comento como estoy manejando esta cuestión, en el post que envié no había aclarado que lo que me interesaba averiguar es el tipo de componente que dispara un evento, en mi caso, el evento es el OnChange, como saben, el manejador del evento recibe el componente que lo convoca por medio de la variable Sender que es del tipo object. Esta variable tiene una propiedad llamada ClassName que devuelve el tipo de objeto, he utilizado esta propiedad y he resuelto el problema que es muy sencillo, lo que necesitaba poner era un msg al operador que indique la cantidad de caracteres que restan entrar en el campo, pero cuando se trata de un campo tsmemo su comportamiento era diferente, les dejo el código para su revisión.

Código Delphi [-]
procedure TfrmABMDatos.VerLargoCadena(Sender: TObject);
begin
  if Sender.ClassName = 'TsMemo' then
    statusForm.Panels[0].Text := 'Caracter [' + IntToStr(Length(TsEdit(Sender).Text)) + ']'
  else
    statusForm.Panels[0].Text := 'Caracter [' + IntToStr(Length(TsEdit(Sender).Text)) + ' de ' + IntToStr(TsEdit(Sender).MaxLength) + ']';
end;

cuando se trata de un tsmemo, la leyenda que aprece es simplemente la cantidad de caracteres que se han tipeado, pero cuando se trata de un campo tsedit, pongo la cantidad de caracteres disponibles restantes del largo máximo aceptado:

Caracter [2000] o bien Caracter [12 de 50]

Saludos y nuevamente, gracias por las respuestas.
Responder Con Cita