Ver Mensaje Individual
  #4  
Antiguo 26-02-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Básicamente, tienes que crear un objeto de tipo Font (no basta declarar la variable, ties que crearla) y copiar las propiedades del objeto Font deseado, por ejemplo Edit1.Font.

Ahora bien, a partir de TComponent, Delphi implementa el método Assign, que algunas clases descendientes (pero no todas) usan para ese copiado de propiedades, de manera que se nos facilita el trabajo:

Código Delphi [-]
var
  Font: TFont;

begin
  Font := TFont.Create; // Hay que crear el objeto
  Font.Assign(Edit1.Font); // A partir de aquí, Font y Edit1.Font son indepedientes
  
  ...

  Font.Free; // Eventualmente hay que destruir lo que creamos
end;

Por otra parte, algo que te puede confundir al principio, es cuando haces una asignación del tipo:

Código Delphi [-]
Edit1.Font := Font;

En este caso, Edit1.Font y Font son ya independientes. La razón de esto es que en Delphi las propiedades de un objeto no necesariamente corresponden directamente a variables o campos dentro de la clase, sino que tras bambalinas, tal asignación se hace a través de un método SetFont de la clase TEdit, y este métod hace uso internamente de Assign:

Código Delphi [-]
procedure TEdit.SetFont(Value: TFont);
begin
  FFont.Assign(Font); // FFont es una variable privada de la clase
end;

// Saludos
Responder Con Cita