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