Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-03-2010
Avatar de alonso.esparza
alonso.esparza alonso.esparza is offline
Miembro
 
Registrado: nov 2008
Posts: 16
Poder: 0
alonso.esparza Va por buen camino
Talking Constructing instance of 'TStream' containig astract method.......ba que es?

Saludos, ya hacia mucho tiempo que no escribia jeje, bueno, espero me puedan ayudar:

Tengo una aplicacion que guarda imagenes jpg a una base de datos de SQL server 2005 con este codigo:

Código Delphi [-]
 
  contenedordeimagen:=TImage.Create(F_Enviar);
  fimagen:=TMemoryStream.Create;
  contenedordeimagen.Picture.LoadFromFile('C:\Oficialia\Tmp\Temp.jpg');
  contenedordeimagen.Picture.Graphic.SaveToStream(fimagen);
  With Q_Enviar do
    begin
    Close;
    SQL.Clear;
    SQL.Add('INSERT INTO Ima (IdMov,Documento,Paginas,imagen)');
    SQL.Add('VALUES (:idMov,oc,:Pag,:Ima)');
    Parameters.ParamByName('IdMov').Value := Q_Util.Fields.Fields[0].Value;
    Parameters.ParamByName('Doc').Value := LB_Rutas.Items.Strings[con];
    Parameters.ParamByName('Pag').Value := IntToStr(con+1)+'-'+IntToStr(LB_Rutas.Items.Count);
    Parameters.ParamByName('Ima').LoadFromStream(fimagen ,ftBlob); // Aqui se guarda ala bd
    ExecSQL;
    end;

La cuestion es que siempre que compilo me sale el sig. mensaje:

[Warning] Unit1.pas(179): Constructing instance of 'TStream' containing abstract method 'TStream.Read'
[Warning] Unit1.pas(179): Constructing instance of 'TStream' containing abstract method 'TStream.Write'
[Warning] Unit1.pas(209): Constructing instance of 'TStream' containing abstract method 'TStream.Read'
[Warning] Unit1.pas(209): Constructing instance of 'TStream' containing abstract method 'TStream.Write

Todo funciona de hecho, guarda perfectamente, pero cuando cierran la aplicacion, se queda en el administrador de tareas, como si estubiera co
rriendo todavia.

a que se debe?
que tendria que cambiar para evitar los Warnings?

espero me ayuden, gracias?
Responder Con Cita
  #2  
Antiguo 08-03-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
El error sucede cuando construyes objetos de clases que tienen métodos abstractos. Lo raro es que TMemoryStream no tiene métodos abstractos. El mensaje de error indica la clase TStream pero en el código que pones no se ve ninguna referencia directa a TStream. Es más, el error marca dos líneas pero sólo en una tienes una construcción de un stream. ¿No estarás olvidando poner algo? ¿Los números 179 y 209 corresponden a líneas de ese código?

// Saludos
Responder Con Cita
  #3  
Antiguo 09-03-2010
Avatar de alonso.esparza
alonso.esparza alonso.esparza is offline
Miembro
 
Registrado: nov 2008
Posts: 16
Poder: 0
alonso.esparza Va por buen camino
Red face

Jaja Es cierto, perdon, me distraje, este codigo lo uso para cargar las imagenes y a un 'Image' , que era donde me marcaba los errores, perdon, ahi va:

Código Delphi [-]
 
procedure TF_Principal.DBG_RecEnvCellClick(Column: TColumn);
var tmp: TStream;
begin
Try
With Q_Util do
  begin
  Close;
  SQL.Clear;
  SQL.Add('SELECT * FROM Ima WHERE idMov=:idmov ORDER BY Id');
  Parameters.ParamByName('idmov').Value:=Q_RecEnv.FieldValues['Id'];
  Open;
  end;
  if (Q_Util.RecordCount = 0) then
    begin
    L_foja1.Caption:='ERR';
    L_Fojas1.caption:='OR';
    SB_Atras.Enabled:=False;
    SB_Adelante.Enabled:=False;
    //SB_Extraer.Visible:=False;
    end
  else
    if (Q_Util.RecordCount = 1) then
      begin
        L_foja1.Caption:='1';
        L_Fojas1.caption:='1';
        Im_Seerd.Picture.Graphic:=TJPEGImage.Create;
        tmp:=TStream.Create;
        tmp:=Q_Util.createblobstream(Q_Util.FieldByName('Imagen'),bmRead );
        Im_Seerd.Picture.Graphic.LoadFromStream (tmp);
        tmp.Free;

      end
    else
      begin
      L_foja1.Caption:='1';
      L_Fojas1.caption:=IntToStr(Q_Util.RecordCount);
      Im_Seerd.Picture.Graphic:=TJPEGImage.Create;
      tmp:=TStream.Create;
      tmp:=Q_Util.createblobstream(Q_Util.FieldByName('Imagen'),bmRead );
      Im_Seerd.Picture.Graphic.LoadFromStream (tmp);
      tmp.Free;
       end;
except ShowMessage('NO HA SELECCIONADO NINGUN REGISTRO') end;

end;

Una disculpa ,gracias
Responder Con Cita
  #4  
Antiguo 09-03-2010
Avatar de alonso.esparza
alonso.esparza alonso.esparza is offline
Miembro
 
Registrado: nov 2008
Posts: 16
Poder: 0
alonso.esparza Va por buen camino
Wink

en los
Código Delphi [-]
tmp:=TStream.Create;

es donde me marca el error
Responder Con Cita
  #5  
Antiguo 09-03-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues es lo que te comento. No puedes crear objetos de TStream, tienes que usar algún descendiente. Pero fíjate que en tu código realmente ni siquiera lo necesitas pues CreateBlobStream ya te devuelve un objeto creado.

// Saludos
Responder Con Cita
  #6  
Antiguo 11-03-2010
Avatar de alonso.esparza
alonso.esparza alonso.esparza is offline
Miembro
 
Registrado: nov 2008
Posts: 16
Poder: 0
alonso.esparza Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Pues es lo que te comento. No puedes crear objetos de TStream, tienes que usar algún descendiente. Pero fíjate que en tu código realmente ni siquiera lo necesitas pues CreateBlobStream ya te devuelve un objeto creado.

// Saludos


Jaja, tenias razon, ya se lo quite y funciona perfecto, pero, me quedo la duda, de que cuando ejecuto el programa y ya lo cierro, se queda "abierto", o sea sigue en la lista de procesos de windows, Crees que tenga que hacer el hilo en el lugar adecuado, ya busque en el foro, pero solo econtre algo para cerrar ejecutables, pero la idea que funcione normalmente, no crees?, digo..
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
Duda con TStream.Readbuffer miguel_e Varios 2 04-01-2006 19:31:10
Aviso del compilador: Method hides virtual method of base type dec OOP 4 05-11-2005 13:35:35
Problemas al guardar componentes con TStream!! OzzyzzO OOP 11 20-10-2005 18:02:51
Cargar Tstream de donde? zugazua2001 Varios 1 30-07-2005 14:44:35
Modificar tStream aig OOP 14 27-06-2003 09:09:29


La franja horaria es GMT +2. Ahora son las 07:23:30.


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