PDA

Ver la Versión Completa : Elemento del menú a la derecha


José Luis Garcí
15-12-2013, 14:19:32
Hola compañeros, estoy intentando pasar mi último elemento del menú a la derecha y no lo logro, he seguido el código de las siguientes página y no lo logro

http://neftali.clubdelphi.com/?p=50

De hecho de esta hice pruebas y funcionaba, coloco el procedure y en el oncreate coloco

MenuItemAtRight(Self.MainMenu1,Windows.GetMenuItemCount(Self.MainMenu1.Handle)-1);

y nada.

de las siguientes páginas he probado con

http://www.scalabium.com/faq/dct0060.htm

Con los dos metidos propuestos y antes de esta con e el que hay en about en

http://delphi.about.com/od/adptips2006/qt/rightalignmenu.htm

y no logro que funcione, tengo que hacer algo más?

Estoy en Windows 7 a 64 b. con delphi 2010 y en mi form actualmente esta el evento Show, el Oncreate la selección del item para salir (es una barra de herramientas) el último item tiene el Caption R y es el iemmenu Reloj1 y aparte de est el Tmainmenu es Menu y hay un timer con interval 100 y con el siguiente código

procedure TFmenu.Timer1Timer(Sender: TObject);
begin
Menu.Items[5].Caption:='Día: '+DateToStr(now)+ ' Hora: [ '+TimeToStr(Now)+' ]';
end;

Si podéis echarme una mano se agradecería.

dec
15-12-2013, 18:53:51
Hola,

No sirve de nada pero diré que he probado con el código de Neftalí y con...


MenuItemAtRight(MainMenu1,GetMenuItemCount(Self.MainMenu1.Handle)-1);


... y funciona como se espera en Windows 8.1 32 bits con Delphi XE2... :confused:

ecfisa
15-12-2013, 21:11:45
Hola José Luis.

En Windows 8.1 64 bits con Delphi 7 obtengo el mismo resultado que vos en los enlaces que mencionas.

Sin embargo, pude enviar sin problemas a la derecha al último Item del TMainMenu usando la funcion ModifyMenu (http://msdn.microsoft.com/en-us/library/windows/desktop/ms647993(v=vs.85).aspx) de este modo:

procedure TForm1.FormCreate(Sender: TObject);
begin
with MainMenu1 do
ModifyMenu(Handle,
Items.Count-1,
MF_BYPOSITION or MF_POPUP or MF_HELP,
Items[Items.Count-1].Handle,
PChar(Items[Items.Count-1].Caption));
end;


Saludos :)

José Luis Garcí
16-12-2013, 10:46:54
Gracias Ecfisa, pero no hay manera, voy a dejar de preocuparme por ello y seguir adelante

http://nsae01.casimages.net/img/2013/12/16/131216101824207603.jpg (http://www.casimages.es/i/131216101824207603.jpg.html)