FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Propiedad tipo Font
Hola...
En esta ocasion pretendo que el usuario de mi componente pueda establecer la fuente de mi componente, tengo una propiedad llamada InFont, al escribir esta propiedad, las caracteristicas se almancenan en una variable de tipo TFont (FInFont), el lio es que si no inicializo esta varible, delphi me dice que no se puede asignar nil a un tipo TFont... pero si la inicializo (FInFont:= TFont.Create) cuando modifico la fuente desde el cuadro de configuración que genera el elipsis del inspector de objetos, genera una excepcion de memoria... Espero me puedan colaborar... Salu2
__________________
Diego. Colombia es pasión. |
#2
|
||||
|
||||
Algo así:
Código:
type TuComponente = class(...) private FFont: TFont; procedure SetFont(Value: Font); public property Font: TFont read FFont write SetFont; end; FFont.Assign(Value) // Saludos |
#3
|
||||
|
||||
Perfecto... de verdad muchas gracias, ya me sacaste apuros 2 veces hoy. y... si no es mucha molestia quisiera incluir en mi componente algo como la version del mismo, como publico esta propiedad que sea de solo lectura???
Gracias de nuevo. Salu2
__________________
Diego. Colombia es pasión. |
#4
|
|||
|
|||
Si quieres mostrar tu propio diálogo
Código:
private FAbout : string; published property about: string read FAbout write FAbout; TAboutProperty = class(TPropertyEditor) public procedure Edit; override; function GetAttributes : TPropertyAttributes; override; function GetValue : string; override; end; implementation function TAboutProperty.GetValue: string; begin Result := Format('(%s)',[GetPropType^.Name]); end; function TAboutProperty.GetAttributes: TPropertyAttributes; begin Result := [paDialog]; end; procedure TAboutProperty.Edit; begin inherited; AboutBox := TAboutBox.Create(Application); try AboutBox.ShowModal; except on E: Exception do raise ECreateForm.Create(ErrorCreateForm + E.Message); end; end; uses en D5 (o inferior creo) : DsgnIntf Si no me he dejado nada, esto es todo Espero te sirva |
|
|
|