Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

dudas con funciones

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: dudas con funciones Responder citando

hola foro
amigos mi experiencia con funciones es muy poca , por loq eu planteo las siguientes dudas esperando que alguien me pueda ayudar
1-solo he declarado funciones en el cpp, nunca en el .h
segun tengo entendido al declararlas en el .h debe ser en el public y en el .cpp debajo de la construccion del form es decir debajo de
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
voy por buen camino?
Ahora me pregunto cual es la diferencia en declararla en el .h y en el .cpp?
cual es mejor?
2-Al declarar una fucnion en el .h como la llamo en el .cpp? Seria con myfuncio(parametros);?
3-Si tengo una funcion en el .h del form1 como la llamo en el .cpp del form2?
bueno un poco pregunton pero me surge duda porque he declarado la misma funcion como en 8 form y necesito ahorrar codigo no creen?
gracias
_________________
Todos somos ignorantes, lo que no todos ignoramos lo mismo...
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

bueno , mi poca experiencia es la siguiente :
si declaro las funciones en el .h las declaro en private si quiero que sean solo locales para ese form , si la quiera global la declaro en en public y la implemento en el cpp

ejemplo :
class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
void funcionSoloParaEsteForm();
public: // User declarations
void funcionParaTodaLaAplicacion();
__fastcall TForm1(TComponent* Owner);

};


y las implemento en el cpp asi

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

void TForm1::funcionCualquiera{
aqui el codigo
}

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}

para llamarla si lo haces del mismo form la llamas tal cual
funcionCualquiera();
o this->funcionCualquiera();
si la llamas de un Form2 por ejemplo , incluyes el Form2 en el Form1 y llamas Form1->funcionCualquiera();

aunque tambien puedes crear funciones en una unidad nueva vacia a la que se llame de cualquier parte de la aplicacion

vas a archivo -> nuevo -->unit

esto te crea una unidad con un .h y un .cpp sin form
en el .h declaras la funcion y el el cpp la implementas y despues incluyes
la unidad en el form de donde quieras llamar a esa funcion y listos
espero haberte ayudado
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

mns gracias por responder , ya puse en practica lo que me respondes , y funciona 100% nuevamente t elo agradezco
_________________
Todos somos ignorantes, lo que no todos ignoramos lo mismo...
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Me gustaría aclarar alguna cosa:
Las funciones pueden declararse en el cpp o en el .h
Si se declaran en el cpp, sólo se conocerán sólo en ese archivo y la declaración debe estar por encima de cualquier punto del programa que las utilice.
Si se declaran en el .h, serán conocidas por todo .cpp que incluya esa .h esto responde a:
ifrit escribió:

3-Si tengo una funcion en el .h del form1 como la llamo en el .cpp del form2?


Las declaraciones no tienen porqué estar en una clase. Si son miembros de una clase, pueden ser public, private o protected. En las vcl, pueden ser, ademas, published.

Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.