PDA

Ver la Versión Completa : font del memo sea escalable


morfeo21
17-12-2010, 21:24:58
Buenas tardes amigos del foro ,una vez mas solicitando ayuda.
tengo una inquietud con respecto a algo que se me presento al mostrar ayudas flotantes de articulos. pues veran los articulos que muestra esta ayuda son en base a la peticion de usuario realizando varios filtros en la base de datos ; esto funciona correctamente pero el problema esta en la parte en la cual se muestra las especificaciones del producto en un componente memo el cual esta definido del mismo tamanio que el componente memo en la cual se realiza la carga ; pero cuando ellos maximizan el componente memo que contiene el texto el contenido del texto se distorciona asi es que lo que pretendo es que si ellos maximizan el memo la letras crescan en proporcio al tamanio del form que la contiene . existe alguna propiedad para ello ? gracias de antemano por su repuesta.:o

rgstuamigo
18-12-2010, 15:51:32
...pero cuando ellos maximizan el componente memo que contiene el texto el contenido del texto se distorciona asi es que lo que pretendo es que si ellos maximizan el memo la letras crescan en proporcio al tamanio del form que la contiene
...
A que te refieres cuando hablas de Maximizar un Memo?:confused:
No será mas bien Maximizar el formulario?:rolleyes:.
Explicate un poco mejor.;)
Saludos...:)

ecfisa
20-12-2010, 08:57:51
Hola morfeo21.

Si la propiedad Align del Memo es alClient, una forma de hacer lo que querés es la siguiente:


type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormShow(Sender: TObject);
procedure FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
private
FRate, FSize : Integer;
public
end;
...
interface
...
procedure TForm1.FormShow(Sender: TObject);
begin
FRate:= ClientWidth * ClientHeight;
FSize:= Memo1.Font.Size;
end;

procedure TForm1.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
var
NewSize: Integer;
begin
NewSize:= Trunc(NewWidth * NewHeight * FSize / FRate);
if NewSize > 0 then
Memo1.Font.Size:= NewSize
end;

De ese modo el tamaño del font crece o decrece de acuerdo al tamaño del form (no del Memo), pero al estar este último
alineado alClient, logras el efecto deseado.

Saludos.

morfeo21
23-12-2010, 21:27:38
Muchas gracias por sus respuestas me pondré a realizar los cambios necesarios en mi proyecto sabia que podía contar con ustedes.