FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Función no existe (Call of nonfunction)
Tengo un formulario en un proyecto en BCB 6 con esto:
Código:
#include <vcl.h> #pragma hdrstop #include "MenInt.h" #include "Persona.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TfMenInt *fMenInt; extern AnsiString cAux, NombreUser; extern bool lPrueba; extern int LinEje; extern TDateTime dFecha; extern TListItem *pItem; extern TReplaceFlags oReplace; extern void ColorForm(TForm *Form); extern int Mensaje(int Icono, AnsiString Mensaje, AnsiString Botones); También en todos la uso exactamente de la misma forma; en este formulario la primera vez que la llamo lo hecho así: Código:
fPersona->Query->Close(); fPersona->Query->SQL->Text = "INSERT INTO Correo (Remite, Destino, Hora, Asunto, Mensaje, Leido) VALUES (:Remite, :Destino, :Hora, :Asunto, :Mensaje, 0)"; fPersona->Query->ParamByName("Remite")->AsString = NombreUser; fPersona->Query->ParamByName("Hora")->AsDateTime = Now(); fPersona->Query->ParamByName("Asunto")->AsString = Asunto->Text; fPersona->Query->ParamByName("Mensaje")->AsString = Mensaje->Text; if (Usuarios->Visible) { lPrueba = false; for (nItem = 0; nItem < Usuarios->Items->Count; nItem ++) if (Usuarios->Items->Item[nItem]->Checked) { lPrueba = true; try { fPersona->Query->Close(); fPersona->Query->ParamByName("Destino")->AsString = Usuarios->Items->Item[nItem]->SubItems->Strings[0]; fPersona->Query->ExecSQL(); fPersona->Query->Transaction->Commit(); } catch(...) { fPersona->Query->Transaction->Rollback(); } } if (!lPrueba) { Mensaje(3, "No ha seleccionado ningún destinatario.", "Volver"); // <---- AQUÍ DA EL ERROR EL COMPILADOR return; } } |
#2
|
||||
|
||||
Voy más allá. He probado a compilar el formulario poniendo esa llamada en diversos sitios del código, por si fuera un problema de escritura y no lo hubiera detectado; Ponga donde ponga esa línea me da el mismo error.
|
#3
|
||||
|
||||
Hola Angel.
Revisa que no exista una variable, posterior a la declaración de función, con el nombre "Mensaje" cuyo ámbito alcance al bloque de código donde se genera el error. Un ejemplo que provocará el error que mencionas: Código PHP:
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 09-05-2017 a las 22:57:18. |
#4
|
||||
|
||||
Gracias por la respuesta. No es el caso; el código está tal cual y no hay ninguna declaración adicional. Como esa función la uso en muchísimos sitios ya tengo cuidado con las declaraciones que hay en la aplicación.
|
#5
|
||||
|
||||
Bueno: Me dieron la solución los amigos de otro foro. El problema venía porque en el query uno de los parámetros se llama igual que la función. La solución fue hacer referencia a la función global.
Código:
if (Usuarios->Visible) { lPrueba = false; [...] if (!lPrueba) { ::Mensaje(3, "No ha seleccionado ningún destinatario.", "Volver"); return; } } |
#6
|
||||
|
||||
Hola.
Cita:
Cita:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
||||
|
||||
Cita:
Para que quienes consulten esto en las generaciones venideras no se confundan, creo que hace falta hacer hincapié en que el error original NO se debe al nombre del parámetro del Query. Se debe a la existencia de un objeto y una función con el mismo nombre en el mismo contexto. LineComment Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Existe la funcion EVAL en Delphi | darkone2k3 | Varios | 14 | 27-09-2013 21:38:19 |
Función nativa EnsureRange, ¿existe equivalente en Excel? | Al González | Varios | 0 | 29-12-2011 02:04:08 |
Existe alguna función en Firebird que me permita restar fechas??? | Nelly | Varios | 1 | 06-07-2007 21:27:56 |
Existe una funcion para...? | famcd | PHP | 6 | 07-02-2006 12:18:07 |
existe en paradox la funcion IFF | fjolivares | SQL | 1 | 21-09-2004 15:21:23 |
|