tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
6200
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    google80 google80 ist offline Grünschnabel
    Registriert seit
    Sep 2005
    Beiträge
    3
    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.
    Geändert von google80 (28.09.05 um 00:04 Uhr)
     

  2. #2
    vop vop ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Beiträge
    676
    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
     

  3. #3
    google80 google80 ist offline Grünschnabel
    Registriert seit
    Sep 2005
    Beiträge
    3
    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
     

  4. #4
    vop vop ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Beiträge
    676
    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
     

  5. #5
    google80 google80 ist offline Grünschnabel
    Registriert seit
    Sep 2005
    Beiträge
    3
    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
     

Ähnliche Themen

  1. NumericUpDown-Werte speichern und wieder laden beim Öffnen
    Von Tim2107 im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 09.07.10, 16:58
  2. Antworten: 5
    Letzter Beitrag: 31.12.04, 16:53
  3. Eingegebene Werte prüfen
    Von ParaEve im Forum Visual Basic 6.0
    Antworten: 6
    Letzter Beitrag: 20.04.04, 14:35
  4. Wie kann ich Werte Speichern und Laden?
    Von Hinky im Forum Delphi, Kylix, Pascal
    Antworten: 5
    Letzter Beitrag: 12.03.04, 13:32
  5. Delphi Editfelder in Datei schreiben,Lesen
    Von znysk im Forum Delphi, Kylix, Pascal
    Antworten: 15
    Letzter Beitrag: 10.10.02, 11:30