Autor Beitrag
steve-allround
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59

Linux, Windows

BeitragVerfasst: Mo 07.11.05 12:17 
Hallo,

ich tüfftel schon seit ein paar Tagen an einem Speicher Button.
Ich erkläre mal kurz das Programm.

Habe einen Öffnen Button, der kann unter einen beliebigen Pfad eine Datei lade und dann Edit's ausfüllen.
Dann habe ich noch ein Speichern unter Button, der kann, wie der Name es schon sagt, unter wiederum einen beliebigen Pfad eine Datei speichern.

Nun suche ich eine If oder andere Funktion, womit ich einen Speichern-Button programmieren kann.

Denn: Der User soll, wenn er eine Datei geöffnet hat und Veränderungen vorgenommen hat einfach nur Speichern drücken und nicht immer Speichern unter....

Aber: Wenn der User die Daten neu mit Speichern unter abgespeichert hat, und dann wiederrum Veränderung vornimmt auch nur Speichern klicken.

Habe es schon mit Boolean und and und or probiert...

Warum geht die Funktion nicht?:
if OpenDialog1.FileName or SaveDialog1.FileName > '0' then

P.S.:

zu den Öffnen Button gehört: OpenDialog1.FileName als Pfadangabe
und zu Speichern unter: SaveDialog1.FileName.....

Vielen Dank schonmal....

Moderiert von user profile iconChristian S.: "Wichtig!!" aus Titel entfernt - jeder findet seine Frage wichtig
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mo 07.11.05 12:22 
dann nimm ein
ausblenden Delphi-Quelltext
1:
FSaveAs: Boolean;					

und in Daten neu setze es auf True und bei load auf False;

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Mo 07.11.05 12:24 
Bin mir nicht sicher, ob ich dich richtig verstehe, aber ich glaube, du könntest einfach beim Laden der Datei den Pfad in eine Variable schreiben und wenn in dieser etwas drinsteht (sprich, der User hat etwas geöffnet), dann soll das wieder auf genau den Pfad gespeichert werden.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
if Pfad = '' then
  SaveDialog.execute
else
  deinText.SaveToFile(Pfad);


(Hab ich jetzt ausm Kopf geschrieben, geht also nur so in die Richtung ;-) )
steve-allround Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59

Linux, Windows

BeitragVerfasst: Mo 07.11.05 16:22 
mh... ich komme damit nicht klar.
Ich habe euch mal mein Projekt zum anschauen abgelegt.

Es muss also nur noch der Button "Speichern" geschrieben werden. Ich finde dazu kein passenden Code...

Hab hier mal das reingeschrieben, was ich bis jetzt hinbekommen habe... es kommen aber Fehlermeldungen wegen das or und and
ausblenden volle Höhe 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:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
var
  F: TextFile;
   begin
  if Opendialog1.FileName or SaveDialog1.FileName > '0' then

  begin

  if Opendialog1.FileName and SaveDialog1.FileName > '0' then
  begin
  ShowMessage('Bitte speichern Sie über die Funktion "Speichern unter"! Wählen Sie dort Ihre Datei aus.''Fehler bei Dateiauswahl!');
   End
   else
  if OpenDialog1.FileName > '0'then
  begin
   AssignFile(F,OpenDialog1.FileName);
  Rewrite(F);

  WriteLn(F, Edit1.Text);  {Basala}
  WriteLn(F, Edit2.Text);  {Basalrate}
   WriteLn(F, Edit3.Text);  {Basalrate}
    WriteLn(F, Edit4.Text);  {Basalrate}
     WriteLn(F, Edit5.Text);  {Basalrate}
      WriteLn(F, Edit6.Text);  {Basalrate}
       WriteLn(F, Edit7.Text);  {Basalrate}
        WriteLn(F, Edit8.Text);  {Basalrate}
         WriteLn(F, Edit9.Text);  {Basalrate}
          WriteLn(F, Edit10.Text);  {Basalrate}
           WriteLn(F, Edit11.Text);  {Basalrate}
            WriteLn(F, Edit12.Text);  {Basalrate}
             WriteLn(F, Edit13.Text);  {Basalrate}
              WriteLn(F, Edit14.Text);  {Basalrate}
               WriteLn(F, Edit15.Text);  {Basalrate}
                WriteLn(F, Edit16.Text);  {Basalrate}
                 WriteLn(F, Edit17.Text);  {Basalrate}
                  WriteLn(F, Edit18.Text);  {Basalrate}
                   WriteLn(F, Edit19.Text);  {Basalrate}
                    WriteLn(F, Edit20.Text);  {Basalrate}
                     WriteLn(F, Edit21.Text);  {Basalrate}
                      WriteLn(F, Edit22.Text);  {Basalrate}
                       WriteLn(F, Edit23.Text);  {Basalrate}
                        WriteLn(F, Edit24.Text);  {Basalrate}
                         WriteLn(F, Edit25.Text);  {Basalrate}
                          WriteLn(F, Edit26.Text);  {Basalrate}
                           WriteLn(F, Edit27.Text);  {Basalrate}
                            WriteLn(F, Edit28.Text);  {Basalrate}
                             WriteLn(F, Edit29.Text);  {Basalrate}
                              WriteLn(F, Edit30.Text);  {Basalrate}
                               WriteLn(F, Edit31.Text);  {Basalrate}
                                WriteLn(F, Edit32.Text);  {Basalrate}
                                 WriteLn(F, Edit33.Text);  {Basalrate}
                                  WriteLn(F, Edit34.Text);  {Basalrate}
                                   WriteLn(F, Edit35.Text);  {Basalrate}
                                    WriteLn(F, Edit36.Text);  {Basalrate}
                                     WriteLn(F, Edit37.Text);  {Basalrate}
                                      WriteLn(F, Edit38.Text);  {Basalrate}
                                       WriteLn(F, Edit39.Text);  {Basalrate}
                                        WriteLn(F, Edit40.Text);  {Basalrate}
                                         WriteLn(F, Edit41.Text);  {Basalrate}
                                          WriteLn(F, Edit42.Text);  {Basalrate}
                                           WriteLn(F, Edit43.Text);  {Basalrate}
                                            WriteLn(F, Edit44.Text);  {Basalrate}
                                             WriteLn(F, Edit45.Text);  {Basalrate}
                                              WriteLn(F, Edit46.Text);  {Basalrate}
                                               WriteLn(F, Edit47.Text);  {Basalrate}
                                                WriteLn(F, Edit48.Text);  {Basalrate}
                                                 WriteLn(F, Edit49.Text);  {Basalrate}
                                                  WriteLn(F, Edit50.Text);  {Basalrate}
                                                   WriteLn(F, Edit51.Text);  {Basalrate}
                                                    WriteLn(F, Edit52.Text);  {Basalrate}
                                                     WriteLn(F, Edit54.Text);  {Basalrate}
                                                      WriteLn(F, Edit55.Text);  {Basalrate}
                                                       WriteLn(F, Edit56.Text);  {Basalrate}
                                                        WriteLn(F, Edit57.Text);  {Basalrate}
                                                         WriteLn(F, Edit58.Text);  {Basalrate}
                                                          WriteLn(F, Edit59.Text);  {Basalrate}
                                                             WriteLn(F, Label155.Caption);  {Basalrate}
                                                            WriteLn(F, Label156.Caption);  {Basalrate}


  CloseFile(F);
  Form1.Caption := 'Pumpentool ' + Opendialog1.FileName;
  END
  else
  begin
     AssignFile(F,SaveDialog1.FileName);
  Rewrite(F);

  WriteLn(F, Edit1.Text);  {Basala}
  WriteLn(F, Edit2.Text);  {Basalrate}
   WriteLn(F, Edit3.Text);  {Basalrate}
    WriteLn(F, Edit4.Text);  {Basalrate}
     WriteLn(F, Edit5.Text);  {Basalrate}
      WriteLn(F, Edit6.Text);  {Basalrate}
       WriteLn(F, Edit7.Text);  {Basalrate}
        WriteLn(F, Edit8.Text);  {Basalrate}
         WriteLn(F, Edit9.Text);  {Basalrate}
          WriteLn(F, Edit10.Text);  {Basalrate}
           WriteLn(F, Edit11.Text);  {Basalrate}
            WriteLn(F, Edit12.Text);  {Basalrate}
             WriteLn(F, Edit13.Text);  {Basalrate}
              WriteLn(F, Edit14.Text);  {Basalrate}
               WriteLn(F, Edit15.Text);  {Basalrate}
                WriteLn(F, Edit16.Text);  {Basalrate}
                 WriteLn(F, Edit17.Text);  {Basalrate}
                  WriteLn(F, Edit18.Text);  {Basalrate}
                   WriteLn(F, Edit19.Text);  {Basalrate}
                    WriteLn(F, Edit20.Text);  {Basalrate}
                     WriteLn(F, Edit21.Text);  {Basalrate}
                      WriteLn(F, Edit22.Text);  {Basalrate}
                       WriteLn(F, Edit23.Text);  {Basalrate}
                        WriteLn(F, Edit24.Text);  {Basalrate}
                         WriteLn(F, Edit25.Text);  {Basalrate}
                          WriteLn(F, Edit26.Text);  {Basalrate}
                           WriteLn(F, Edit27.Text);  {Basalrate}
                            WriteLn(F, Edit28.Text);  {Basalrate}
                             WriteLn(F, Edit29.Text);  {Basalrate}
                              WriteLn(F, Edit30.Text);  {Basalrate}
                               WriteLn(F, Edit31.Text);  {Basalrate}
                                WriteLn(F, Edit32.Text);  {Basalrate}
                                 WriteLn(F, Edit33.Text);  {Basalrate}
                                  WriteLn(F, Edit34.Text);  {Basalrate}
                                   WriteLn(F, Edit35.Text);  {Basalrate}
                                    WriteLn(F, Edit36.Text);  {Basalrate}
                                     WriteLn(F, Edit37.Text);  {Basalrate}
                                      WriteLn(F, Edit38.Text);  {Basalrate}
                                       WriteLn(F, Edit39.Text);  {Basalrate}
                                        WriteLn(F, Edit40.Text);  {Basalrate}
                                         WriteLn(F, Edit41.Text);  {Basalrate}
                                          WriteLn(F, Edit42.Text);  {Basalrate}
                                           WriteLn(F, Edit43.Text);  {Basalrate}
                                            WriteLn(F, Edit44.Text);  {Basalrate}
                                             WriteLn(F, Edit45.Text);  {Basalrate}
                                              WriteLn(F, Edit46.Text);  {Basalrate}
                                               WriteLn(F, Edit47.Text);  {Basalrate}
                                                WriteLn(F, Edit48.Text);  {Basalrate}
                                                 WriteLn(F, Edit49.Text);  {Basalrate}
                                                  WriteLn(F, Edit50.Text);  {Basalrate}
                                                   WriteLn(F, Edit51.Text);  {Basalrate}
                                                    WriteLn(F, Edit52.Text);  {Basalrate}
                                                     WriteLn(F, Edit54.Text);  {Basalrate}
                                                      WriteLn(F, Edit55.Text);  {Basalrate}
                                                       WriteLn(F, Edit56.Text);  {Basalrate}
                                                        WriteLn(F, Edit57.Text);  {Basalrate}
                                                         WriteLn(F, Edit58.Text);  {Basalrate}
                                                          WriteLn(F, Edit59.Text);  {Basalrate}
                                                             WriteLn(F, Label155.Caption);  {Basalrate}
                                                            WriteLn(F, Label156.Caption);  {Basalrate}


  CloseFile(F);
  Form1.Caption := 'Pumpentool ' + Savedialog1.FileName;
end;

  END

  else
 ShowMessage('Bitte erst Profil abspeichern, mit "Speichern unter...".');
  end;


Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt
steve-allround Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59

Linux, Windows

BeitragVerfasst: Mo 07.11.05 16:32 
sorry, hier die Datei!
Einloggen, um Attachments anzusehen!
Kroni
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 720

Win 98, Win ME, Win2k, Win XP
D3 Pro
BeitragVerfasst: Mo 07.11.05 16:33 
Hmmmmm mal ne andere Sache:
Wegen deinen ganzen Befehlen, die ziemlich gleich aussehen, aber für verschiedene Edits gelten: Nimm ma ne FOR Schleife und den Befehl FindComponent ;-)
Ist doch etwas eleganter^^
steve-allround Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59

Linux, Windows

BeitragVerfasst: Mo 07.11.05 16:36 
ja, aber so ein Profi bin ich noch nicht... Es muss einfach sein. Also ging das nur so bei mir... Ist zwar viel Arbeit, aber es funktioniert...
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Mo 07.11.05 16:40 
Also, durch deinen geposteten Code blicke ich momentan noch nicht allzu weit durch, fehlt mir auch gerade die Zeit zu. Ich werds mir heute abend zu Hause mal anschauen :-)
steve-allround Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59

Linux, Windows

BeitragVerfasst: Mo 07.11.05 16:50 
alles klar, Danke
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Mo 07.11.05 16:51 
ausblenden Delphi-Quelltext
1:
if Opendialog1.FileName or SaveDialog1.FileName > '0' then					


????????????????

was tust du da eigentlich? wenn du scho sowas abfragst, dann bitte so:

ausblenden Delphi-Quelltext
1:
if (opendialog1.filename = ''or (savedialog1.filename = ''then					


mal davon abgesehen, das es schwachsinn ist. setz dir ein booleansches flag, wo du dir merkst, ob der user es neu angelegt hat oder ob eine bestehende datei geöffnet wurde. wenn du nicht weist, wie du das umsetzen sollst, melde dich!

matthias

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt

_________________
Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!
steve-allround Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59

Linux, Windows

BeitragVerfasst: Mo 07.11.05 22:14 
genau, dass suche ich, und ich komme damit nicht klar...

Kannst du mir da helfen?
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Mo 07.11.05 22:31 
Also ich habe das so gelöst:

Es gibt die variable 'current_filepath' vom typ string.

Also der USer lädt die Datei. dann schreibst du den pfad in diese variable. Und wenn der USer auf schließen klickt, dann schreibst du current_filepath:=''. So kannst du immer prüfen, ob der User eine Datei neu erstellt oder eine geöffnete bearbeitet hat.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
if current_filepath='' then 
begin
//speichern der neuen Datei --> Speichern unter dialog
end
else begin
//abspeichern der vorhadnene datei
end;


Hoffe mal das ist die richtige Antwort auf deine Frage. Wenn nicht, dann musst mal etwas konkreter werden :wink:

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Mo 07.11.05 22:37 
ich hab mir gerade dein prog runtergeladen... ganz ehrlich, das ist mir zu viel durcheinander, da bräuchte ich zu lange für, mich da durchzuwühlen...

okay...
du hast als erstes nen opendialog und nen button "öffnen".

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var dateiname : string;
{...}
if opendialog1.execute then
  begin
  dateiname := opendialog1.filename; // damit packst du den namen der geöffneten datei in eine variable namens dateiname
  {mach irgendwas}
  end;
{...}


dann hast du nen savedialog und nen button "speichern unter".

ausblenden Delphi-Quelltext
1:
2:
3:
4:
if savedialog1.execute then
  begin
  {mach was} // hier schreibst du ja deine datei... ist auch richtig so...
  end;


so und nun willst du das speichern, ohne in den dialog zu gehen...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
if not dateiname = '' then         // wenn der opendialog ausgeführt wurde, steht hier ein dateiname drin. nur wenn hier
  begin                            // was drinsteht, dann macht er was...
    {erzeuge datei}
  end;


Ob du die Datei jetzt über AssignFile machen kannst, weiß ich nicht genau. ansonsten kannst du aber auch statt dessen eine stringlist erstellen

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var liste : TStringlist;
{...}
liste := TStringList.Create
try
  {schreib die zeilen rein}        //bei assign file hast du das mit writeln gemacht, bei ner stringliste machst du's mit
finally                            // liste.add(string);
  liste.free;
end;
{...}


Hoffe, jetzt kommst du weiter...
steve-allround Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59

Linux, Windows

BeitragVerfasst: Mo 07.11.05 22:55 
mh... ist erstmal zu viel für mich... muss das erstmal verarbeiten.

Gibt es denn keine einfachere Funktion zum speichern?

Es gibt ja auch Dialoge zum Speichern und öffnen....
So kompliziert darf es doch nicht sein oder?

Ich suche so was ganz einfaches wie unter Word, die Funktion "Speichern" oder "Strg + s"...


Mh... ick verzweifle bald....
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Di 08.11.05 08:45 
hab ich dir doch gesagt, wie das geht...

und jetzt noch mal ganz von vorne ... ein DIALOG ist etwas, wo zwei "dinge" mit einander kommunizieren. Sprich, dein PC fragt dich etwas (Wohin soll das nu gespeichert werden?) und du antwortest. Hast du denn bei der Funktion "Speichern (ohne unter)" bei Word jemals nen DIALOG gesehen? Nein, also, wirds wohl keinen dafür geben, sonst wärs ja wieder "Speichern UNTER"...

Also musst du's ohne machen.

Tja und dafür merkst du dir ganz zu Anfang den Pfad, der geöffnet wurde und speicherst das nachher da mit .SaveToFile wieder rein. Mit welchen Möglichkeiten du .SaveToFile anwenden kannst, da musst du mal die Suche quälen. Ich weiß halt nicht, ob's mit AssignFile und so auch geht. Ich weiß, dass es mit nem Memo, oder ner Listbox geht, aber das hilft dir bei deinem Formblatt herzlich wenig weiter, da du da ja nicht noch mehr Komponenten draufpacken kannst (ist ja schon ganz voll :) )
Und sooo schwer sind Stringlisten nun wirklich nicht... guck dich mal hier im Forum um, da hab ichs auch gelernt ;)
Matthias-K
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271

Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
BeitragVerfasst: Di 08.11.05 10:04 
user profile iconsteve-allround hat folgendes geschrieben:
mh... ist erstmal zu viel für mich... muss das erstmal verarbeiten.

Ich suche so was ganz einfaches wie unter Word, die Funktion "Speichern" oder "Strg + s"...


also ein klein wenig musst du schon lernen. immerhin willst du ja programmieren! es gibt nicht für alles fertiges zeugs, aber man kann es sich mit ein paar überlegungen selbt herleiten! die lösung wurde dir bereits 3 mal genannt!

und erklärt wurde sie ebenfalls!

ist ja nicht so, das ich dir nicht helfen will, aber ein klein wenig könntest du mitarbeiten!

matthias

Moderiert von user profile iconraziel: Quote-Tags repariert.

_________________
Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 08.11.05 10:55 
user profile iconsteve-allround hat folgendes geschrieben:
mh... ist erstmal zu viel für mich... muss das erstmal verarbeiten.

Nun, dann teile doch mal das Ergebnis dieser Verarbeitung mit, bzw. wo es beim verständnis hapert...

user profile iconsteve-allround hat folgendes geschrieben:
So kompliziert darf es doch nicht sein oder?

Das ist nicht kompliziert, du musst es nur erst lernen. Dass es am Anfang etwas seltsam aussieht glaube ich, aber später wirst du darüber lachen, wenn du es besser kannst...

user profile iconsteve-allround hat folgendes geschrieben:
Ich suche so was ganz einfaches wie unter Word, die Funktion "Speichern" oder "Strg + s"...

:rofl: Meinst du die war schon von Anfang an da??? Die wurde auch programmiert! Und genau das willst du ja gerade machen...
Und glaube nicht, dass das, was in der Speichern-Funktion von Word programmiert wurde, so einfach ist, wie das, was du hier machen willst!!!

user profile iconsteve-allround hat folgendes geschrieben:
Mh... ick verzweifle bald....

Die Frage ist nur: Woran?
Ich meine, wenn man was nicht versteht, dann fragt man ja schließlich nach! Und sagt nicht einfach: Das verstehe ich nicht, bitte macht es einfacher!
Du hast aber zum geposteten Quelltext oder zu den Hinweisen noch keine einzige Frage gestellt!!! Wenn du da was nicht verstehst, dann frag nach!

Wir helfen gerne, aber wir erwarten auch, dass sich der Fragesteller Mühe gibt und ernsthaft lernen will, wie etwas funktioniert. Und dazu gehört es, Fragen zu stellen, wenn man etwas nicht versteht...
steve-allround Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59

Linux, Windows

BeitragVerfasst: Di 08.11.05 11:52 
Hy,
sorry, mein Text vorher war nicht so gemeint, war eher nur eine Verzweiflung, dat was nich klappte... (jaenicke).

Ist klar, das ich mich da erstmal reinfitzen muss, und ich bin glücklicher Weise zu einem Ergebnis dank: Matthias-K!

hier die Lösung
ausblenden volle Höhe 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:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  F: TextFile;
   begin
  if (Opendialog1.FileName > '0'or (SaveDialog1.FileName > '0'then

  begin

  if (Opendialog1.FileName > '0'and (SaveDialog1.FileName > '0'then
  begin
  ShowMessage('Bitte speichern Sie über die Funktion "Speichern unter"! Wählen Sie dort Ihre Datei aus.');
   End
   else
  if OpenDialog1.FileName > '0' then
  begin
   AssignFile(F,OpenDialog1.FileName);
  Rewrite(F);

  WriteLn(F, Edit1.Text);  {Basala}
  
  CloseFile(F);
  Form1.Caption := 'Pumpentool ' + Opendialog1.FileName;
  END
  else
  if SaveDialog1.FileName > '0' then
  begin
     AssignFile(F,SaveDialog1.FileName);
  Rewrite(F);

  WriteLn(F, Edit1.Text);  {Basala}
 
  CloseFile(F);
  Form1.Caption := 'Pumpentool ' + Savedialog1.FileName;
END
else
ShowMessage('Bitte öffnen Sie zuerst eine Datei oder speichern Ihre eingegebenen Daten mit "Speichern unter..." ab!')

  END

  else
 ShowMessage('Bitte erst Profil abspeichern, mit "Speichern unter...".');
  end;


Klappt wunderbar....

P.S. Das ist ja ein ganz schönes Ding, das so ein "eigentlicher" Button --> Speichern so kompliziert sein kann....

Vielen Dank nochmal...

Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 08.11.05 12:54 
Na dann ist ja gut, wenn alles klappt... :wink:

Nur noch eine Anmerkung (die auch weiter oben schon angesprochen wurde):
Wenn du testen möchtest, ob ein String (in diesem Fall OpenDialog1.FileName bzw. SaveDialog1.FileName) leer ist oder nicht, dann solltest du lieber
ausblenden Delphi-Quelltext
1:
(OpenDialog1.FileName = '')					

(Ist der FileName leer, d.h. gleich dem leeren String?)
bzw.
(OpenDialog1.FileName <> '') //Was passiert hier mit den Delphi-Tags???
(Ist der FileName nicht leer, d.h. ungleich dem leeren String?)
benutzen!

In diesem Fall geht es auch so, aber sauber programmiert ist das nicht! Und es kann Fälle geben, in denen das nicht klappt! :!:

Ich weiß: Am Anfang denkt man immer, das mach ich ja später dann besser, aber leider ist es so nicht...
Was man sich am Anfang angewöhnt, behält man meist auch bei... :wink:
steve-allround Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59

Linux, Windows

BeitragVerfasst: Do 10.11.05 11:51 
Ja, das mit dem sauberen programmieren weis ich. Ich ertappe mich manschmal selber.
In dem Moment, wo man noch drinsteht beim programmieren, kennt man sich in den Chaos aus, aber wenn ich nach einer langen Zeit wieder mal nachschauen will, seh ick nich mehr durch.

Aber ich habe leider das richtige Programmieren nie gelernt... und bin leider so ein Chaot.... Vielleicht änder ich mich mal, wenn ich noch größere Programme schreiben will....