Como deixar o menu na mesma cor do form?
14/05/2008
0
Olá pessoal, gostaria de saber como posso deixar o Menu na mesma cor do Form, no meu caso seria na cor clBtnFace?? Desde já agradeço!!!
Vlw!!
[color=green:f6d4e317ae]Título editado. Não poste tudo em maiúsculas.[/color:f6d4e317ae]
Vlw!!
[color=green:f6d4e317ae]Título editado. Não poste tudo em maiúsculas.[/color:f6d4e317ae]
Osnir
Curtir tópico
+ 0
Responder
Posts
10/06/2008
Fabianosales
Osnir, para conseguir isto, você deve configurar a propriedade OwnerDraw do componente TMainMenu para True e implementar suas rotinas de desenho no evento OnAdvancedDrawItem de cada item do menu.
Isto pode ser um pouco trabalhoso porque os menus podem assumir diversos estados e para cada um destes, o menu deve ser desenhado de maneira a refletir seu estado atual (inativo, selecionado, highlited, etc..).
Os menus podem assumir os seguintes estados:
Segue um exemplo (note que somente alguns poucos estados foram tratados)
Isto pode ser um pouco trabalhoso porque os menus podem assumir diversos estados e para cada um destes, o menu deve ser desenhado de maneira a refletir seu estado atual (inativo, selecionado, highlited, etc..).
Os menus podem assumir os seguintes estados:
TOwnerDrawState = set of (odSelected, odGrayed, odDisabled, odChecked, odFocused, odDefault, odHotLight, odInactive, odNoAccel, odNoFocusRect, odReserved1, odReserved2, odComboBoxEdit);
Segue um exemplo (note que somente alguns poucos estados foram tratados)
procedure TForm2.Arquivo1AdvancedDrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState); begin if odSelected in State then begin ACanvas.Brush.Color := clBtnShadow; ACanvas.Font.Color := clWhite; end else if odHotLight in State then begin ACanvas.Brush.Color := clHighlight; ACanvas.Font.Color := clHighlightText; end else begin ACanvas.Brush.Color := clBtnFace; ACanvas.Font.Color := clBtnText; end; ACanvas.FillRect(ARect); ACanvas.TextOut(ARect.Left+3, Arect.Top+2, StringReplace((Sender as TMenuItem).Caption, ´&´, ´´, [])); end;
Responder
Clique aqui para fazer login e interagir na Comunidade :)