Buscar

Mainmenu e popupmenu personalizados utilizando canvas (muito simples)

Código

{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;
 

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Componentes
Adicionada dia: 01/02/07
Por: Rafael Dietrich
Visualizada: 39508 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009