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-08-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
reusar un mismo form

Hola Amigos del foro tengo esta duda, sucede lo siguiente tengo esto:

***FTramite(form)***

SpeedButton1...10
DBEdits1...10

***FBuscarPed(form)***

DBGrid1
BitButton1
Bitbutton2

hasta ahora supongo que van entendiendo, quisiera reusar el form FBuscarPed por cada SpeedButton que hay en FTramite. por ejemplo:

en el SpeedButton1 abre el form FBuscarPed y el codigo del BitButton1 es el siguiente:

Código Delphi [-]
procedure TFBuscarPed.BitBtn1Click(Sender: TObject);
begin
FTramite.DBEdit1.Text:=TbPedidono.AsString;
FTramite.dbId1.Text:=TbPedidono_ped.AsString;
FTramite.dbTipo1.Text:=TbPedidotipo_exp.AsString;
FTramite.dbDpto1.Text:=TbPedidodpto.AsString;
Close;
end;

aqui esta el asunto como hago que en cada SpeedButton cuando abre el mismo form FBuscarPed el codigo varie? por ejemplo:

SpeedButton2.FBuscarPed.Show el bitbutton1 del FBuscarPed cambie de codigo asi:

Código Delphi [-]
procedure TFBuscarPed.BitBtn1Click(Sender: TObject);
begin
FTramite.DBEdit2.Text:=TbPedidono.AsString;
FTramite.dbId2.Text:=TbPedidono_ped.AsString;
FTramite.dbTipo2.Text:=TbPedidotipo_exp.AsString;
FTramite.dbDpto2.Text:=TbPedidodpto.AsString;
Close;
end;

en vez del primer codigo y asi sucesivamente, no se si me hice entender, solo que quiero evitar tener que hacer el form FBuscarPed 10 veces, supongo que se hace con la sentencia CASE, espero que hayan podido entender lo que trato de hacer.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #2  
Antiguo 17-08-2007
rcubillos rcubillos is offline
Registrado
 
Registrado: ago 2007
Posts: 5
Poder: 0
rcubillos Va por buen camino
Busqueda de Componentes por nombre

Una forma sencilla de realizar los es utilizando el método FindComponent del formulario para buscar Dinamicamente el que corresponde a cada botón, como necesitas diferenciar cuales son el conjunto de componentes asociados a cada boton utiliza la propiedad tag del boton como indice.

Ejemplo:
Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
TEdit(self.FindComponent('Edit'+intToStr( TControl(Sender).Tag) )).Text:='HOLA'
end;
Aqui asigno al edit cuyo nombre es edit + nro de la propiedad tag del boton presionado el texto Hola, en tu caso el resultado de algo mas.
Responder Con Cita
  #3  
Antiguo 17-08-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Gracias rcubillos por tu respuesta pero no me llego a funcionar lo tengo asi:

Código Delphi [-]
procedure TFBuscarPed.BitBtn1Click(Sender: TObject);
begin
FTramite.dbId2(self.FindComponent('dbId2'+intToStr( TControl(Sender).5) )).Text:=TbPedidono_ped.AsString;
Close;
end;

y me sale el siguiente error:

Cita:
[Error] BuscarPed.pas(82): Missing operator or semicolon
[Error] BuscarPed.pas(82): Identifier expected but number found
que estoy haciendo mal?

Saludos...
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 17-08-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.114
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Código Delphi [-]
TControl(Sender).5

Puede que quisieras decir:

Código Delphi [-]
TControl(Sender).Tag
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 17-08-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Hola dec y rcubillos lo he puesto asi:

Código Delphi [-]
FTramite.dbId1(self.FindComponent('dbId1'+intToStr( TControl(Sender).Tag) )).Text:=TbPedidono_ped.AsString;

pero sucede que me sale este error aque se debe?:
Cita:
[Error] BuscarPed.pas(82): Missing operator or semicolon
Saludos...
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #6  
Antiguo 17-08-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Estás haciendo mal las cosas...

La función FindComponent te devuelve un objeto de tipo TComponent. Este objeto lo tienes que "convertir" en un TEdit para poder asignar bien el valor:

Código Delphi [-]
// Este método debe estar asignado al evento OnClick de todos los TBitBtn
procedure TForm1.BitBtnClick(Sender: TObject);
var
  Index: string;

begin
  Index := IntToStr(TBitBtn(Sender).Tag);
  TDBEdit(FindComponent('DBEdit' + Index)).Text := TbPedidono.AsString;
  TDBEdit(FindComponent('dbId' + Index)).Text := TbPedidono_ped.AsString;
  TDBEdit(FindComponent('dbTipo' + Index)).Text := TbPedidotipo_exp.AsString;
  TDBEdit(FindComponent('dbDpto' + Index)).Text := TbPedidodpto.AsString
end;

Con el ejemplo anterior, a cada TBitBtn de tu forma debes asignarle su propiedad Tag de tal forma que el que quieras que llene los TDBEdits con terminación 1 tenga como valor 1...


Saludos...
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
El mismo menu en todos los form Carlos Arevalo Varios 5 11-01-2014 18:16:11
Un form enfadado. No quiere a nadie (ni a sí mismo) Bicholoco Varios 2 30-04-2007 14:29:15
Referencia a diferentes instancias del mismo Form gluglu OOP 14 23-02-2007 17:22:32
utilizar mismo form en distintos modulos @-Soft Conexión con bases de datos 5 09-07-2004 13:51:21
evitar correr mismo form en aplicacion MDI @-Soft OOP 5 01-07-2004 06:03:43


La franja horaria es GMT +2. Ahora son las 01:38:13.


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