| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
pampa Lt JG

Registrado: 16 Jun 2004Mensajes: 58Ubicación: Mar del Plata - Argentina
|
Publicado: Jue 22 Jul, 2004 3:28 pm Asunto: Reescribir Form |
|
|
Estimados:
Necesito reescribir un Form de manera que al llamarlo pueda pasarle algún argumento, por ejemplo una tabla, algo así:
FormNuevo(tabla)->ShowModal;
Gracias. |
|
| Volver arriba |
|
 |
cecito Capt

Registrado: 25 Nov 2003Mensajes: 164Ubicación: Arequipa - Perú
|
Publicado: Jue 22 Jul, 2004 3:39 pm Asunto: |
|
|
Lo mejor que puedes hacer es agregarle un procedimiento al formulario y lo llamarias así:
| Código: | {
FormularioNuevo->Mostrar(Tabla);
} |
y en FormularioNuevo el procedimiento sera +/- así:
| Código: |
void __fastcall FormularioNuevo::Mostrar(TDataSet * Tabla )
{ this->Tabla = Tabla;
ShowModal();
} |
|
|
| Volver arriba |
|
 |
pampa Lt JG

Registrado: 16 Jun 2004Mensajes: 58Ubicación: Mar del Plata - Argentina
|
Publicado: Vie 23 Jul, 2004 12:47 am Asunto: |
|
|
| Gracias, pero no me termina de convencer; lo que necesito es crear una nueva clase (creo) Form que permita pasarle algún/os argumentos al invocarlo. |
|
| Volver arriba |
|
 |
pampa Lt JG

Registrado: 16 Jun 2004Mensajes: 58Ubicación: Mar del Plata - Argentina
|
Publicado: Sab 24 Jul, 2004 3:48 pm Asunto: |
|
|
Si alguien pudiera ayudarme:
Lo que necesito es poder un llamar un Form al que pueda "pasarle" parámetros. |
|
| Volver arriba |
|
 |
pampa Lt JG

Registrado: 16 Jun 2004Mensajes: 58Ubicación: Mar del Plata - Argentina
|
Publicado: Dom 25 Jul, 2004 6:35 pm Asunto: |
|
|
Cecito, aparentemente la solución es la que vos me das; no me convencía (por falta de conocimiento mío) pero por lo visto es la solución; gracias.
Podrías indicarme como agrego el procedimiento; o sea que va en el .h; etc.
Gracias. |
|
| Volver arriba |
|
 |
Jumanor Lt


Registrado: 28 Feb 2003Mensajes: 91Ubicación: tacna-Peru
|
Publicado: Jue 29 Jul, 2004 2:34 am Asunto: Constructor |
|
|
| Código: |
//en el .h
class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
//Simplemente en el constructor agregamos una nuevo parametro
__fastcall TForm1(TComponent* Owner,TStringList *Obj);
};
//en el .cpp
__fastcall TForm1::TForm1(TComponent* Owner,TStringList *Obj)
: TForm(Owner)
{
}
//En el evento del boton lo creamos
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TStringList Obj=new TStringList;
TForm1 *Form=new TForm1(this,Obj)
//etc..
} |
Chau espero haber ayudado |
|
| Volver arriba |
|
 |
pampa Lt JG

Registrado: 16 Jun 2004Mensajes: 58Ubicación: Mar del Plata - Argentina
|
Publicado: Lun 02 Ago, 2004 6:27 pm Asunto: |
|
|
Perfecto, era lo que necesitaba.
Lo que no entendí es lo del evento en el Button1 del Form1, asumo has querido explicarme como invocarlo desde otro formulario, no desde el Form1.
Gracias. |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Mar 03 Ago, 2004 12:38 am Asunto: |
|
|
Ya que estamos:
el constructor me quedo así:
__fastcall TFormComunicacionOtraPersona::TFormComunicacionOtraPersona(TComponent* Owner, AnsiString *nombre)
: TForm(Owner)
{
this->nombre=new AnsiString;
this->nombre=nombre;
}
la pregunta es como reescribo el destructor asi puedo destruir la variable:
delete this->nombre; |
|
| Volver arriba |
|
 |
Jumanor Lt


Registrado: 28 Feb 2003Mensajes: 91Ubicación: tacna-Peru
|
Publicado: Dom 08 Ago, 2004 5:57 pm Asunto: destructor |
|
|
| Todo formulario tiene un evento OnDestroy que se ejecuta antes de destruirse el formulario. Si no mal recuerdo tambien puedes sobrecargar el destructor. |
|
| Volver arriba |
|
 |
cecito Capt

Registrado: 25 Nov 2003Mensajes: 164Ubicación: Arequipa - Perú
|
Publicado: Lun 09 Ago, 2004 4:54 pm Asunto: |
|
|
Como indica Jumanor la mejor opción es el OnDestroy.
Ahora, viendo tu variable creo que seria mejor que no la crees como puntero. El tipo AnsiString gestiona automáticamente su memoria y muchas veces es mejor no es complicarnos |
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Lun 09 Ago, 2004 5:29 pm Asunto: |
|
|
Saludos!
Independientemente de lo que quieras hacer, siempre para destruir instancias al destruir el objeto que los creo, lo mejor es utilizar un destructor, aqui te pongo como hacerlo:
| Código: |
//en el .h
class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
//Simplemente en el constructor agregamos una nuevo parametro
__fastcall TForm1(TComponent* Owner,TStringList *Obj);
__fastcall ~TForm1(); //Esta es la declaracion del destructor, cabe mencionar que los destructores no reciben parametros, por lo que no pueden ser sobre cargados.
};
//en el .cpp
__fastcall TForm1::~TForm1()
{
// aqui lo que quieras destruir o hacer
}
|
Espero te haya servido, saludos _________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| Volver arriba |
|
 |
Jumanor Lt


Registrado: 28 Feb 2003Mensajes: 91Ubicación: tacna-Peru
|
Publicado: Lun 09 Ago, 2004 6:00 pm Asunto: |
|
|
En la help aparece asi
virtual __fastcall TForm::~TForm()
{
}
Tienes razon una funcion virtual se redefine no se sobrecarga |
|
| Volver arriba |
|
 |
pampa Lt JG

Registrado: 16 Jun 2004Mensajes: 58Ubicación: Mar del Plata - Argentina
|
Publicado: Jue 12 Ago, 2004 6:34 pm Asunto: |
|
|
Un espectáculo, ahora soy un poco menos ignorante en la materia.
Gracias. |
|
| Volver arriba |
|
 |
|