![]() |
Procedimiento para cambio de propiedades de Fonts
En el programa que estoy haciendo hago referencia muchas veces a cambiar a un tipo de letra específico.
Necesito crear un procedure donde le pueda asignar propiedades Name, Color, Size y Style a una fuente para no repetir código innecesariamente. Alguna solución (código) sencillo que me puedan pasar? |
sac,
Cita:
Revisa este código: El código anterior en Delphi 7 sobre Windows 7 Professional x32, Permite modificar selectivamente las propiedades de un TFont, como se muestra en la siguiente imagen: ![]() Espero sea útil :) Nelson. |
Gracias...
Muchas gracias por la respuesta... Probando
|
Pregunto...
Pregunto... No se puede crear una variable de tipo TFont donde se cargue una sola vez las propiedades que te dije antes y que desde el programa haga referencia cambiando como por ejemplo :
Declarar FuenteElegida:Tfont y después algo así: fuente elegida.Name := 'Tahoma', Size, color , style etc. y después, desde el programa ppal. una linea tipo memo1.lines.font:= fuenteElegida... Algo así se podrá? |
sac,
Cita:
Revisa este código: El código anterior en Delphi 7 sobre Windows 7 Professional x32, Permite modificar las propiedades de un TFont por medio de otro TFont, como se muestra en la siguiente imagen: ![]() Espero sea útil :) Nelson. |
nlsgarcia, OJO con el asignar a TFont a otro.
En tu último ejemplo, si no me falla los conceptos, cualquier posterior modificación de FontBase afectará al TFont de Label1, Edit1, Memo1 ya que en realidad cuando se hace Objeto.Font := OtroFont se está apuntándo a éste. Asi que habrá que tener cuidado de lo que se hace. Si se quiere copiar el contenido de un Font a otro puede usarse AsingTo() Saludos, |
Hola Delphius.
Al tratar con apuntadores es totalmente correcta tu apreciación, como queda claro en este ejemplo: Lo correcto sería usar el método Assign (*), que copia las propiedades a la otra instancia de TFont. Pero para el código anterior: Font , que estos componentes heredan de TControl, está definida como una propiedad: por lo que en el caso anterior, no se trataría de una asignación de punteros. Saludos :) |
Algo tan simple y, sin embargo, muy instructivo.
|
Problema Resuelto
Como dijera Casimiro muy instructivo todo. Con ustedes se aprende mucho.
Gracias. |
Cita:
Recuerdo de La Cara Oculta la advertencia que se daba justamente sobre TFont y por ello se me quedó en la cabeza que debía hacerse por medio de Assing(). Hagan de cuenta entonces que no dije nada. En Lazarus, las cosas son un poquito diferentes:
Y de curioso me puse a ver como está implementado el Assign() y vaya código de extraño e intrincado, me imaginaba algo más directo de copiar:
Saludos, PD: Se que no se debe hacer pero... ¿alguien más se anima a hecharle un ojo a mi hilo abierto hace unos días? :p |
Sí que es raro, además esos beginupdate y endupdate, como si fuese una transacción :confused:
|
Cita:
OJO: esto es código Lazarus. Desconozco si en Delphi es similar. Saludos, |
La franja horaria es GMT +2. Ahora son las 23:13:41. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi