Fonte: www.planetadelphi.com.br
Olá Pessoal!!!
Bom estou aqui com mais uma dica que interessa a muitas pessoas! Personalizar
uma aplicação sem utilizar componentes externos.
Estaremos Pesonalizando os Menus de Nossa aplicação.
Mas antes quero esclarecer algumas coisas para quem esta procurando por isso:
-A dica é para personalizar os Menus da aplicação, tanto MainMenu quanto popupMenu.
-Para quem utiliza Delphi 7 (Exemplo) pode utilizar os Componentes ActionMainMenuBar e
ActionManager para fazer alguns MainMenus bacanas(em breve mostrarei passo-a-passo como
utilizar estes componentes que são muito legais de trabalhar).
-Neste exemplo estarei trabalhando com Canvas!
Então... Mãos à Obra!!!!
Neste exemplo que faremos utilizarei o Componentes MainMenu mas o que vai ser aplicado nele
pode ser sem problemas aplicado para um popupmenu.
Vamos deixar os nossos menus com uma aparência bem legal!.
Eventos Utilizados no componente: onDrawItem, onMeasureItem.
1º- Crie uma nova aplicação.
2º- Coloqueno formulario o componente MainMenu (Standard Palette).
3º- Ative a propriedade OwnerDraw do componente MainMenu.
3º- Abra o "Editor de Menus" dando 2 clique no componente e crie 1 menu.
(insira Caption, Name...)
4º- Acesse o Evento onDrawItem de deste item do Menu e vamos implementar o seguinte código:
}
procedure TForm1.Arquivo1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
//Pinta a opção
if Selected then //verifica se o item está selecionado
BEGIN
ACanvas.Brush.Color := $00EFD3C6; //cor de fundo do item (Lembrando que podemos printar um Imagem).
// Canv.Brush.Color := clAppWorkSpace;
ACanvas.Rectangle(Arect); //Desenharemos uma retangulo em todo o Item selecionado.
ACanvas.pen.Color:=$00C66931; //seta a cor da borda do retangulo.
InflateRect (ARect, -1,-1);
end
else
ACanvas.Brush.Color:=clMenu; //se não estiver selecionado o item coloca a cor normal do item.
//--> dietrich 01/02/2007
//coloca o texto
ACanvas.pen.Color:=clBlack; //cor
ACanvas.TextRect(ARect,ARect.Left+5, ARect.Top+1,'Sair');//local onde sera escrito o texto ARect
end;
Nenhum comentário:
Postar um comentário