Autor Beitrag
vandehorst
Hält's aus hier
Beiträge: 3


D6
BeitragVerfasst: Di 11.01.05 00:09 
Hallo,

ich habe folgendes Problem , über dem ich schon (zu) lange gebrütet habe :evil: , also, Ich habe ein Fenster mit einem DBChart, welches der Benutzer zur Laufzeit verändern kann, sprich scrollen, zoom, Bereich wählen, etc. Nun möchte Ich genau dieses Chart (so wie der Benutzer es eingestellt hat) ausdrucken, ich dachte an QReport.

Mein Ansatz war, dass ich das DBChart als bmp in den Zwischenspeicher packe und dann beim QRep dieses aus dem Zwischenspeicher lade. - Klappt nicht :x .

Dann wollte ich das DBChart als bmp in einer Datei abspeichern, auf welche eine Image-Komponente des QRep zugreifen sollte.
Sah zunächst gut aus, es kommt aber immer, wenn das DBChart in die Datei abgelegt werden soll die Fehlermeldung:

"Im Projekt ist eine Exception der Klasse EFCreateError aufgetreten. Meldung: Datei ... kann nicht erzeugt werden."

Hier ist der Quellcode:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
procedure TForm11.Button2Click(Sender: TObject); 
var 
  Dateiname: String; 
  FileHandle: Integer; 
  Bitmap: TBitmap; 
begin 
  Dateiname := 'C:\HealthCare\Chart.bmp'; 
  FileHandle := FileCreate(Dateiname); 
  DBChart1.CopyToClipboardBitmap; 
  Clipboard.Open; 
  Image1.Picture.Assign(Clipboard); 
  Image1.Picture.SaveToFile(Dateiname); 
  FileClose(FileHandle); 
  
  if FileExists(Dateiname) Then 
  begin 
    DeleteFile(Dateiname); 
    FileHandle := FileCreate(Dateiname); 
    DBChart1.CopyToClipboardBitmap; 
    if Clipboard.HasFormat(CF_BITMAP) then 
    begin 
      Image1.Picture.Bitmap.Assign(Clipboard); 
    end; 

    FileClose(FileHandle); 
  end; 

  Form12.QuickRep1.Preview; 
end;


Hab schon mal 'nen Tipp mit 'ner TempDatei aufgeschnappt, aber was meint Ihr genau, wie funktioniert das, hab darüber in keinem meiner Bücher was gefunden .

Ich hoffe Ihr könnt mir irgendwie helfen, so langsam will ich dem Problem echt Herr werden :lol: .

Danke.

Patrick

Moderiert von user profile iconUGrohne: Delphi-Tags hinzugefügt.
MrSpock
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: Di 11.01.05 08:20 
Hallo Patrick,

herzlich willkommen im Delphi-Forum.

Deine Prozedur erzeugt ja zunächst die Datei mit FileCreate. Erst in unteren Teil der Prozedur prüfst du, ob die Datei existiert, löscht sie in diesem Fall und erstellst sie dann neu. Wenn die Datei aber bereits am Anfang existiert, versuchst du eine Datei zu erstellen, die schon existiert. Das könnte zu deinem Fehler führen.

_________________
Live long and prosper
MrSpock \\//