Delphi;eingegebene Werte in Editfelder Speichern und Laden

google80

Grünschnabel
Hi @ all,

ich und zwei weitere Kommilitonen müssen eine Semesteraufgabe bewältigen. Nun haben wir das Problem, das wir nicht wissen, wie wir eingegebene Werte in Editfeldern als solche speichern und auch wieder laden können. Es geht nicht darum, das ganze Projekt zu speichern und wieder zu laden, sondern nur die einzelnen Werte in den Editfeldern.

Werden Zahlen in den Editfeldern eingegeben, dann sollte man sie speichern können und später, wenn man sie nochmals benötigt, wieder laden können.

Wir wären Euch unendlich dankbar, wenn Ihr uns eine Lösung anbieten könntet.

Vielen Dank im vorraus.

Björn

Quellcode bisher:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Menus, ExtCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Laengenedit: TEdit;
Breiteedit: TEdit;
Hoehenedit: TEdit;
Laengenedit2: TEdit;
Breiteedit2: TEdit;
MainMenu1: TMainMenu;
Datei1: TMenuItem;
N1: TMenuItem;
ffnen1: TMenuItem;
N2: TMenuItem;
Speichern1: TMenuItem;
N3: TMenuItem;
Beenden1: TMenuItem;
Label12: TLabel;
Button1: TButton;
Materialbox: TRadioGroup;
Zustandsbox: TRadioGroup;
Zurrmethodenbox: TRadioGroup;
EditReibwert: TEdit;
LabelGewicht: TLabel;
EditGewicht: TEdit;
Label8: TLabel;
Label9: TLabel;
Anzahl: TEdit;
Label10: TLabel;
PaintBox1: TPaintBox;
Label11: TLabel;
Label13: TLabel;
procedure OncloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure OnReibwertClick(Sender: TObject);
procedure OnBerechnenClick(Sender: TObject);
procedure Werte;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;
G, R, Ri, Ziv, Zil, H, L, B, f, fq, n, Bf, Lf,
Reibwert, Li, Lib, Lid, Lir, Lisl, Liq, Lil, Zi, Zif, Ziq : single;

{ Die von uns festgelegten Variablen werden zur Berechnung der Vorspannkraft
benötigt ( sie sind Elemente der Formeln ). Den Variablentyp "single"
haben wir gewählt, damit auch Kommazahlen in der Berechnung berücksichtigt
werden können. }

implementation

{$R *.DFM}

procedure TForm1.OncloseClick(Sender: TObject);
begin
Close;

// Mit dieser Funktion wird das Programm beendet.
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
Materialbox.Items.Add('Holz auf Holz');
Materialbox.Items.Add('Metall auf Holz');
Materialbox.Items.Add('Metall auf Metall');
Zustandsbox.Items.Add('trocken');
Zustandsbox.Items.Add('fettig');
Zustandsbox.Items.Add('nass');
Zurrmethodenbox.Items.Add('Niederzurren');
Zurrmethodenbox.Items.Add('horizontales Zurren');
Zurrmethodenbox.Items.Add('Schrägzurren');
Zurrmethodenbox.Items.Add('Diagonalzurren');
Zurrmethodenbox.Items.Add('Schrägzurren in Querrichtung');

end;
{ Namenszuweisung der Radiogroup/Button }

procedure TForm1.OnReibwertClick(Sender: TObject);
begin

case Materialbox.ItemIndex of
0: case Zustandsbox.ItemIndex of
0 : EditReibwert.Text :=' 0,20';
1 : EditReibwert.Text :=' 0,20';
2 : EditReibwert.Text :=' 0,05';
end;
1: case Zustandsbox.ItemIndex of
0 : EditReibwert.Text :=' 0,20';
1 : EditReibwert.Text :=' 0,20';
2 : EditReibwert.Text :=' 0,02';
end;
2: case Zustandsbox.ItemIndex of
0 : EditReibwert.Text :=' 0,10';
1 : EditReibwert.Text :=' 0,10';
2 : EditReibwert.Text :=' 0,01';
end;

{ An dieser Stelle werden mit der "case of " Funktion zwei Radiogroups
verknüpft. Beim ' Anklicken ' der beiden Radiogroups werden auf dem
EditReibwert.Text der dazugehörige Mindestreibwert angezeigt. }
end;

end;

procedure TForm1.Werte;
begin
Reibwert := strtofloat (EditReibwert.Text);
L := strtofloat (Laengenedit.Text);
G := strtofloat (EditGewicht.Text);
H := strtofloat (Hoehenedit.Text);
B := strtofloat (Breiteedit.Text);
Bf := strtofloat (Breiteedit2.Text);
Lf := strtofloat (Laengenedit2.Text);
n := strtofloat (Anzahl.Text);

{ Diese Funktion wandelt den String der Editfelder in die zugewiesenen
Variablen um, damit das Programm mit den Zahlen rechnen kann. }
end;

procedure TForm1.OnBerechnenClick(Sender: TObject);
begin
Werte;
Liq := (BF-B)/2;
Li := sqrt( sqr(H)+ sqr(Liq));
Lil := (Lf-F)/2;
Lib := sqrt ( sqr(Liq) + sqr (Lil));
Lid := sqrt ( sqr(H) + sqr(Lil) + sqr(Liq));
Lisl:= sqrt ( sqr(H) + sqr(Lil));

{ Mit dem Befehl 'Werte' sagen wir, dass das Programm die Angaben der
Editfelder in den jetzigen Rechnugen verwenden soll. Das Programm
rechnet die oben aufgeführten Werte im Hintergrund aus, sie werden dem
Benutzer nicht angezeigt.}

case Zurrmethodenbox.ItemIndex of

0: Zi:= G*Li*((0.8/Reibwert)-1)/(2*n*H);
end;
case Zurrmethodenbox.ItemIndex of

1: Zi:= G*Lib*(0.5-Reibwert)/(n*Liq);
end;
case Zurrmethodenbox.ItemIndex of

1: Zif:= G*Lib*(0.8-Reibwert)/(n*Lil);
end;
case Zurrmethodenbox.ItemIndex of

2: Zi := G*Li*(0.5-Reibwert)/(n*(Reibwert*H+Liq));
end;
case Zurrmethodenbox.ItemIndex of

2: Zif := G*Li*(0.8-Reibwert)/(n*(Reibwert*H+Lil));
end;
case Zurrmethodenbox.ItemIndex of

3: Zi := G*Lid*(0.5-Reibwert)/(n*(Reibwert*H+Lil));
end;
case Zurrmethodenbox.ItemIndex of

3: Zif := G*Lid*(0.8-Reibwert)/(n*(Reibwert*H+Lil));
end;
case Zurrmethodenbox.ItemIndex of

4: Zi:= G*Lisl*(0.8-Reibwert)/(n*(Reibwert*H+Lil));
end;
Label8.Caption := floattostr (Zi);
Label9.Caption := floattostr (Zif);
end;

{An dieser Stelle werden alle Kombinationen angenommen, lediglich die
Kombination, die auch ausgewählt wird, dient dann zur Berechnung
und das Ergebnis wird dann den beiden Ergebnisfeldern zugewiesen.}

end.
 
Zuletzt bearbeitet:
Wenn ich richtig verstanden habe, sucht Ihr einen Weg, mehrere Werte (die in Edit-Feldern stehen) zu speichern und wieder zu laden, oder?

Also folgender Weg ist recht einfach:
1. Legt euch eine Komponente TMemo auf euer Form und macht dies unsichtbar
2. Fügt einen Button zum speichern und einem zum Laden der Werte hinzu
3. sorgt beim Speichern dafür, dass die EditFelder mit jeweils
Memo1.Add('Wert1=" + Edit1.text); etc. in das Memofeld übertragen werden
Ruft dann Memo1.SaveToFile( Dateiname) auf
4. sorgt beim Laden dafür, dass nach
Memo1.LoadFromFile ( Dateiname );
die Einzelnen Werte wieder geschrieben werden etwa so
Edit1.Text:=Memo1.Lines['Wert1]; ....
5. Verwendet DialogKomponenten zum Speichern und laden


Macht mal eure Versuche.

Gruß
vop
 
hi vop,

hast uns sehr geholfen, vielen dank. klappt alles so, wie wir uns das vorgestellt haben. kennst du vielleicht auch rein zufällig eine gute page, auf der das zeichnen in delphi erklärt wird? wir müssen nämlich ein diagramm zu den berechneten werten zeichnen. haben mit Image angefangen und wissen noch nicht sorecht, wie wir mit verschiedenen befehlen dort grafiken anzeigen lassen können. das ist auch unser letztes problem, dann haben wir es geschafft ;).

gruß
google80
 
Sorry, nicht aus dem Stehgreif. (Habe gerade kein Delphi zur Hand)

Es gibt (je nach Delphi-version) auch nette Komponenten, mit denen man Balken-, Linien- und Tortendiagramme etc. erstellen kann (falls ih sowas meint).
Die sind als Thirdparty-Tools dabei.
Müßt mal ein bissl googlen.

Ansonsten kann man natürlich in den sogenannten Canvas (TCanvas Delphi-Hilfe) eines Images bspw. auch mit rudimentären Zeichenfunktionen Punkte Linien etc. zeichnen.

Welche Delphi-Version verwendet ihr?
Schaut mal in das Komponenten-Register, ob Ihr da irgendwelche Diagramm-Komponenten findet.

vop
 
wir nutzen delphi 7 und kommen schritt für schritt weiter. bis zum abgabetermin ist es zwar nicht mehr lange, aber das sollte zu schaffen sein ;-]. dank dir nochmals.

google80
 
Zurück