PDA

Ver la Versión Completa : PopupMenu !!!


Ledian_Fdez
05-11-2010, 23:05:37
Hola amigos !!!

Amigos tengo un MenuMun1 (TPopupMenu) y quiero por código habilitar o deshabilitar segun convenga uno de los items.

me pudieran ayudar?

Prové con:

MenuMun1.Items.Items[0].Enabled:= False;

Pero no resultó!!!

Casimiro Notevi
05-11-2010, 23:27:16
Por favor, Ledian_Fdez, llevas ya cerca de 200 mensajes en clubdelphi y se te ha pedido que leas nuestra guía de estilo y que pongas en práctica algo tan sencillo como poner un título descriptivo a tus preguntas, ¿tanto trabajo cuesta?, a ver si el próximo lo hacemos mejor, ok?, gracias.
Estos son los títulos de tus últimos mensajes:


PopupMenu!!!
Procedure
consulta
Having?
MDaemon
TreeView
C++!!!Todos muy descriptivos, sí señor ;)

ecfisa
06-11-2010, 00:34:17
Hola Ledian.

Tampoco es muy claro que es lo que no te resultó, por que ese código que exponés, definitivamente deshabilita
el MenuItem de la posición cero...

A ver si esto es lo que buscas:

with PopupMenu1.Items[0] do
Enabled:= not Enabled;


Saludos. :)

fjcg02
06-11-2010, 15:32:59
Hola a todos.

Generalmente lo que yo hago cuando tengo que habilitar-deshabilitar controles en un formulario es hacer una función/procedure que recoja todas las condiciones, de manera que no esté todo desperdigado por el código.

Además, a esta función suelo llamarla "botones". Incluye todas las condiciones relativas a botones, opciones de menú, ...

Será invocada desde cualquier lugar del formulario: Al crear el formulario, al cambiar de registro, al cambiar de tab , al...

Un poco de pseudo código

procedure TForm.botones;
begin
Boton1.enabled:= ClienteDataset.Active;
opcionmenu1.Enabled:= ClienteDatasetCAMPO1='1' and ClienteDatasetCAMPO2= 35;
etc, etc, etc...
generalmente, a partir de x condiciones las condiciones de más controles suelen ser recurrentes...
boton35.Enabled:= Boton1.Enabled;
etc, etc, etc
end;

Espero que te sirva.

Saludos

Ledian_Fdez
08-11-2010, 15:50:34
Hola Ledian.

Tampoco es muy claro que es lo que no te resultó, por que ese código que exponés, definitivamente deshabilita
el MenuItem de la posición cero...

A ver si esto es lo que buscas:

with PopupMenu1.Items[0] do
Enabled:= not Enabled;


Saludos. :)

Aun no me resulta, no me los deshabilita ...

Tengo un PopupMenu con los siguientes items

Nuevo
Modificar
Eliminar
-
Imprimir

Lo que intento es que si no hay ningun suministrador seleccionado en el listview deshabilitar las opciones modificar, eliminar e imprimir.

Este es el código ..

procedure TCodificadoresForm.ListViewSuministradoresSelectItem(Sender: TObject;
Item: TListItem; Selected: Boolean);
begin
if(Selected)then
begin
MenuMun1.Items[1].Enabled:= True;
MenuMun1.Items[2].Enabled:= True;
MenuMun1.Items[4].Enabled:= True;
end
else
begin
MenuMun1.Items[1].Enabled:= False;
MenuMun1.Items[2].Enabled:= False;
MenuMun1.Items[4].Enabled:= False;
end;
end;

En espera de su ayuda !!!

Casimiro Notevi no se preocupe que no volvera a pasar lo del título, pero es que en ocaciones no tengo mucho tiempo, ademas de no saber bien como redactarlo. le ruego que me disculpe usted y todos los amigos de este foro.

Ledian_Fdez
08-11-2010, 16:19:23
Chicos .. ya resolví .. disculpen por haberles hecho perder tiempo, el problema es que estaba probando con el ListView sin datos.

fjcg02
08-11-2010, 23:12:54
procedure TCodificadoresForm.ListViewSuministradoresSelectItem(Sender: TObject;
Item: TListItem; Selected: Boolean);
begin
if(Selected)then
begin
MenuMun1.Items[1].Enabled:= True;
MenuMun1.Items[2].Enabled:= True;
MenuMun1.Items[4].Enabled:= True;
end
else
begin
MenuMun1.Items[1].Enabled:= False;
MenuMun1.Items[2].Enabled:= False;
MenuMun1.Items[4].Enabled:= False;
end;
end;



Ya veo que no te has dado cuenta de lo que te comentaba. Tu código quedará mucho más claro si lo pones así, y si agrupas todas las condiciones del formulario en una sola función, mejor.


TCodificadoresForm.ListViewSuministradoresSelectItem(Sender: TObject;
Item: TListItem; Selected: Boolean);
begin
MenuMun1.Items[1].Enabled:= Selected;
MenuMun1.Items[2].Enabled:= Selected;
MenuMun1.Items[4].Enabled:= Selected;
end;

Saludos