Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Execute umgehen (https://www.delphipraxis.net/133192-execute-umgehen.html)

body2009 27. Apr 2009 17:23


Execute umgehen
 
Hallo ich habe ein Programm geschrieben was zwei datenbanken vergleicht nach diverence und mir diese daten dann in einer scrollbox wiedergibt.

Beim ersten Durchlauf funktionirt das auch ganz gut, aber beim zweiten Durchlauf springt er bei RvProject1.Execute; in except .


Delphi-Quellcode:
 RvNDRWriter1.Stream.Position := 0 ;
      RvNDRWriter1.FileName := '';
      RvProject1.Engine := nil;
      RvProject1.Close;
      RvProject1.Engine := RvNDRWriter1;  //daten werden gezogen
      RvProject1.Open;
      ShowMessage('wird Geladen');
      try
         RvProject1.Execute; // beim zweiten durchlauf springt er hier in except
         ShowMessage('ist geladen');
         RvProject1.Engine := nil;
         RvRe_Preview.Render(RvNDRWriter1.Stream); // daten werden in scrollbox
                                                   // angezeigt

      except
         on E: Exception do begin
         ShowMessage('Fehler');
         end;
      end;

end;
was kann ich machen damit er beim zweiten durchlauf das problem umgeht??

shmia 27. Apr 2009 17:30

Re: Execute umgehen
 
Du hast einen ganz blöden Fehler in deinem Sourcecode.
Und zwar verhinderst du, dass eine vernünftige Fehlermeldung angezeigt wird:
Delphi-Quellcode:
except
    on E: Exception do begin
    ShowMessage('Fehler');
    end;
end;
Es wird grundsätzlich immer nur folgende Meldung ohne Aussagekraft angezeigt:
Code:
Fehler
Lass doch einfach den ganzen try...except Block weg!!
Ausserdem können wir dir nicht sagen, was in Execute schief läuft, da wir den Sourcecode nicht kennen.

Mithrandir 27. Apr 2009 17:31

Re: Execute umgehen
 
Zitat:

Zitat von body2009
was kann ich machen damit er beim zweiten durchlauf das problem umgeht??

Das Problem beheben. ;)

body2009 28. Apr 2009 09:39

Re: Execute umgehen
 
:-D lol du bist gut aber deswegen bin ich doch hier. und Wie umgehe ich jetzt den punkt das er beim zweiten durchlauf die RvProject1.Execute; nicht ausführt ?? denn da springt er in die DBAdvED und aktualisiert das bild in der scrollbox nicht mehr.

nahpets 28. Apr 2009 10:05

Re: Execute umgehen
 
Hallo,

mach mal bitte aus
Delphi-Quellcode:
except
  on E: Exception do begin
    ShowMessage('Fehler');
  end;
end;
Delphi-Quellcode:
except
  on E: Exception do begin
    ShowMessage(e.Message);
  end;
end;
und erzähle uns dann, was Dir bei ShowMessage angezeigt wird, dann können wir eventuell unterumständen vielleicht weiterhelfen. Momentan haben wir keinerlei Informationen über den auftretenden Fehler und müssten daher in der :glaskugel: lesen. Aber die ist heute, bei dem Nebel, sehr getrübt 8)
Tschuldigung, aber die von Dir bisher gelieferten Informationen reichen einfach für eine gescheite Hilfestellung noch nicht aus.

body2009 28. Apr 2009 11:34

Re: Execute umgehen
 
Habe ich gemacht und darin steht : Zugriffsverletzung bei Adresse 0056160B in Modul'mod_0001.exe'. Lesen von Adresse 00000008

Könnt ihr damit was anfangen?

himitsu 28. Apr 2009 11:40

Re: Execute umgehen
 
Zitat:

Zitat von body2009
Lesen von Adresse 00000008

sowas kommt z.B. wenn man auf etwas zugreift (z.B. Objekt-Variable meißt via Property
oder eine Methode eines Objektes aufrufen will)
und das Objekt nicht exisitert, also die Objectvariable nil ist.

body2009 28. Apr 2009 12:20

Re: Execute umgehen
 
aha ok. Aber warum durchläuft er dann die procedure beim ersten mal komplett, und beim zweiten durchlauf springt er beim RvProject1.execute auf exception kann man das umgehen? oder was kann ich machen?

DeddyH 28. Apr 2009 12:39

Re: Execute umgehen
 
Zeig uns doch mal die Execute-Methode, am besten mit der entsprechend markierten Fehlerzeile.

body2009 28. Apr 2009 12:44

Re: Execute umgehen
 
vorher wird die datenbak geladen
und hir im code soll er die daten die gefiltert wurden in der scrollbox ausgeben

Delphi-Quellcode:
RvNDRWriter1.Stream.Position := 0 ;
      RvNDRWriter1.FileName := '';
      RvProject1.Engine := nil;
      RvProject1.Close;
      RvProject1.Engine := RvNDRWriter1;  
      RvProject1.Open;
      ShowMessage('wird Geladen');
      try
         RvProject1.Execute; // beim zweiten durchlauf springt er hier in except
         ShowMessage('ist geladen');
         RvProject1.Engine := nil;
         RvRe_Preview.Render(RvNDRWriter1.Stream); // daten werden in scrollbox
                                                   // angezeigt

      except
         on E: Exception do begin
         ShowMessage(e.Message); //Zugriffsverletzung bei Adresse 0056160B in
                                 //Modul'mod_0001.exe'.Lesen von Adresse 00000008
         end;
      end;

end;

Mithrandir 28. Apr 2009 12:47

Re: Execute umgehen
 
body2009, wenn du dich partout weigerst, hier die erfragten Codestücke zu präsentieren, dann brauchst du auch keine weitere Hilfe erwarten. Hellsehen können wir alle nicht. Und du willst mir doch sicher nicht weiß machen, dass das hier die Methode RvProject1.Execute ist, oder:

Delphi-Quellcode:
RvNDRWriter1.Stream.Position := 0 ;
      RvNDRWriter1.FileName := '';
      RvProject1.Engine := nil;
      RvProject1.Close;
      RvProject1.Engine := RvNDRWriter1;  
      RvProject1.Open;
      ShowMessage('wird Geladen');
      try
         RvProject1.Execute; // beim zweiten durchlauf springt er hier in except
         ShowMessage('ist geladen');
         RvProject1.Engine := nil;
         RvRe_Preview.Render(RvNDRWriter1.Stream); // daten werden in scrollbox
                                                   // angezeigt

      except
         on E: Exception do begin
         ShowMessage('Fehler');
         end;
      end;

end;
Oder handelt es sich um Drittkomponenten?

body2009 28. Apr 2009 12:51

Re: Execute umgehen
 
ne aber ich weiß nicht was du mit Execute Metode meinst. Das ist keine absicht und weigern tue ich mich auch net aber ich bin noch anfänger und weiß nicht was genau du haben möchtest

body2009 28. Apr 2009 12:53

Re: Execute umgehen
 
ich kann euch ja mal den kompette code geben vieleicht könnt ihr damit dann besser was anfangen

Mithrandir 28. Apr 2009 12:54

Re: Execute umgehen
 
Zitat:

Zitat von body2009
ne aber ich weiß nicht was du mit Execute Metode meinst. Das ist keine absicht und weigern tue ich mich auch net aber ich bin noch anfänger und weiß nicht was genau du haben möchtest

Häng das komplette Projekt mal hier an und lies dir in der Zwischenzeit mal die Grundlagentutorials durch. Da lernst du auch ein paar Fachbegriffe.

DeddyH 28. Apr 2009 12:54

Re: Execute umgehen
 
Es knallt doch im Aufruf von
Delphi-Quellcode:
RvProject1.Execute;
Und dieses Execute von RvProject1 möchten wir gerne einmal sehen.

body2009 28. Apr 2009 12:57

Re: Execute umgehen
 
So hier mal den ganzen code hoffe der hilft euch weiter.

Delphi-Quellcode:
unit p_frm_start;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ZConnection,IniFiles,
  ZAbstractRODataset, ZAbstractDataset,
  ZAbstractTable,
  WinSock,IdBaseComponent,
  IdComponent, IdUDPBase, IdUDPServer, DB, ZDataset, ExtCtrls, RpRender,
  RpRenderCanvas, RpRenderPreview, RpDefine, RpRave, Grids, BaseGrid, AdvGrid,
  Buttons, AdvGlassButton, AdvGlowButton, StdCtrls, datelbl,shellapi, RpCon,
  RpConDS, RpBase, RpFiler, ComCtrls, IdDateTimeStamp, Menus, ToolWin, AdvMenus ;

type
  Tfrm_start = class(TForm)
    DB_MASTER: TZConnection;
    ZQuery1: TZQuery;
    AdvStringGrid1: TAdvStringGrid;
    RvProject1: TRvProject;
    ScrollBox1: TScrollBox;
    RvRe_Preview: TRvRenderPreview;
    PNL_Button: TPanel;
    Splitter1: TSplitter;
    btn_AUSWERTEN: TAdvGlowButton;
    btn_DRUCKEN: TAdvGlowButton;
    btn_EXPORT: TAdvGlowButton;
    btn_EXIT: TAdvGlowButton;
    ZQuery1IV70ID: TIntegerField;
    ZQuery1IV70EAN: TStringField;
    ZQuery1IV70ARTN: TStringField;
    ZQuery1IV70ABEZ: TStringField;
    ZQuery1IV70STSA: TStringField;
    ZQuery1IV70TYP: TStringField;
    ZQuery1IV70SET: TStringField;
    ZQuery1IV70BME: TStringField;
    ZQuery1IV70ZME: TStringField;
    ZQuery1IV70PREIS: TFloatField;
    ZQuery1IV70MEST: TFloatField;
    ZQuery1IV70MEKT: TFloatField;
    ZQuery1IV70MEPAK: TFloatField;
    ZQuery1IV70MEM: TFloatField;
    ZQuery1IV70MEROL: TFloatField;
    ZQuery1IV70MEM2: TFloatField;
    ZQuery1IV70MELAG: TFloatField;
    ZQuery1IV70MESCK: TFloatField;
    ZQuery1IV70MEKG: TFloatField;
    ZQuery1IV70MER1: TFloatField;
    ZQuery1IV70MER2: TFloatField;
    ZQuery1IV70MER3: TFloatField;
    ZQuery1IV70WAG: TStringField;
    ZQuery1SI01STOR: TIntegerField;
    ZQuery1SI01ATNR: TStringField;
    ZQuery1SI01ME: TStringField;
    ZQuery1SI01BMENG: TFloatField;
    ZQuery1SI01BWERT: TFloatField;
    ZQuery1SI01IMENG: TFloatField;
    ZQuery1SI01IWERT: TFloatField;
    ZQuery1SI01DMENG: TFloatField;
    ZQuery1SI01DWERT: TFloatField;
    ZQuery1SI01DATU: TDateTimeField;
    SaveDialog1: TSaveDialog;
    RvDataSetConnection1: TRvDataSetConnection;
    RvNDRWriter1: TRvNDRWriter;
    btn_RAVE: TAdvGlowButton;
    btn_FIRST: TAdvGlowButton;
    btn_back: TAdvGlowButton;
    btn_NEXT: TAdvGlowButton;
    btn_LAST: TAdvGlowButton;
    btn_ZOOMIN: TAdvGlowButton;
    btn_ZOOMOUT: TAdvGlowButton;
    StatusBar1: TStatusBar;
    Panel1: TPanel;
    Timer1: TTimer;
    logo: TImage;
    AdvMainMenu1: TAdvMainMenu;
    mainprogramm: TMenuItem;
    mainclose: TMenuItem;
    bearbeiten1: TMenuItem;
    Auswerten1: TMenuItem;
    Export1: TMenuItem;
    Drucken1: TMenuItem;
    Report1: TMenuItem;
    Design1: TMenuItem;
    Label1: TLabel;
    procedure maincloseClick(Sender: TObject);
    procedure Design1Click(Sender: TObject);
    procedure Drucken1Click(Sender: TObject);
    procedure Export1Click(Sender: TObject);
    procedure Auswerten1Click(Sender: TObject);
    procedure Schlieen1Click(Sender: TObject);
    procedure SchliessenClick(Sender: TObject);
    procedure DB_MASTERAfterConnect(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure btn_ZOOMOUTClick(Sender: TObject);
    procedure btn_ZOOMINClick(Sender: TObject);
    procedure btn_LASTClick(Sender: TObject);
    procedure btn_NEXTClick(Sender: TObject);
    procedure btn_backClick(Sender: TObject);
    procedure btn_FIRSTClick(Sender: TObject);
    procedure btn_RAVEClick(Sender: TObject);
    procedure btn_DRUCKENClick(Sender: TObject);
    procedure btn_EXPORTClick(Sender: TObject);
    procedure btn_AUSWERTENClick(Sender: TObject);
    procedure btn_EXITClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure Lade_Daten;
    procedure init;
    procedure Start_MySQL;
    function getIPAdress: string;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
      INIFILE: TInifile;
      Path: string;
      G_STATUS: string;
      G_ARCHIV_PATH: string;
      G_param_liste: TStringList;
      G_STOR : string;
      G_IPAD : string;
      G_PORT : string;
      MASTER: string;
      MASTER_PORT : string;
      INIDAT: TIniFile;
      NDR : TFileStream;
  end;

var
  frm_start: Tfrm_start;

implementation

uses p_frm_abf;

{$R *.dfm}
//-----------------------------------------------------------------------------
procedure Tfrm_start.Start_MySQL;
var QRY: TZQuery;
  s: string;
  sl : TStringList;
begin

    try
      DB_MASTER.Disconnect;
      DB_MASTER.Protocol := 'mysql';
      DB_MASTER.HostName := G_IPAD;
      DB_MASTER.Port := StrToInt(G_PORT);
      DB_MASTER.USER := 'user';
      DB_MASTER.Password := 'xxx';
      DB_MASTER.Database := 'wws';
      try
        DB_MASTER.Connect;
      except
        MessageDlg('Fehler beim starten der Datenbank !', mtWarning, [mbOK], 0);
      end;
    except
      G_STATUS := 'OFFLINE';
    end;
end;
 //----------------------------------------------------------------------------
procedure Tfrm_start.init;
var
  s: string;
  y: Integer;
  x: Integer;
begin
  Path := ExtractFilePath(ParamStr(0));
  // Eigenen Pfad ermitteln
  // Inidateiname Ermitteln
  s := IncludeTrailingBackslash(ExtractFilePath(ParamStr(0))) + ChangeFileExt(ExtractFileName(ParamStr(0)), '.INI');
  INIFILE := TIniFile.Create(s);
  G_param_liste := TStringList.Create;
  y := ParamCount;
  if y > 0 then
  begin
    // alle Parameter einlesen
    for x := 1 to y do
    begin
      G_param_liste.Add(UpperCase(ParamStr(x)));
    end;

    if G_param_liste.Values['/IPAD'] > '' then
    begin
       G_IPAD := G_param_liste.Values['/IPAD'];
    end;
    if G_param_liste.Values['/PORT'] > '' then
    begin
       G_PORT := G_param_liste.Values['/PORT'];
    end;
    if G_param_liste.Values['/STOR'] > '' then
    begin
       G_STOR := G_param_liste.Values['/STOR'];
    end;
    RvNDRWriter1.Stream := TMemoryStream.Create;
  //  Start_MySQL;
  end;
end;
//-----------------------------------------------------------------------------
function Tfrm_start.getIPAdress: string;
var
  wVersionRequested: WORD;
  wsaData: TWSAData;
  p2: pchar;
  p: PHostEnt;
  s: array[0..128] of char;

begin
{Start up WinSock}
  wVersionRequested := MAKEWORD(1, 1);
  WSAStartup(wVersionRequested, wsaData);
  try
  {Get the IpAddress}
    GetHostName(@s, 128);
    p := GetHostByName(@s);
    result := p^.h_Name;
    p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
    result := p2;
  finally
    WSACleanup;
  end;
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.FormActivate(Sender: TObject);
begin
  init;



  ExitCode := 1;
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.btn_EXITClick(Sender: TObject);
begin
    close;
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.btn_AUSWERTENClick(Sender: TObject);
begin
   frm_abf := Tfrm_abf.Create(self);
   Try
      frm_abf.ShowModal;
      Lade_Daten;
   Finally
      frm_abf.Free;
   end;
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.Lade_Daten;
var x: integer;
    Qry: TZQuery;
begin
  x := 1;
  AdvStringGrid1.RowCount := 2;
  AdvStringGrid1.Clear;
  AdvStringGrid1.Cells[0, 0] :='Artikel NR';
  AdvStringGrid1.Cells[1, 0] :='Menegeneinheit';
  AdvStringGrid1.Cells[2, 0] :='Bestandsmenge';
  AdvStringGrid1.Cells[3, 0] :='Bestandswet';
  AdvStringGrid1.Cells[4, 0] :='Inventarmenge';
  AdvStringGrid1.Cells[5, 0] :='Inventarwert';
  AdvStringGrid1.Cells[6, 0] :='Div.Menge';
  AdvStringGrid1.Cells[7, 0] :='Div.Wert';
  AdvStringGrid1.Cells[8, 0] :='Artikelbezeichnung';
  AdvStringGrid1.Cells[9, 0] :='Artikelpreis';

  ZQuery1.Close;
  ZQuery1.Connection := DB_MASTER;
  ZQuery1.SQL.Clear;
  ZQuery1.SQL.Text := 'select * FROM wwsi0100,wwiv7000 where IV70ARTN=SI01ATNR and SI01DWERT > '+frm_abf.edt_money.Text;
  ZQuery1.open;
  while not ZQuery1.Eof do
  begin
    AdvStringGrid1.AddRow;
    AdvStringGrid1.Cells[0,x] := ZQuery1IV70ARTN.AsString;
    AdvStringGrid1.cells[1,x] := ZQuery1IV70BME.AsString;
    AdvStringGrid1.cells[2,x] := ZQuery1SI01BMENG.AsString;
    AdvStringGrid1.cells[3,x] := ZQuery1SI01BWERT.AsString;
    AdvStringGrid1.cells[4,x] := ZQuery1SI01IMENG.AsString;
    AdvStringGrid1.cells[5,x] := ZQuery1SI01IWERT.AsString;
    AdvStringGrid1.cells[6,x] := ZQuery1SI01DMENG.AsString;
    AdvStringGrid1.cells[7,x] := ZQuery1SI01DWERT.AsString;
    AdvStringGrid1.cells[8,x] := ZQuery1IV70ABEZ.AsString;
    AdvStringGrid1.cells[9,x] := ZQuery1IV70PREIS.AsString;

    ZQuery1.Next;
    Inc(x);
  end;

  AdvStringGrid1.RowCount := x;

      //RvNDRWriter1.Stream.Position := 0 ;
      RvNDRWriter1.FileName := 'hugo.ndr';
     // RvProject1.Engine := nil;
      RvProject1.Close;
      RvProject1.Engine := RvNDRWriter1;  //daten werden gezogen
      RvProject1.Open;
      ShowMessage('wird Geladen');
      try

         RvProject1.Execute; // beim zweiten durchlauf springt er hier in except
         ShowMessage('ist geladen');
         //RvProject1.Engine := nil;
         RvRe_Preview.Render(RvNDRWriter1.Stream); // daten werden in scrollbox
                                                   // angezeigt

      except
         on E: Exception do begin
         ShowMessage(e.Message);
         end;
      end;

end;

//-----------------------------------------------------------------------------
procedure Tfrm_start.btn_EXPORTClick(Sender: TObject);
begin

    if SaveDialog1.Execute = true then
    begin
        AdvStringGrid1.SaveToXLS(SaveDialog1.FileName);
   //     ShellExecute(handle, NULL, PAnsiChar(SaveDialog1.FileName), NULL, NULL, SW_SHOWNORMAL);
    end;

end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.btn_DRUCKENClick(Sender: TObject);
begin
    If Assigned(NDR) = true then NDR := nil;
        RvProject1.Execute;
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.btn_RAVEClick(Sender: TObject);
begin
    RvProject1.Design;
    RvProject1.Save;

end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.btn_FIRSTClick(Sender: TObject);
begin
    RvRe_Preview.PageInc := RvRe_Preview.CurrentPage - 1;
    RvRe_Preview.PrevPage;
    RvRe_Preview.PageInc := 1;
    ScrollBox1.Refresh;
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.btn_backClick(Sender: TObject);
begin
    if RvRe_Preview.CurrentPage > 1 then
       RvRe_Preview.PrevPage
    else
       ShowMessage('Erste Seite erreicht.');
       ScrollBox1.Refresh;
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.btn_NEXTClick(Sender: TObject);
begin
    if RvRe_Preview.CurrentPage < RvRe_Preview.Pages then
       RvRe_Preview.NextPage
    else
       ShowMessage('Letzte Seite erreicht.');
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.btn_LASTClick(Sender: TObject);
begin
    RvRe_Preview.PageInc := RvRe_Preview.Pages - RvRe_Preview.CurrentPage;
    RvRe_Preview.NextPage;
    RvRe_Preview.PageInc := 1;
    ScrollBox1.Refresh;
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.btn_ZOOMINClick(Sender: TObject);
begin
    RvRe_Preview.ZoomIn;
    ScrollBox1.Refresh;
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.btn_ZOOMOUTClick(Sender: TObject);
begin
    RvRe_Preview.ZoomOut;
    ScrollBox1.Refresh;
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.Timer1Timer(Sender: TObject);
begin
    StatusBar1.Panels[3].Text := TimeToStr(time)+' Uhr';
    StatusBar1.panels[2].Text := dateToStr(date);
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.DB_MASTERAfterConnect(Sender: TObject);
begin
    StatusBar1.Panels[0].Text := DB_MASTER.HostName;
    StatusBar1.Panels[1].Text := TimeToStr(time)+' Uhr Daten aufgerufen !';
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.SchliessenClick(Sender: TObject);
begin
    close;
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.Schlieen1Click(Sender: TObject);
begin
    close;
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.Auswerten1Click(Sender: TObject);
begin
    btn_AUSWERTENClick(sender);
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.Export1Click(Sender: TObject);
begin
    btn_EXPORTClick(sender);
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.Drucken1Click(Sender: TObject);
begin
    btn_DRUCKENClick(sender);
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.Design1Click(Sender: TObject);
begin
    btn_RAVEClick(sender);
end;
//-----------------------------------------------------------------------------
procedure Tfrm_start.maincloseClick(Sender: TObject);
begin
    btn_EXITClick(sender);
end;
//-----------------------------------------------------------------------------
end.

DeddyH 28. Apr 2009 13:06

Re: Execute umgehen
 
Es geht also um Rave, wenn ich das richtig sehe. Damit kenne ich mich leider nicht aus, weiß daher auch nicht, was beim Execute so alles passieren kann bzw. welche Voraussetzungen anscheinend nicht mehr gegeben sind.

body2009 28. Apr 2009 13:09

Re: Execute umgehen
 
ja es geht um rave. da ich meine gefilterten daten der datenbanken mit den Kompnenten, Rv_Project, Rv_Writer in der Scollbox anzeigen lassen möchte.

aber trozdem danke für den versuch mir da weiter zu helfen

Mithrandir 28. Apr 2009 13:35

Re: Execute umgehen
 
Damit kenne ich mich auch nicht aus... Aber ich wäre mir auch nicht so sicher, ob Rave jetzt unbedingt sooo für blutige Anfänger geeignet ist... :stupid:

body2009 29. Apr 2009 23:39

Re: Execute umgehen
 
So habe die Lösung.

Mir ist eingefallen das die Objecte die ich so drauf ziehe, nur einmal geöffnet werden, und nicht gelöscht werden können.
und da ist mir der gedanke gekommen das es doch nicht der RvProject1.execute sein kann der denn fehler auslöst.

Da habe ich einfach noch mal geprüft un der Fehler war das ich den RVndrWriter nicht löschen kann da ich ihn ja nicht selber erstellt habe.

Somit habe ich ihn selber erstellt und wieder beim Frm_Start.on_close gelöscht. und jetzt funktinirt es

der code sieht jetzt so aus: var: RVNDR = TRvNDRWriter

Delphi-Quellcode:
if Assigned(RVNDR) = true then
  begin
    RVNDR.Free;
  end;
  RVNDR:= TRvNDRWriter.Create(self);
  with RVNDR do
    begin
      StatusFormat := 'Printing page %p';
      Units := unMM ;
      UnitsFactor := 25.4;//00000000000000000
      Title := 'Rave Report';
      Orientation := poPortrait;
      ScaleX := 50;//.000000000000000000
      ScaleY := 50;//.000000000000000000
      StreamMode := smUser;
    end;
  RVNDR.Stream := TMemoryStream.Create;
  try

  RvProject1.Close;
  RvProject1.Engine := RVNDR;
  RvProject1.Execute;
  RvRe_Preview.Render(RVNDR.Stream);
  RvProject1.Engine := nil;
  except
    on E: Exception do begin


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz