Ańade un TPopupMrenu en el form (vacío sin opciones) (NOTA1) y asigna a la prieded PopupMenu del edit el anterior Popup.
Luego en el evento OnMouseUp coloca lo siguiente:
Código Delphi
[-]
var
b:Boolean;
begin
if (Button = mbRight) then begin
FontDialog1.Font.Name := Edit1.Font.Name;
FontDialog1.Font.Size := Edit1.Font.Size;
FontDialog1.Font.Color := Edit1.Font.Color;
b := FontDialog1.Execute;
if (b) then begin
Edit1.Font.Name := FontDialog1.Font.Name;
Edit1.Font.Size := FontDialog1.Font.Size;
Edit1.Font.Color := FontDialog1.Font.Color;
end;
end;
Como ves, primero se asigna al FontDialog las propiedades actuales del edit, para que aparezca inicializado con los valores actuales, luego se muestra el diálogo, se comprueba que se ha aceptado y finalmente se recuperan los valores.
(NOTA1): Esto del PopupMeniu es una manera de evitar que te aparezca el menu estandard del edit al pulsar click derecho. Seguro que hay alguna mejor, pero esta funciona.