Manipulação do TMainMenu

Delphi

29/05/2006

Olá!!

Gostaria de saber como é possível resolver o seguinte problema.
Tenho que desenvolver o seguinte menu:

ITEM1 ITEM2 ITEM3 ITEM4 ITEM5 ITEM6

Estou usando o TMainMenu para colocar os itesns do Menu acima,
so que tenho que colocar o ITEM6 bem ´afastado´ do ITEM5, como consigo fazer isso!!!?!?!?!?!?


Developerb

Developerb

Curtidas 0

Respostas

Developerb

Developerb

29/05/2006

...alguem saberia resolver tao problema!!


GOSTEI 0
Rui Lisboa

Rui Lisboa

29/05/2006

Explique melhor.

Para faxer a separação coloca -


GOSTEI 0
Developerb

Developerb

29/05/2006

Eu tenho que construir um MENU da seguinte maneira!!

ITEM1 ITEM2 ITEM3 ITEM4 ITEM5................................ITEM6

O ITEM5 e o ITEM6 tem que haver um espaco entre eles, sendo que nao posso colocar nehum tipo de traco na propriedade CAPTIOIN.

Deve haver um jeito de fazer com que tenha o espaco sem prejudicar a forma original do menu.

O que eu ja fiz, adicionei varios ITEMS so que, se o usuario passar o mouse por cima do espaco, ele vera que tem botoes ´ocultos´.

Sera que nao tem uma forma de colocar um ENABLED FALSE para esse botoes que fornecem o espaco!?!??!?!?! 8)


GOSTEI 0
Adriano Santos

Adriano Santos

29/05/2006

Tenta adicionar em runtime.
Se tiver dúvidas, dá uma olhada no meu [url=https://www.devmedia.com.br/visualizacomponente.aspx?comp=1073&site=3]artigo[/url].


GOSTEI 0
Massuda

Massuda

29/05/2006

Nos tempos do Windows 3.x costumava-se por o menu Ajuda no lado direito da barra de menu. Isso ainda é suportado pelo Windows. Use este código...
function AlinharMenuItemADireita(const AItem: TMenuItem): Boolean;
var
    Info: MENUITEMINFO;
    S: string;
begin
    FillChar(Info, SizeOf(Info), #0);

    Info.cbSize := SizeOf(Info);
    Info.fMask := MIIM_TYPE;

    GetMenuItemInfo(AItem.Parent.Handle, AItem.Command, False, Info);

    Info.fType := Info.fType or (MFT_RIGHTJUSTIFY or MFT_STRING);

    S := AItem.Caption;
    Info.dwTypeData := PChar(S);
    Info.cch := Length(S);

    Result := SetMenuItemInfo(AItem.Parent.Handle, AItem.Command, False, Info);
end;
...coloque essa procedure na unit do seu form principal (nem precisa ser método do form). Use assim...
// no evento OnShow do seu form
procedure TSeuForm.FormShow(Sender: TObject);
begin
  AlinharMenuItemADireita(SeuMenuItem);
  // todos os menuitem´s à direita de SeuMenuItem
  // ficarão à direita na barra de menu
end;



GOSTEI 0
Adriano Santos

Adriano Santos

29/05/2006

Nos tempos do Windows 3.x costumava-se por o menu Ajuda no lado direito da barra de menu. Isso ainda é suportado pelo Windows. Use este código...
function AlinharMenuItemADireita(const AItem: TMenuItem): Boolean;
var
    Info: MENUITEMINFO;
    S: string;
begin
    FillChar(Info, SizeOf(Info), #0);

    Info.cbSize := SizeOf(Info);
    Info.fMask := MIIM_TYPE;

    GetMenuItemInfo(AItem.Parent.Handle, AItem.Command, False, Info);

    Info.fType := Info.fType or (MFT_RIGHTJUSTIFY or MFT_STRING);

    S := AItem.Caption;
    Info.dwTypeData := PChar(S);
    Info.cch := Length(S);

    Result := SetMenuItemInfo(AItem.Parent.Handle, AItem.Command, False, Info);
end;
...coloque essa procedure na unit do seu form principal (nem precisa ser método do form). Use assim...
// no evento OnShow do seu form
procedure TSeuForm.FormShow(Sender: TObject);
begin
  AlinharMenuItemADireita(SeuMenuItem);
  // todos os menuitem´s à direita de SeuMenuItem
  // ficarão à direita na barra de menu
end;


Show de bola [b:642ff74b27]Massuda[/b:642ff74b27]. Fica bem diferente né? Coisa de loko.


GOSTEI 0
Developerb

Developerb

29/05/2006

Ok!
Agradeço a atenção e a ajuda :lol:


GOSTEI 0
POSTAR