Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-12-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.354
Poder: 19
Angel.Matilla Va por buen camino
Definición de una función

Tengo declarada una función de la siguiente forma:
Código PHP:
void ColorForm(TForm *Formbool lAuto true)
{
     
DWORD NoStyle BS_LEFT BS_CENTER BS_RIGHT;
     
int nFondonPapelnTintanWidth;
    
TComponent *Source;
     
TSysLocale SL SysLocale;
     [
etc.] 
De forma similar en ese mismo módulo tengo declaradas otras, de forma que tengan un valor por defecto al ser llamada. Sin embargo al compilarlo me está dando este error:
Cita:
E2148 Default argument value redeclared for parameter 'lAuto'
y no entiendo por qué en esa definición me da ese error y no lo hace en otras llamadas similares como esta:
Código PHP:
bool ValidaEmail(String emailStrbool checkTLD true
¿A alguno se os ocurre cuál puede ser la razón de ese error? Gracias
Responder Con Cita
  #2  
Antiguo 12-12-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Ese error se produce cuando tenemos una declaración de función como la de este ejemplo:
Código PHP:
#ifndef fooH
#define fooH

void ColorForm(TForm *Formbool lAuto true);

#endif 
Y luego intentamos definirla de este modo,
CPP:
Código PHP:
#include "foo.h"
void ColorForm(TForm *Formbool lAuto true)
... 
Y tal como está documentado aquí, C++ no lo permite.

La definición debería ser:
Código PHP:
void ColorForm(TForm *Formbool lAuto)
... 
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 12-12-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.354
Poder: 19
Angel.Matilla Va por buen camino
Gracias por responder ecfisa. Me he perdido un poco en tu respuesta; problemas de base, ya lo sé .


Donde está hecha esa definición es un archivo cpp, sin formulario de ningún tipo, desde File > New > Unit y lo que me indicas si no entiendo mal debería ir en el .h del formulario. Por otra parte, la otra línea de código que he puesto (ValidaEmail...) está declarada tal cual. Y de verdad que me pierdo; os adjunto la unidad en cuestión.
Archivos Adjuntos
Tipo de Archivo: rar Funciones.rar (19,4 KB, 1 visitas)
Responder Con Cita
  #4  
Antiguo 12-12-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Angel.

Estuve mirando el código y veo que no voy a poder ejecutarlo por no tener muchas de los archivos incluídos.

Pero también ví que la función ColorForm está declarada,
Código PHP:
extern void ColorForm(TForm *Form); 
y definida,
Código PHP:
void ColorForm(TForm *Form
donde no aparece bool lAuto = true como parámetro.

De allí la duda que me surge ¿ Ejecutándo ese código es donde aparece el error que mencionabas antes ?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 12-12-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.354
Poder: 19
Angel.Matilla Va por buen camino
Es que el parámetro tuve que quitarlo para poder compilar. Si te fijas al final de la definición de la función hay un par de líneas:
Código PHP:
if (Form->Name != "fMenu")
     
Form->AutoSize true
con el parámetro lo que trataba de evitar son esas dos líneas.
Responder Con Cita
  #6  
Antiguo 12-12-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Hice una prueba con tu código (super ultra reducido ) que tal vez te sirva de guía.

Funciones.cpp
Código PHP:
#pragma hdrstop

#include "Forms.hpp"

#pragma package(smart_init)

// figura el valor por defecto
extern void ColorForm(TForm *Formbool lAuto true);

//------------------------------------------------------------------------------

// aquí no debe figurar el valor por defecto
void ColorForm(TForm *Formbool lAuto
{
  
Form->Color lAuto clRed clLime;

Unit1.cpp:
Código PHP:
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"

#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

__fastcall TForm1::TForm1(TComponentOwner)
  : 
TForm(Owner)
{
}

#include "Funciones.cpp"

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  
ColorForm(Form1False);  // el form se pinta color verde lima
  
ShowMessage("");
  
ColorForm(Form1);         // el form se pinta color rojo

Aún me queda la duda de por que Funciones.cpp no tiene su archivo de cabecera, pero no hace al problema.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Definicion de Clases cacu OOP 2 03-10-2008 21:43:41
Definición de programador... ixMike Humor 3 22-01-2008 10:09:33
Definición de Globalización rafita Humor 6 18-01-2008 00:44:32
Definición de uso de componentes JorgeBec Varios 1 27-10-2004 18:43:45
Definición de Economista. marcoszorrilla Humor 4 21-07-2004 00:09:59


La franja horaria es GMT +2. Ahora son las 19:56:51.


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