AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Prbleme beim Speichern mit TSaveDialog

Ein Thema von Darkchild · begonnen am 28. Nov 2006 · letzter Beitrag vom 28. Nov 2006
Antwort Antwort
Darkchild

Registriert seit: 13. Okt 2006
Ort: NRW
169 Beiträge
 
Delphi 2006 Enterprise
 
#1

Prbleme beim Speichern mit TSaveDialog

  Alt 28. Nov 2006, 07:30
Morgen zusammen,

folgendes kleines Problem:

Ich habe eine Maske mit einem Grid, welches Daten enthält. Dieses wird mit einem Befehl an Excel übergeben und liegt somit dann schön Tabellarisch zum Ausdruck vor.
Jetzt war der Pfad wo das Grid als *.xls Datei gespeichert wird vorher hart im Quellcode Codiert.
Habe deshalb jetzt einen TSaveDialog hinzugefügt um vorhandene Datein zu überschreiben oder halt neue Dateien mit dem Inhalt meines Grids unter beliebigem Namen anzulegen.
Nun mein Problem, der Dialog öffnet sich, ich kann einen Namen eingeben oder eine Datei aussuchen und sagen speichern, der legt die Datei auch an kann aber nicht beenden da er den Inhalt des Grids nicht hineinspeichern kann da er die Meldung bekommt "Can't create the Export output File" und kurz davor kommt eine Exception die sagt "Der Prozess kann nicht auch die Datei zugreifen, da sie von einem anderen Prozess verwendet wird".

An dieser stelle komme ich jetzt gerade nicht weiter, fehlt da ein Close oder etwas anderes, obwohl wenn ich das Close reinsetzte, dann motzt der Compiler weil "Inkompatiebele Typen String und File".
Kann mir da vielleicht jemand Helfen ?
Wäre echt toll.

Delphi-Quellcode:
procedure Tfrmzeiterfassunguebersicht.cxbtnexcelexportClick(Sender: TObject);
var
FName:file;
Filepath:String;
begin
SaveDialog1.Execute;
AssignFile(FName, savedialog1.filename);
Rewrite(FName);
FilePath := savedialog1.FileName;
//close(FName);
ExportGrid4ToExcel(FilePath, cxgridzeiterfassungansicht,True,True,False,'xls');
end;
habe vorher den SaveDialog noch nie benutzt und in der Hilfe von BDS 2006 steht nicht wirklich viel drin was mir weiter hilft, mir fehlen in der neuen Delphi - Hilfe ganzklar die Quellcode - Beispiele wie es vorher noch in Delphi 7 der fall war. Ich weiss garnicht wann diese rausgenommen wurden, Delphi 7 war die Version die ich vor BDS 2006 benutzt habe und da war alles noch normal.


Gruss
Darkchild

P.S: Der Export der Datei in Excel läuft von einem cxdbGrid her mit dem dazugehörigen befehl von DevExpress (ist der letzt Befehl des hier dargestellten Quellcodes).
Ich bin der Geist der stets verneint und das mit recht, denn alles was entsteht ist wert das es zugrunde geht, drum besser wär das nichts entstünde, so ist denn alles was ihr Sünde, Zerstörung, kurz das Böse nennt, mein eigendliches Element.
  Mit Zitat antworten Zitat
Darkchild

Registriert seit: 13. Okt 2006
Ort: NRW
169 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Prbleme beim Speichern mit TSaveDialog

  Alt 28. Nov 2006, 07:43
Habe es glaube ich gerade selbst gelöst:

Sieht jetzt wie folgt aus und scheint zu funktionieren:
Delphi-Quellcode:
procedure Tfrmzeiterfassunguebersicht.cxbtnexcelexportClick(Sender: TObject);
var
F:file;
Filepath:String;
begin
SaveDialog1.Execute;
AssignFile(F, savedialog1.filename);
FilePath := savedialog1.FileName;;
ExportGrid4ToExcel(FilePath, cxgridzeiterfassungansicht,True,True,False,'xls');
//Rewrite(F);
//close(F);
end;
Falls noch einer von euch anmerkungen hat oder sieht das es noch nicht wirklich fehlerfrei ist dann wäre ich für anmerkungen sehr dankbar.

Gruss
Darkchild
Ich bin der Geist der stets verneint und das mit recht, denn alles was entsteht ist wert das es zugrunde geht, drum besser wär das nichts entstünde, so ist denn alles was ihr Sünde, Zerstörung, kurz das Böse nennt, mein eigendliches Element.
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Prbleme beim Speichern mit TSaveDialog

  Alt 28. Nov 2006, 08:13
Hi,

wenn du die Datei mit AssignFile öffnest, kann der Exportprozess nicht mehr zugreifen. Du sperrst dich selbst vor dem Export.
Folgender Code reicht völlig aus:
Delphi-Quellcode:
procedure Tfrmzeiterfassunguebersicht.cxbtnexcelexportClick(Sender: TObject);
begin
  if SaveDialog1.Execute then
    ExportGrid4ToExcel(savedialog1.FileName, cxgridzeiterfassungansicht,True,True,False);
end;
Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
Darkchild

Registriert seit: 13. Okt 2006
Ort: NRW
169 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: Prbleme beim Speichern mit TSaveDialog

  Alt 28. Nov 2006, 08:36
Jo, habe ich geändert, ging vor jetzt auch, aber dennoch habe ich das jetzt mal so gemacht wie Du um evt. in der Laufenden Anwendung auf dauer Fehler zu vermeiden.

Thanks !!!

Gruss
Darkchild
Ich bin der Geist der stets verneint und das mit recht, denn alles was entsteht ist wert das es zugrunde geht, drum besser wär das nichts entstünde, so ist denn alles was ihr Sünde, Zerstörung, kurz das Böse nennt, mein eigendliches Element.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:30 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