imagem no rave atraves da propriedade FileLink

Delphi

25/04/2008

caros colegas, uso o rave 7.5 e o delphi 2007. como nao consegui instalar o componente para jpg no rave, eu extraio o jpg da tabela (firebird) para um diretório, converto ele em bitmap e jogo seu caminho numa variavel para tentar envia-lo para o rave atraves da propriedade FileLink do componente Bitmap do rave.

o componente esta dentro de um data band (lincado a um DataView), que por sua ves está dentro de um componente region. tudo funciona normal no rave quando busco os dados do banco de dados

meu problema é que o código abaixo, que deveria funcionar, nao funciona. se eu remover a condiçao ´if bmp <> nil then´, eu tenho um erro de access violation, se eu nao remover a condiçao, nao é recuperado imagem alguma no rave...

alguem poderia me ajudar?


uses
RvCsStd, RvClass
.
.
.

var
Img: TRavePage;
bmp: TRaveBitmap;
begin
Ane := RvPLaudo.ProjMan.FindRaveComponent(´RptLaudo.Anexos´, nil) as TRavePage;
Img := RvPLaudo.ProjMan.FindRaveComponent(´RptLaudo.Imagem´, nil) as TRavePage;
Bmp := RvPLaudo.ProjMan.FindRaveComponent(´RptLaudo.bmpImg´, Img) as TRaveBitmap;

if not DM.cdsClassf01FOTO.IsNull then
  begin
    Ane.GotoPage := Img;
    if bmp <> nil then
    begin
      Bmp.FileLink := Variavel_que_contem_o_caminho_da_imagem;
      Connection.DoGetRow;
    end;
  end;

end;


abraços a todos!


Mahdak

Mahdak

Curtidas 0

Respostas

Robsonr

Robsonr

25/04/2008

Boa tarde mahdak

Aki eu usei um esqueminha que o marcello me passou ele funciona desta maneira:
1 – Criei um parâmetro com o nome de pFoto já em cima do meu relatório que se chama
2 – No botão que chama o relatório eu coloquei assim:

procedure Tfform.SpeedButton1Click(Sender: TObject);
Var
vCodigo:Integer; //Código do aluno selecionado
vFoto:String;//Essa variável vai ser carregada com o endereço da foto
begin
vCodigo:=StrToInt(DBEdit1.Text);//O String do campo DBEdi1 é transformado em Inteiro

vFoto:=(ExtractFilePath(ParamStr(0))+´Fotos\´+dmTables.tbAlunosFotoAluno.AsString);//O Endereço da foto é carregado na variável vFoto;

with dmReports.qrFichaIndividual do //Com o query qrFichaIndividual fazer

begin
Close;
dmReports.RvRelatorios.SetParam(´pFoto´,vFoto);//Relaciona a variável vFoto com o parâmetro pFoto do Rave

Parameters.ParamByName(´pCodigo´).value:=vCodigo;//Aqui são carregados os dados do Aluno tendo como base o código do DBEdit1.

Open;//Abre o query
dmReports.RvRelatorios.ExecuteReport(´rFichaIndividual´);//Executa o relatório rFichaIndividual.
end;
end;

end.

3 – No Rave coloquei o DataText20 e fui no objectInspector e setei o parâmetro criado no item 1

4 – No evento onBeforePrint do Objeto BMP que está colocado no relatório eu coloquei:
Bitmap1.FileLink:=(DataText20.text);

5 – Compilei o comando no botão apropriado do relatório e salvei o relatório. Depois voltei ao Delphi e rodei a aplicação. Então VoeAle – Não me critiquem não sei francês.

Ah, já ia me esquecendo o DataText não tem uma opção visible, então mudei a cor dele para white – de inglês eu entendo. E foi só.

Daí vc faz as adaptações conforme sua necessidade

Espero ter ajudado!


GOSTEI 0
Mahdak

Mahdak

25/04/2008

robsonr. Valeu!!!!!!!!!!!!!!!!!!!!!!

essa foi pra muê pau!

só criei um campo (tmp) na tabela, atribui o caminho da imagem ao campo, coloquei um dataText no relatório relacionado ao campo e no evento mencionado do image atribui ao .FileLink o valor do componente dataText, Exatamente como voce falou...


beleza irmao, que fique essa dica para todos!!!! alguns podem até chamar isso de gambiarra, mas que resolveu um problemao aqui!

valeu!


GOSTEI 0
POSTAR