Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Save-Dialog (https://www.delphipraxis.net/39894-save-dialog.html)

BadenPower 12. Mär 2015 17:36

AW: Save-Dialog
 
Zitat:

Zitat von Erwin Pälzig (Beitrag 1293263)
Also fakt ist, im eigentlichen Programm, ist ebenfalls
Delphi-Quellcode:
type
SaveDialog1 :TSaveDialog;
initialisiert, nur es kommt zu folgende Fehlermeldung:
Unit17.pas(93): W1036 Variable 'SaveDialog1' ist möglicherweise nicht initialisiert worden

Das ist "deklariert" und nicht "initialisiert";

Erwin Pälzig 12. Mär 2015 17:47

AW: Save-Dialog
 
Ok, Danke soweit.

Also habe nun eine einfachere Variante gefunden.

Delphi-Quellcode:
begin
  assignfile(textis,'textis.txt')
  rewrite(textis);
  ...
Falls die oberen Dialogausschnitte als nicht brauchbar escheinen, können sehr gerne die Moderatoren die letzteren Abschnitte löschen.
Danke für eure Hilfe.

BadenPower 12. Mär 2015 17:58

AW: Save-Dialog
 
Zitat:

Zitat von Erwin Pälzig (Beitrag 1293274)
Also habe nun eine einfachere Variante gefunden.

Jetzt hast Du Dir aber die Möglichkeit genommen den Speicherort und die Datei auszuwählen.

Du musst doch nur die Komponente TSaveDialog auf Dein Formular legen und vorher die unnötigen "SaveDialog1"-Variablen entfernen.


Poste noch einmal die ganze Unit, damit wir Dir zeigen können, was Du falsch gemacht hast.

himitsu 12. Mär 2015 18:06

AW: Save-Dialog
 
Zitat:

Zitat von BadenPower (Beitrag 1293277)
Jetzt hast Du Dir aber die Möglichkeit genommen den Speicherort und die Datei auszuwählen.

Noch schlimmer.

Relative Pfade sollte man grundsätzlich niemals verwenden, denn wo soll denn diese Datei denn nun liegen?
Und nein, es ist nicht das Programmverzeichnis ... wenn doch, dann ist es nur "zufällig" heute mal so.

Erwin Pälzig 13. Mär 2015 23:25

AW: Save-Dialog
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von BadenPower (Beitrag 1293277)
Zitat:

Zitat von Erwin Pälzig (Beitrag 1293274)
Also habe nun eine einfachere Variante gefunden.

Jetzt hast Du Dir aber die Möglichkeit genommen den Speicherort und die Datei auszuwählen.

Du musst doch nur die Komponente TSaveDialog auf Dein Formular legen und vorher die unnötigen "SaveDialog1"-Variablen entfernen.


Poste noch einmal die ganze Unit, damit wir Dir zeigen können, was Du falsch gemacht hast.

Hallo BadenPower,
Danke für deinen Hinweis.

Delphi-Quellcode:
unit Unit17;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;//Dialogs;

type
    TForm17 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    SaveDialog1: TSaveDialog;
    procedure Button1Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure Edit5Change(Sender: TObject);
    procedure Edit4Change(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure Edit6Change(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form17: TForm17;
  ts,Te,ER,Re,th, Di: integer;

implementation

{$R *.dfm}

procedure TForm17.Edit1Change(Sender: TObject);
begin
  Edit1.Text:=IntToStr(ts);
end;

procedure TForm17.Edit2Change(Sender: TObject);
begin
 Edit2.Text:=IntToStr(Te);
end;

procedure TForm17.Edit3Change(Sender: TObject);
begin
 Edit3.Text:=IntToStr(ER);
end;

procedure TForm17.Edit4Change(Sender: TObject);
begin
 Edit4.Text:=IntToStr(RE);
end;

procedure TForm17.Edit5Change(Sender: TObject);
begin
 Edit5.Text:=IntToStr(th);
end;

procedure TForm17.Edit6Change(Sender: TObject);
begin
 Edit6.Text:=IntToStr(Di);
end;


{******** Export Data ********}
procedure TForm17.Button1Click(Sender: TObject);
var
 textis : textfile;  //  -> (textis.txt existiert im Ornder in dem Programm ist)
 savepath : string;
begin
 if SaveDialog1.execute=true then
  begin
   //assignfile(textis,'textis.txt');
   assignfile(textis,savepath);
   rewrite(textis);
   writeln(textis, 'Ts(s) WT(C) ERate(g/m2s) RS(%) CThick(m) Dif(m2/s) ');
   write(textis, ts);
   write(textis,' ');
   write(textis,Te);
   write(textis,' ');
   write(textis,ER);
   write(textis,' ');
   write(textis,RE);
   write(textis,' ');
   write(textis,th);
   write(textis,' ');
   write(textis,Di);
   write(textis,#13#10);
  end;
  closefile(textis);
end;
end.
Nun kann ich den Speicherort festlegen und Datei auswählen, jedoch kommt es zu einer Fehlermeldung. (Siehe Anhang)
Vielen dank für deine Hilfe.

Grüße

Sir Rufo 13. Mär 2015 23:34

AW: Save-Dialog
 
Ist dein Internet kaputt oder warum suchst du nicht mal nach der Fehlernummer? Dazu gibt es sogar mind. einen Beitrag hier im Forum.

Und der Debugger würde dir hier auch helfen ... und eine Angabe, an welcher Stelle der Fehler kommt wäre auch sehr nett gewesen.

Dalai 13. Mär 2015 23:45

AW: Save-Dialog
 
Ich empfehle dringend, mal mit dem Debugger durch den Code zu steppen (F7 und F8) und dabei ein Auge auf die Inhalte der Variablen zu haben. Dann fällt auch gleich auf, dass die ersten Zeilen der Methode Button1Click so niemals funktionieren können.

MfG Dalai

p80286 14. Mär 2015 09:08

AW: Save-Dialog
 
Nun sagt ihm schon, daß er mit
Delphi-Quellcode:
savepath:=savedialog1.filename;
weiter kommt.

Wie wenn nicht so, soll denn der ausgewählte Dateiname an
Delphi-Quellcode:
assign
weiter gereicht werden?
(multichoice und filenamelist ignorieren wir jetzt mal)

übrigens könntest Du das auch etwas verkürzen
Delphi-Quellcode:
textis : textfile; // -> (textis.txt existiert im Ornder in dem Programm ist)
  savefile : string;
  satz : string;
begin
  if SaveDialog1.execute=true then
  begin
    savefile:=Savedialog1.Filename;
    assignfile(textis,savefile);
    rewrite(textis);
    writeln(textis, 'Ts(s) WT(C) ERate(g/m2s) RS(%) CThick(m) Dif(m2/s) ');
    satz:=inttostr(ts)+' '+inttostr(te)+' '+inttostr(er)+' '+inttostr(re)+' '+inttostr(th)+' '+inttostr(di);
    writeln(textis,satz);
    closefile(textis);
  end;
oder noch knapper:
Delphi-Quellcode:
    assignfile(textis,savefile);
    rewrite(textis);
    writeln(textis, 'Ts(s) WT(C) ERate(g/m2s) RS(%) CThick(m) Dif(m2/s) ');
    writeln(format('%d %d %d %d %d %d',[ts,te,er,re,th,di]));
    closefile(textis);
Das ist übrigens kein Grund sich nicht mit dem Debugger auseinander zu setzen.

Gruß
K-H

himitsu 14. Mär 2015 12:15

AW: Save-Dialog
 
Delphi-Quellcode:
writeln(textis, format(...
, sonst heult gleich wieder jemand.

p80286 15. Mär 2015 00:07

AW: Save-Dialog
 
:oops:
geschlampt

K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 Uhr.
Seite 3 von 3     123   

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