Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   personalizar menu (https://www.clubdelphi.com/foros/showthread.php?t=21097)

pablo 06-05-2005 06:47:34

personalizar menu
 
hola!
como puedo hacer para que el MainMenu tenga letras mas grandes, perzonalisarlo un poco digamos...
me habian dicho (no aqui) que toque la opcion font... pero no tiene!

saludos
pablo

marcoszorrilla 06-05-2005 07:02:55

Hay que poner la propiedad del OwnerDraw del MainMenu a True.
Y escribir este código en el evento OnDrawItem de la opción del menú que queremos aparezca con distintas carácterísticas.
Código Delphi [-]
 procedure TForm1.TuMenuDrawItem(Sender: TObject; ACanvas: TCanvas;  ARect: TRect; Selected: Boolean);
 begin
   with ACanvas do
   begin
     Font.Name:='Arial'; 
    Font.Color:=clGreen;
     DrawText(Handle,PChar((Sender as TMenuItem).Caption),-1,ARect,DT_VCENTER); 
  end;
 end;

Un Saludo.

pablo 12-05-2005 00:14:15

Cita:

Empezado por marcoszorrilla
Hay que poner la propiedad del OwnerDraw del MainMenu a True.
Y escribir este código en el evento OnDrawItem de la opción del menú que queremos aparezca con distintas carácterísticas.
Código Delphi [-]
 procedure TForm1.TuMenuDrawItem(Sender: TObject; ACanvas: TCanvas;  ARect: TRect; Selected: Boolean);
 begin
   with ACanvas do
   begin
     Font.Name:='Arial'; 
    Font.Color:=clGreen;
     DrawText(Handle,PChar((Sender as TMenuItem).Caption),-1,ARect,DT_VCENTER); 
  end;
 end;

Un Saludo.

Bien... estuve jugando con algo así: mirá:

procedure TFPrincipal.ARCHIVOS1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
with ACanvas do
begin
Font.Name:='System';
Font.Size := 20;
DrawText(Handle,PChar((Sender as TMenuItem).Caption),-1,ARect,DT_VCENTER);
end;

end;

procedure TFPrincipal.ARCHIVOS1MeasureItem(Sender: TObject;
ACanvas: TCanvas; var Width, Height: Integer);
begin
Width := 300;
Height := 40;
end;

El problema es en este ultimo evento, gracias al cual, por haber agrandado la letra en el anterior, puedo verla bien a lo ancho... pero el heigth no me lo cambia, por mas que le setee el valor aquí. Entonces veo bien el contenido del menu a lo ancho pero respecto a la altura queda "cortada por la mitad"... porque puede ser que me "ignore" el valore que le doy al heigth?

saludos
pablo


La franja horaria es GMT +2. Ahora son las 22:08:53.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi