Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-12-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.339
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por erasmorc Ver Mensaje
...por ejemplo un item del action list se llama MnCuentas yo quiero poder hacer que presionando un boton este item se ejecute, y es facil si solo fuera uno porque bien facil puedo hacer al evento Action del boton que presionare que sea igual al nombre del action list, pero recuera que estos items estan en una tabla y no puedo pasar al evento action del boton un campo de una tabla.
Pues tal vez sigo sin entenderte, pero creo que el cóigo de anes funcionaría. sólo tienes que pasar el nombre de la acción que deseas:

Código Delphi [-]
var
  comp:TComponent;
begin

  // Buscar la action
  comp := FindComponent('MnCuentas');
  if Assigned(Comp) then begin
    if (comp is TAction) then begin
      TAction(comp).Execute;
    end;
  end;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #2  
Antiguo 17-12-2009
erasmorc erasmorc is offline
Miembro
 
Registrado: ago 2004
Posts: 66
Poder: 20
erasmorc Va por buen camino
comp := FindComponent('MnCuentas');

Es que precisamente esto que has hecho es el problema, no puedo pasar el nombre del action list dentro del codigo osea no puedo hacer esto comp := FindComponent('MnCuentas'); porque solo me funcionaria para ese item del action list, cuando lo que quiero es que funcione para cualquiera que yo seleccione dentro de la tabla, en otras palabras ese Mncuentas deberia ser un campo del query por ejemplo form1.querynombrecampo.value pero esto no se como hacerlo, si esto fuera posible yo solo tendria que posicionarme en un registro de la tabla en donde estan los action list y selecciono la opcion de menu que deseo y presiono un boton y esa opcion se ejecutaria, de esta forma el menu seria dinamico. Gracias anticipadas.
Responder Con Cita
  #3  
Antiguo 17-12-2009
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 18
juanlaplata Va por buen camino
una ves programe algo como eso, y aqui el codigo.
Código Delphi [-]
procedure TBase.actualizarBotones(Pantalla:string);
var i:integer;
    accion :TAction;
    boton : TToolButton ;
    Form :TForm;
begin
Form := Application.FindComponent(Pantalla) as TForm;
if Form <> nil then
    begin
    Base.Shortcuts.Close;
    Base.Shortcuts.Filtered := False;
    Base.Shortcuts.Filter := 'Pantalla = '+ quotedStr(Pantalla);
    Base.Shortcuts.Filtered := True;
    Base.Shortcuts.Open;
    Base.Shortcuts.First;
    for i:=0  to Base.Shortcuts.RecordCount-1 do
        begin
        accion := Form.FindComponent(Base.ShortcutsShortcut.AsString) as TAction;
        if(accion <> nil )then
            begin
            boton := Form.FindComponent(Base.ShortcutsBoton.AsString) as TToolButton;
            if(boton <> nil )then
                begin
                accion.OnExecute := boton.OnClick;
                boton.Hint := Base.ShortcutsCaptionShortcut.AsString + ' / ' +Base.ShortcutsHintBoton.AsString ;
                end;
            end;
        Base.Shortcuts.Next;
        end;
    end
else ShowMessage('Sin Pantalla  ');
end;
En resumen de tu caso creo q sin problemas podrias hacer
Código Delphi [-]
comp := FindComponent(form1.querynombrecampo.asString);
Responder Con Cita
  #4  
Antiguo 17-12-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.339
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por erasmorc Ver Mensaje
Es que precisamente esto que has hecho es el problema, no puedo pasar el nombre del action list dentro del codigo osea no puedo hacer esto comp := FindComponent('MnCuentas'); porque solo me funcionaria para ese item del action list, cuando lo que quiero es que funcione para cualquiera que yo seleccione dentro de la tabla
Esto es un ejemplo, en realidad lo que tienes que utilizar en ese lugar es una variable.
En tu caso un campo de tu tabla debe tener asociado en nombre del TAction, sino no hay forma de "enganchar" lo que tienes en Base de Datos, con lo que tienes en código.

¿Exactamente qué tienes almacenado en la tabla? ¿Cuales son los campos?

Cita:
Empezado por erasmorc Ver Mensaje
...en otras palabras ese Mncuentas deberia ser un campo del query por ejemplo form1.querynombrecampo.value pero esto no se como hacerlo
Pues añadiendo a tu tabla ese campo y accediendo a ese valor tal y como te han comentado antes:

Código Delphi [-]
  StrNombreAccion := Query.FieldByName('NombreAccion').AsString;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 17-12-2009
erasmorc erasmorc is offline
Miembro
 
Registrado: ago 2004
Posts: 66
Poder: 20
erasmorc Va por buen camino
Buenos dias,

Neftali es que ya tengo la tabla creada con los campos correspondientes, y hay un campo llamado NombreObjeto que contiene el nombre del action list que quiero ejecutar, pero es que ahi es que esta el problema porque cuando paso el contenido del campo para que sea ejectuado no funciona mira esto es lo que hago que no funciona

procedure TFMenuUsuarios.cxButton5Click(Sender: TObject);
var comp : Taction;
begin
comp := FindComponent (FUsuarios.QMenuNombreObjeto.Value) as TAction;
TAction(comp).Execute;
end;


Pero si hago esto mismo pero sustituyo el lugar donde esta el campo de la tabla por el nombre que esta contenido en el campo si me funciona que seria esto

procedure TFMenuUsuarios.cxButton5Click(Sender: TObject);
var comp : Taction;
begin
comp := FindComponent (MnCuentas) as TAction;
TAction(MnCuentas).Execute;
end;


Actualmente estoy atorado ahi, no se como resolverlo. Gracias por su colaboracion.
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
Crear Cubos en un plano Configurable Efren2006 Gráficos 11 24-03-2009 15:12:10
QReport configurable por el usuario ?? Delphitest Impresión 1 02-02-2009 05:02:16
Showmessage configurable Marwuinh Varios 6 23-10-2008 22:05:37
iconos para el el menu main o pop menu... vroa74 Gráficos 0 06-10-2008 15:54:56
Imagen o texto sobre el menu / menu con align / menu movible dajaji Varios 12 21-09-2007 00:30:19


La franja horaria es GMT +2. Ahora son las 18:53:18.


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