Paulo Nobre Postado Julho 8, 2004 Denunciar Share Postado Julho 8, 2004 Sabemos, que os menus não tem propriedade para mudar de cor, por exemplo ficar da mesma cor que foi escolhida para o form.Existe alguma maneira não complicada de mudar sua cor sem usar componentesexternos ao DELPHI?Paulo Nobre Link para o comentário Compartilhar em outros sites More sharing options...
0 KeitaroSan Postado Julho 8, 2004 Denunciar Share Postado Julho 8, 2004 Tipow, você pode personalizar um menu totalmente utilizando os eventos de desenho dele(onDrawItem e onMeasureItem), se você utilizar esses eventos, cada item do menu pode possuir uma cor diferente, font, estilo e tal...só não esqueça de checar o evento OwnerDraw pra True...Assim você faz seu próprio menu, maneiro, né? ^__^ Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Nobre Postado Julho 9, 2004 Autor Denunciar Share Postado Julho 9, 2004 Qual a diferença entre onDrawItem e onMeasureItem?Para mudar a cor(do menu principal) bastaria colocar, por exemplo,menuprincipal.color:= clred, no evento onDrawItem, é isto?Paulo Nobre Link para o comentário Compartilhar em outros sites More sharing options...
0 KeitaroSan Postado Julho 9, 2004 Denunciar Share Postado Julho 9, 2004 onMeasureItem - Occurs on owner-draw menu items to determine menu item size before the menu is drawn.onDrawItem - Occurs when an owner-draw menu needs to be drawn.ps.: Eu não traduzi por que assim cada um traduz da melhor maneira pra si...Se liga, vou postar abaixo um exemplo de personalização dos menus que fiz aqui...primeiro você poe um componente TMainMenu ou um TPopupMenu no form, feito isso, insira 2 menus e ponha no evento onDrawItem e no onMeasureItem deles, codigos parecidos com este aqui:procedure TForm1.Azul1MeasureItem(Sender: TObject; ACanvas: TCanvas; var Width, Height: Integer); begin with ACanvas.Font do begin Name := 'Times New Roman'; Color := clBlue; Size := 20; Style := [fsItalic, fsBold]; end; Width := ACanvas.TextWidth((Sender as TMenuItem).Caption) + 30; Height := ACanvas.TextHeight((Sender as TMenuItem).Caption) + 5; end; procedure TForm1.Azul1DrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; Selected: Boolean); begin with ACanvas.Font do begin Name := 'Times New Roman'; Color := clBlue; Size := 20; Style := [fsItalic, fsBold]; end; ACanvas.TextOut(ARect.Left + 10, ARect.Top + 2, TMenuItem(Sender).Caption); end; procedure TForm1.Vermelho1MeasureItem(Sender: TObject; ACanvas: TCanvas; var Width, Height: Integer); begin with ACanvas.Font do begin Name := 'Verdana'; Color := clRed; Size := 10; Style := [fsItalic, fsBold]; end; Width := ACanvas.TextWidth((Sender as TMenuItem).Caption) + 30; Height := ACanvas.TextHeight((Sender as TMenuItem).Caption) + 5; end; procedure TForm1.Vermelho1DrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; Selected: Boolean); begin with ACanvas.Font do begin Name := 'Verdana'; Color := clRed; Size := 10; Style := [fsItalic, fsBold]; end; ACanvas.TextOut(ARect.Left + 10, ARect.Top + 2, TMenuItem(Sender).Caption); end;Pronto... não vai ficar muito bonito porque eu fiz isso só de exemplo pra te mostrar como funciona o processo de desenho, mas você pode personalizar isso ao máximo, pode até colocar Imagem no Menu se quiser...falow Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Nobre Postado Julho 9, 2004 Autor Denunciar Share Postado Julho 9, 2004 Valeu, Keitaru, vou tentarPaulo Nobre Link para o comentário Compartilhar em outros sites More sharing options...
0 Corposemalma Postado Julho 12, 2004 Denunciar Share Postado Julho 12, 2004 Funcionou? Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Nobre Postado Julho 13, 2004 Autor Denunciar Share Postado Julho 13, 2004 Funcionou, apenas o fundo ficou branco!Paulo Nobre Link para o comentário Compartilhar em outros sites More sharing options...
0 Corposemalma Postado Julho 13, 2004 Denunciar Share Postado Julho 13, 2004 Posso fechar? Link para o comentário Compartilhar em outros sites More sharing options...
0 KeitaroSan Postado Julho 13, 2004 Denunciar Share Postado Julho 13, 2004 Funcionou, apenas o fundo ficou branco!Paulo Nobre Pinta o fundo tambem... com Canvas você tem como pintar tudo, da maneira que quiser, dá até pra você inserir uma imagem no fundo se quiser... o.o'' Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Nobre Postado Julho 16, 2004 Autor Denunciar Share Postado Julho 16, 2004 Valeu, pode fechar.Paulo Nobre Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Paulo Nobre
Sabemos, que os menus não tem propriedade para mudar de cor, por exemplo ficar da mesma cor que foi escolhida para o form.
Existe alguma maneira não complicada de mudar sua cor sem usar componentes
externos ao DELPHI?
Paulo Nobre
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados