Ver Mensaje Individual
  #1  
Antiguo 17-03-2010
ioco ioco is offline
Miembro
 
Registrado: ene 2010
Posts: 42
Reputación: 0
ioco Va por buen camino
error en compilación: identifier idents no member

Saludos de nuevo

Como siempre... aquí intentando averiguar qué significan los mensajes de mis queridos amigos los errores 0

Bueno, autocrítica a parte. En un form tengo un botón desde el cual creo 3 instancias de un objeto (TComplex) mediante un constructor, copio los valores de 4 edits en dos de ellas, llamo al método "Suma" y espero que muestre la suma de ellos en dos edits más.

Pero a la hora de compilar me devuelve:
"unit2.pas(47,6) Error: identifier idents no member "Suma""

El constructor, definido por mi, parece que funciona correctamente pues puedo asignar libremente valor de un edit a otro pasando por TComplex antes (ya sé que debe sonarles a chapuza, pero es lo único que se me ocurrió para comprobar que las instancias existían y funcionaban correctamente).

Y no creo que el fallo esté en la suma...

He andado toda la tarde buscando por la web y no me he aclarado nada.
¿Alguna sugerencia, por favor?

Gracias de antemano por su tiempo


PD: Adjunto las partes de código implicadas por si quieren mirarlas

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  z1:=TComplex.Create;
  z2:=TComplex.Create;
  z3:=TComplex.Create;
  z1.Re:=Edit1.text;
  z1.Img:=Edit2.text;
  z2.Re:=Edit3.text;
  z2.Img:=Edit4.text;
  z3.Suma(z1,z2);
  Edit5.text:=z3.Re;
  Edit6.text:=z3.Img;
  z1.destroy;
  z2.destroy;
  z3.destroy;
end;

Código Delphi [-]
              Constructor TComplex.Create(format:char=' '; firstInput:string='0'; secondInput:string='0'); overload;
                          Begin
                               Inherited Create;
                               Case format of
                                    'R': Begin
                                              fRe:=StrToFloat(firstInput);
                                              fImg:=StrToFloat(secondInput);
                                              GetPolar;
                                         end;
                                    'P': Begin
                                            fModulus:=StrToFloat(firstInput);
                                            fArgument:=StrToFloat(secondInput);
                                            GetRectangular;
                                         end;
                                    else
                                        Begin
                                             fRe:=0;
                                             fImg:=0;
                                             fModulus:=0;
                                             fArgument:=0;
                                        end;
                               end;
                          end;

Código Delphi [-]
              Procedure TComplex.Suma(a,b:TComplex);
                        Begin
                             {Suma en formato rectangular}
                             fRe:=StrToFloat(a.Re)+StrToFloat(b.Re);
                             fImg:=StrToFloat(a.Img)+StrToFloat(b.Img);
                             {Modificación del formato polar}
                             GetPolar;
                        end;

Código Delphi [-]
  Type
      TComplex = class(TObject)
                Private
                fRe:extended;
                fImg:extended;
                fModulus:extended;
                fArgument:extended;
                // Métodos de uso interno de la clase
                Function GetRe:string;
                Procedure SetRe(inputRe:string);
                Function GetImg:string;
                Procedure SetImg(inputImg:string);
                Function GetModulus:string;
                Procedure SetModulus(inputModulus:string);
                Function GetArgument:string;
                Procedure SetArgument(inputArgument:string);
                Procedure GetPolar;
                Procedure GetRectangular;


                // Propiedades y métodos accesibles desde fuera de la clase
                Public
                // Llamada cuando se crea una nueva instancia de la clase
                // El parámetro del tipo carácter (R,P) determina el formato (Rectangular o Polar) en que se
                //   expresa el número mediante los otros dos parámetros de entrada
                Constructor Create(format:char=' '; firstInput:string='0'; secondInput:string='0'); overload;
                // Parte real del número (string)
                Property Re:string read GetRe write SetRe;
                // Parte imaginaria del número (string)
                Property Img:string read GetImg write SetImg;
                // Módulo del número (string)
                Property Modulus:string read GetModulus write SetModulus;
                // Argumento del número en radianes (string)
                Property Argument:string read GetArgument write SetArgument;
                // Suma de dos complejos
                Procedure Suma(a,b:TComplex);
      end;

Última edición por ioco fecha: 17-03-2010 a las 20:09:59.
Responder Con Cita