Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-05-2006
Gustavo Restrep Gustavo Restrep is offline
Registrado
 
Registrado: may 2006
Posts: 2
Poder: 0
Gustavo Restrep Va por buen camino
Question Instrucción dinamica para desactivar menu en Delphi

Como puedo armar una instrucción dinamicamente para usar el nombre del menú desde una variable ?

Por ejemplo:

MenuVentas.Items[0].enable : False

necesito usar una variable en vez de MenuVentas, asi

variable:='MenuVentas'

variable.Items[0].enable : False

Gracias
Responder Con Cita
  #2  
Antiguo 01-06-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tal vez puedas valerte de la función "FindComponent". Échala un vistazo a ver y cuentas qué tal.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 01-06-2006
Gustavo Restrep Gustavo Restrep is offline
Registrado
 
Registrado: may 2006
Posts: 2
Poder: 0
Gustavo Restrep Va por buen camino
Solución

Gracias David,

Si me sirvio tu pista, y asi lo solucioné:

Código Delphi [-]
var
  CompW : TComponent;
  Variable : String;
 
begin
  Variable:='MenuVentas';
  CompW:=FindComponent('Variable');
  TMenu(CompW).Items[0].enable : False;
end;

Realmente en vez de una variable voy a usar un dato recuperado de una base de datos, pero es igual.

Última edición por dec fecha: 01-06-2006 a las 20:16:37.
Responder Con Cita
  #4  
Antiguo 01-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Sugerencia contra fallos:

Código Delphi [-]
procedure CreaMenuDinamico;
var
  CompW : TComponent;
  Variable : String;
 
begin
  Variable:='MenuVentas';
  CompW:=FindComponent(Variable);
  if CompW = nil then
     raise Exception.CreateFmt('procedimiento CreaMenuDinamico: No se ha encontrado %s para crear el menú.',[variable]);
  TMenu(CompW).Items[0].enable : False;
end;

Si el componente se llama "MenuVentas" e intentas buscar por "MenuVenta" provocará un access violation sin más información.

Con esa condición añadida, obtienes una Excepción.... el programa se para, sí, pero te está diciendo exactamente en qué procedimiento y además la variable que no está encontrando. Buscar el fallo es cosa de niños .

Como leí por algún sitio: KISS (Keep It Simple STUPID ) Realmente funciona jejeje.

Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como hago para ejecutar una instruccion de ms-dos? lazarous Varios 2 17-10-2005 13:39:04
Desactivar menu contextual de Windows en WebBrowser PTW Varios 1 11-05-2005 13:21:34
Como activar/desactivar todos los triggers con una sola instruccion lbuelvas Firebird e Interbase 4 18-06-2004 19:13:02
¿Qué instrucción es necesaria para abrir un archivo PDF? vhirginia Varios 10 07-05-2004 00:05:36
Creacion dinamica menu morfeo21 Varios 1 30-04-2004 17:33:14


La franja horaria es GMT +2. Ahora son las 12:40:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi