Newsgroup: it.comp.lang.delphi
Titolo: Errore su stampa rave

E' da un po' che lotto per capire dove sta l'errore.Ogni volta che lancio la
stampa con rave dopo essere uscito dalla sua anteprima mi da errore di
"invalid pointer operation".
Il codice non e' complicato e quindi dovrebbe essere per me semplice capire
dove sbaglio ma non e' cosi. provo a postare un po di codice
procedure TCffprevlForm.BitBtnStpClick(Sender: TObject);
begin
   stampa;
end;
procedure Stampa;
var Page1,Page2:TRavePage;
    Logo1:TRaveBitmap;
begin
  I:=0;
  with CffprevlForm do begin
    ConnettiDitte;
    LgDitta;
    ///LgParam;
    with RvProject1 do begin
    //  ProjectFile:=XPath+'\Exe\Rav\CfsprevlRav.rav';
      RvProject1.Open;
      SetParam('SFNRO',trim(LgCampo(SFNROV.text,0))+' DEL '+SFDTPV.Text);
      if trim(SFSIGV.Text)<>'' then SetParam('SFSIG','c.a.
'+SFSIGV.Text);
      if trim(SFRIFV.Text)<>'' then SetParam('SFRIF','ns.rif.
'+SFRIFV.Text);
      SetParam('SFRA1',SFRA1V.Text);
      SetParam('SFRA2',SFRA2V.Text);
      SetParam('SFIND',SFINDV.Text);
      SetParam('SFLOC',SFCAPV.Text+' '+SFLOCV.Text+' '+SFPRVV.Text);
      SetParam('SFDB1',SFDB1V.Text);
      SetParam('SFDB2',SFDB2V.Text);
      if trim(CTVALV.Text)<>'' then
        SetParam('SFVAL','?   '+trim(LgCampo(CTVALV.text,0))+' + I.V.A.');
      SetParam('SFDUR',CTDURV.Text+' MESI');
      if CTTANX='N' then
        SetParam('SFAN1','( '+trim(LgCampo(CTAN1V.text,0))+'N )')
      else
        if CTTANX='%' then
          SetParam('SFAN1','( '+trim(LgCampo(CTAN1V.text,3))+'% )');
      if ANTICX<>0 then
        SetParam('SFANT','?   '+trim(LgCampo(FloatToStr(ANTICX),2))+' +
I.V.A.');
      SetParam('SFDCA','N. '+trim(LgCampo(IntToStr(CTCAOX),0))+' CANONI
SUCCESSIVI CADAUNO');
      if CTCVAV.Checked then
        SetParam('SFCAN','CANONI VARIABILI')
      else
        SetParam('SFCAN','?   '+trim(LgCampo(CANONEOUT.caption,2))+' +
I.V.A.');
      if CTPERX=1 then SetParam('SFPER','MENSILE');
      if CTPERX=2 then SetParam('SFPER','BIMESTRALE');
      if CTPERX=3 then SetParam('SFPER','TRIMESTRALE');
      if CTPERX=4 then SetParam('SFPER','QUADRIMESTRALE');
      if CTPERX=6 then SetParam('SFPER','SEMESTRALE');
      if CTPERX=12 then SetParam('SFPER','ANNUALE');
      SetParam('SFPRI','( '+trim(LgCampo(CTPRIV.text,3))+'% )');
      SetParam('SFIRI','?   '+LgCampo(CTIRIV.text,2));
      SetParam('SFESB','?   '+LgCampo(FloatToStr(TotEsb),2)+' + I.V.A.');
      // condizioni generali
      if trim(CTISTV.Text)<>'' then
        begin
          SetParam('SFISTD','SPESE ISTRUTTORIA');
          SetParam('SFIST','?   '+LgCampo(CTISTV.Text,2)+' + I.V.A.');
        end;
      if trim(CTSPTV.Text)<>'' then
        begin
          SetParam('SFSPTD','SPESE PERIZIA TECNICA');
          SetParam('SFSPT','?   '+LgCampo(CTSPTV.Text,2)+' + I.V.A.');
        end;
      if trim(CTSRIV.Text)<>'' then
        begin
          SetParam('SFSRID','SPESE RISCATTO');
          SetParam('SFSRI','?   '+LgCampo(CTSRIV.Text,2)+' + I.V.A.');
        end;
      if trim(CTISIV.Text)<>'' then
        begin
          SetParam('SFISID','SPESE INCASSO CANONI');
          SetParam('SFISI','?   '+LgCampo(CTISIV.Text,2)+' + I.V.A.');
        end;
      // note
      SetParam('SFNT1',SFNT1V.Text);
      SetParam('SFNT2',SFNT2V.Text);
      SetParam('SFNT3',SFNT3V.Text);
      SetParam('SFNT4',SFNT4V.Text);
      SetParam('SFNT5',SFNT5V.Text);
      // luogo e nome ditta
      SetParam('AZLOC',AZLOCX+', '+FormatDateTime('d mmmm yyyy',Now));
      SetParam('AZRA1',AZRA1X);
      SetParam('Totimp',Totimp);
      SetParam('Totqin',Totqin);
      SetParam('Totqca',Totqca);
      Page1:=RvProject1.ProjMan.FindRaveComponent('preventivo.page1',nil) as
TRavePage;
      Page2:=RvProject1.ProjMan.FindRaveComponent('preventivo.page2',nil) as
TRavePage;
      if PianoCBox.Checked then
        Page1.GotoPage:=Page2;
     RvProject1.Execute;
      RvProject1.Close;
    end;
  end;
end;
in pratica la procedure stampa apre il progetto rave, passa attraverso il
customconnection vari parametri , cerca i componenti page1 e page2 per poter
lanciare la seconda pagina quando voglio io.
Non so quanto sono stato chiaro.
Grazie ragazzi

L'errore stava sul progetto Rave.