Array
(
)

Esvazeamento de Pilha com QReport por causa da foto

E-fcosta
   - 11 mar 2006

Olá pessoal,

estou fazendo um relatório de alunos, aonde aparecem fotos. o caminho para as fotos está guardado no banco (interbase). Esou usando um qrimage, coloquei um data source e no evento on data change coloquei a procedure MostrarImagem(Image: TQRImage; Caminho: String);
o código dela é esse:

procedure TFormRelUsuariosGeral.MostrarImagem(Image: TQRImage; Caminho: String);
begin
if Caminho = ´´ then
begin
Image.Picture.Assign(nil);
end
else
try
Image.Picture.LoadFromFile(Caminho);
except
Image.Picture.Assign(nil);
end;
end;

por que ocorre este erro???? qdo eu não coloco foto aparece tudo normal. com foto as vezes ele abre p três usuários (com foto ou sem) e no 3 dá erro.

alguém pode me ajudar???

desde já grato,

Emanuel


Aroldo Zanela
   - 12 mar 2006

Colega,

Utilize o link acima ´pesquisar´ e entre com o argumento EDBImage. Você vai encontrar informações sobre esse componente que tem um descendente específico para o QR, e veja se o problema é resolvido. Teste numa outra máquina com mais memória o programa atual para ver se resolve também.


E-fcosta
   - 12 mar 2006

Olá Aroldo,

acho q não é memória não, pq estou num pentium 2.4ghz e 512ram. vou dar uma olhada.

Obrigado.

Emanuel


Aroldo Zanela
   - 12 mar 2006

Colega,

Na base de conhecimento da QUSOFT (Fabricante do QR), encontrei FAQs relacionadas:


Citação:

[Images and Shapes]

E-fcosta
   - 22 mar 2006

Aroldo muito obrigado pela ajuda. a sua dica foi fundamental. ta funcionando blz. o meu código ficou assim(eu coloco um datasource e dentro delo coloco o procedimento abaixo ):

var
Bitmap : TBitmap;
begin
Bitmap := TBitmap.Create;
Bitmap.Height:= 100;
Bitmap.Width:= 50;
try
if (ibqueryTitulos.FieldByName(´FOTO´).IsNull) or
(ibqueryTitulos.FieldByName(´FOTO´).AsString = ´´) then
begin
Bitmap.Assign(nil);
QRImageFoto.Picture.Assign(nil);

end
else
begin
Bitmap.LoadFromFile(ibqueryTitulos.FieldByName(´FOTO´).AsString);
QRImageFoto.Picture.Bitmap.Height := Bitmap.Height;
QRImageFoto.Picture.Bitmap.Width := Bitmap.Width;
QRImageFoto.Picture.Bitmap.Canvas.Draw(0,0, Bitmap);



end;
finally

Bitmap.Free;
end;
end;

Tem um colega lá no active delphi q tava com o mesmo problema vou passar a sua solução para ele.

Obrigado

Emanuel.