Cita:
Empezado por elGuerrero
No se me había ocurrido hacerlo así, y sí es como lo imaginaba.
Lo extra que tendría que hacer sería agregarle otras propiedades que ya le había puesto a mi TEdit derivado.
Muchas gracias.
|
Debido a que ocupo otras propiedades de TEdit como TabOrder derive mejor de TLabeledEdit en lugar de TCustomLabeledEdit.
Les pongo lo escencial del código:
Código:
TEntradaTxt = class(TLabeledEdit)
FRequerido: Boolean;
procedure SetRequerido(lVal: Boolean);
public
constructor Create(AOwner: TComponent); override;
published
property Requerido: Boolean read FRequerido write SetRequerido;
end;
constructor TEntradaTxt.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FRequerido := False;
LabelPosition:= lpRight;
LabelSpacing := 4;
EditLabel.Caption:= '';
EditLabel.Font.Color:= clRed;
end;
procedure TEntradaTxt.SetRequerido(lVal: Boolean);
begin
if lVal <> FRequerido then
begin
FRequerido := lVal;
if lVal then
EditLabel.Caption:= '*'
else
EditLabel.Caption:= '';
RecreateWnd;
end
else
begin
//***mi parche***
if (not FRequerido) and (EditLabel.Caption <> '') then
EditLabel.Caption:= '';
end;
end;
El problema que tengo ahora es que en tiempo de diseño, cuando inserto el componente dentro de una WinForm me pone en el EditLabel.Caption la propiedad Name del componente.
A mi ver no me falta ninguna inicialización pero me sale ese valor y quise resolverlo agregando el código que marque con la etiqueta "mi parche", pero no me funciona.
En tiempo de diseño para borrar ese valor, una vez insertado el componente, en el Obj Inspector asigno con el mouse Requerido y luego lo desasigno y de esa manera desaparece el valor del Name en el Caption.
Podrian orientarme en ¿cómo puedo corregirlo para que salga en blanco en tiempo de diseño?
Gracias de antemano.