Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Incompatibilidad de tipos E2010 (https://www.clubdelphi.com/foros/showthread.php?t=83940)

jafera 18-08-2013 10:50:41

Incompatibilidad de tipos E2010
 
Buenos dias a todos.

Estoy realizando pruebas para migrar de D6 a DXE2 y me encuentro que en este prodedimiento me manda un mensaje de incompatibilidad en la linea comentada. He convertido la base de datos de FB 1.5 a FB 2.5 por si puede ser de ayuda, he reabierto el código desde el antiguo y solo me detecta este error.

Código Delphi [-]
procedure TF_PDF.BitBtn10Click(Sender: TObject);
var
        PDF:TMemoryStream;
begin
        If FileExists('C:\Bombers_1.0\Temp\TempPDF.pdf') then
        DeleteFile ('C:\Bombers_1.0\Temp\TempPDF.pdf');

        //If F_ModulFotos.PDF1PDF.Value <> '' then
        begin
                PDF:=TMemoryStream.create;
                try
                        F_ModulFotos.PDF1PDF.SaveToStream(PDF);
                        PDF.Seek(0,soFromBeginning);
                        PDF.LoadFromStream(PDF);
                        PDF.SaveToFile('C:\Bombers_1.0\Temp\TempPDF.pdf');
                finally
                        PDF.Free;
                end;
                ShellExecute(Handle,'open',PChar('C:\Bombers_1.0\Temp\TempPDF.pdf'),nil,nil,SW_Show);
        end;
end;

El mensaje es el siguiente:

[DCC Error] PDF.pas(105): E2010 Incompatible types: 'AnsiString' and 'System.TArray<System.Byte>'

He mirado por internet en varios foros pero no consigo dar con la verdad suprema.
Alguien se ha topado con este problema y ha conseguido solucionarlo?

Gracias

Josep

orodriguezca 21-08-2013 00:09:16

Yo cambiaría

Código Delphi [-]
If F_ModulFotos.PDF1PDF.Value <> '' then

por
Código Delphi [-]
If F_ModulFotos.PDF1PDF.AsString <> '' then

jafera 21-08-2013 10:21:56

Muchas gracias orodriguezca.

Como dirian en el concurso de la tele "Esta es una respuesta correcta".

Ha funcionado de maravillas.

Saludos

Josep

gatosoft 21-08-2013 17:39:38

Pues a partir de D2009, cuando se implementa el soporte Unicode, los amados Strings en delphi pasaron a ser un dolor de cabeza a la hora de migrar desde versiones mas antiguas... pero no es algo imposible, solo es cuestion de entender por que están pasando las cosas...

Hay en la red bastante documentación sobre lo que debes tener en cuenta para migrar...

Te doy un ejemplo http://www.embarcadero.com/images/dm...-migration.pdf


Esto impactó además varias funciones nativas de delphi que se definian antes de un tipo y ahora son de otro... esto lo soluciones con un simple typeCast o redefiniendo el tipo de tus variables...

Suerte con la migración

jafera 21-08-2013 19:34:31

Gracias por el enlace. Ya lo he descargado y lo voy a leer en seguida que tenga un momentillo.

Saludos

Josep


La franja horaria es GMT +2. Ahora son las 21:16:11.

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