Autor Beitrag
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Do 09.09.10 14:59 
Dein Problem scheint mir eher von der Ablaufsteuerung des Codes bzw. dessen Verständnis zu kommen:

also, bei anzeigen deiner Form benutzt du den Opendialog (oder eben nur per Buttonklick, wenn du nicht immer eine Datei laden willst). Dann läuft das Programm und du kannst alles andere machen (z.b. eben die messungen, Pumpennameneingabe, etc).
bei jeden Messungen-click machst du einen eintrag in deine Stringliste (TStringList oder Memo, wie du magst)
ausblenden Delphi-Quelltext
1:
Stringliste.add(DeinEintragAlsString);					

und wenn du speichern klickst, machst du dein saveToFile (z.b. unter verwendung von TSaveDialog).

Mach dir mal klar, wie du deine Aufgabe zeitlich abarbeitest, evtl. wirds dann einfacher verständlich für dich:
Beispiel:
1. Formular öffnen
2. (evtl.) alte Messungen laden ('automatisch oder per Button, Opendialog nutzen)
3. Daten erfassen und zwischenspeichern (Pumpenname in Edit, Messung in Stringlist, etc).
4. Speichern (Savedialog nutzen)
5. Formular schliessen

diese punkte kann man natürlich noch weiter unterteilen (z.b. 2a alte Messungen anzeigen), ich wollte dir nur einen denkanstoss geben

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Do 09.09.10 15:00 
Dann erstell doch 3 Buttons:

1) 'Neu' -> Liste leeren
2) 'Messen' -> Liste füllen
3) 'Speichern' -> Liste speichern

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
Critter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 328
Erhaltene Danke: 3

Windows 7
Delphi 7 Pro.
BeitragVerfasst: Do 09.09.10 17:34 
Hi,

mal eine ganz verwegene Idee. Du könntest deine Daten auch ganz klassisch "Pascal-Like" ohne die Verwendung irgendwelcher Objekte Speichern, dann musst du auch nichts vorher Laden sondern hängst einfach so an.

Eine Entsprechende Funktion könnte so aussehen:

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:
function TFormPPS.WriteData(aFileName: String): Boolean;
var
  f : TextFile; // Deine TextDatei
begin
  Result := False;
  // Zuerst die Datei öffnen
  AssignFile(f, aFileName); // Dateivariable mit Dateinamen verknüpfen
  if FileExists(aFileName) then
    Append(f) // Datei im "anhängen Modus" öffnen
  else
    Rewrite(f); // Datei im überschreiben Modus öffnen, erstellt die Datei wenn noch nicht existent
  try
    // Und den Inhalt schreiben
    WriteLn(f, '...........'); // Eingabe in Edit
    WriteLn(f, '...........'); // Eingabe in Edit
    WriteLn(f, '...........'); // Eingabe in Edit
    WriteLn(f, '...........'); // Eingabe in Edit
    WriteLn(f, '...........'); // Eingabe in Edit
    WriteLn(f, '...........'); // Eingabe in Edit
    WriteLn(f, '...........'); // Eingabe in Edit
    WriteLn(f, '...........'); // Eingabe in Edit
    WriteLn(f, '------------------------------------------------');
    WriteLn(f, '..........................'); // Beschreibungen für Spalten
    WriteLn(f, PanelMenge.Caption+chr(9)+PanelTemp.Caption+chr(9)+PanelDruck.Caption+chr(9)+PanelSaug.Caption);
    Result := True;
  finally
    CloseFile(f); // Wichtig, die Datei wieder schließen.
  end;
end;


Das ganze ist zwar ziemlich "oldfashoned" sollte aber genau das machen was du willst und auch noch resourcenschonender sein als das ganze Meno-/Stringlist-Zeug. Auch ist es sicher nicht schlecht, für deinen Lernfortschritt wenn du mal an Basics geführt wirst ;). Falls du dieses Prinzip verwenden möchtest habe ich auch eine nette Hausaufgabe für dich ;). Erweitere die Fehlerbehandlung so, das nicht nur ein False (= Irgendwas hat nicht geklappt) dabei heraus kommt, sondern eine Anständige Fehlermeldung, die hinweise darauf gibt, was denn nicht geklappt hat. Zwei Stichworte für unterschiedliche Wege das zu erreichen lauten IORESULT und Exceptions. Ist beides recht interessant finde ich ;). Als weitere Alternative zur Dateiverarbeitung seien hier auch die schon weiter ober erwähnten Streams betont. Auch da lohnt es sich, sich mal ein zu lesen.

critter

_________________
Diejenigen, die grundlegende Freiheiten aufgeben, um ein wenig mehr vorrübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit.
(Benjamin Franklin;"The Papers of Benjamin Franklin", Vol. 6, Apr. 1, 1755, through Sep. 30, 1756)