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 11-07-2008
vlanka24 vlanka24 is offline
Miembro
 
Registrado: mar 2007
Ubicación: México.
Posts: 23
Poder: 0
vlanka24 Va por buen camino
Trabajando con formularios

!Hola a todos...! Tratare de explicar que es lo que quiero hacer, cualquier comentario se los agradecere.

En un formulario tengo un botón para cada opción... BtUsuario, BtTrabajador, BtRespaldo etc... entonces si quiero realizar una operacion solo utilizo el nombre del botón eliminando la parte de Bt y así se a que tabla voy hacer referencia... Hasta aquí todo funciona perfecto, me muestra la información correcta y elimina los registros que deben ser..

Lo que quiero hacer es que al pulsar en un botón llamado BtNuevo me lleve a un formulario (este sera según lo que tenga seleccionado), por decir si tengo activado la parte de usuarios debe mandarme al Formulario con el nombre de FmUsuarios y si estuviera seleccionado la parte de trabajador debe mandar al Formulario de FmTrabajador... Todos los formularios que pretendo utilizar quedan agregados en el Uses de la forma.

Esto intento hacerlo de la siguiente manera...

procedure TFmABC.BtNuevoClick(Sender: TObject);
begin
TForm('Fm' + LbLetrero.Caption).Show;
end;


El error que marca es de tipo Access violation, pero no tengo idea de como solucionarlo.

Bueno se que podria utilizar condiciones de que si el LbLetrero es igual a X pues me mande al FmX.Show, pero es justo lo que trato de evitar...

Espero que me haya explicado, de antemano gracias...
Responder Con Cita
  #2  
Antiguo 11-07-2008
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.275
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
Se trata de buscar el formulario a partir de su nombre, y si lo encuentras visualizarlo.

Se me ocurre que se puede hacer a partir de TApplication:

Código Delphi [-]
var
  f:TForm;
  c:TComponent;
  sName:string;
begin
  sName := 'Fm' + LbLetrero.Caption;
  c := Application.FindComponent(sName);

  // encontrado?
  if Assigned(c) then begin
    TForm(c).Show;
  end;

O a partir de la clase TScreen:
Código Delphi [-]
var
  sName:string;
begin
  sName := 'Fm' + LbLetrero.Caption;

  // recorrer los forms
  for i := 0 to (Screen.FormCount - 1) do begin
    if (AnsiCompareText(Screen.Forms[i].Name, sName) = 0) then begin
      Screen.Forms[i].Show;
      Break;
    end;
  end

Es eso?
__________________
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
  #3  
Antiguo 11-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola,

echale un vistazo a la funcion FindComponent

saludos

vaya, se me adelanto Neftali
Responder Con Cita
  #4  
Antiguo 11-07-2008
vlanka24 vlanka24 is offline
Miembro
 
Registrado: mar 2007
Ubicación: México.
Posts: 23
Poder: 0
vlanka24 Va por buen camino
Talking Listo.!!

Gracias Neftali y Coso...!!

Gracias a sus aportaciones pude resolverlo y el resultado fue el siguiente:

procedure TFmABC.BtNuevoClick(Sender: TObject);
begin
With TForm(Application.FindComponent('Fm' + LbLetrero.Caption)) do
Show;
end;
Responder Con Cita
  #5  
Antiguo 14-07-2008
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.275
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 vlanka24 Ver Mensaje
...y el resultado fue el siguiente...
Yo pondría alguna comprobación....
Si por alguna razón el form no se encuentra, tu aplicación va a hacer unos "fuegos artificiales" dignos de ver...
__________________
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
  #6  
Antiguo 14-07-2008
vlanka24 vlanka24 is offline
Miembro
 
Registrado: mar 2007
Ubicación: México.
Posts: 23
Poder: 0
vlanka24 Va por buen camino
Tienes razón Neftalí... Hasta ahora no me ha marcado ningún error, pero es factible a que suceda; agregare alguna comprobación.

¡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
Trabajando Con Interbase MARIA ROSA Firebird e Interbase 4 02-10-2007 17:03:59
Trabajando con ClientDataSet gsilvei Conexión con bases de datos 3 20-09-2007 20:35:39
trabajando en red jdg C++ Builder 2 18-02-2007 16:10:48
Trabajando con TADODataset Novato Conexión con bases de datos 2 08-10-2005 23:57:27
Trabajando con DLL b3nshi Varios 1 16-03-2005 18:21:55


La franja horaria es GMT +2. Ahora son las 12:48:43.


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