AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Daten speichern

Ein Thema von LukeGee · begonnen am 4. Mär 2006 · letzter Beitrag vom 11. Jan 2007
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von konda
konda

Registriert seit: 20. Dez 2005
253 Beiträge
 
Turbo Delphi für Win32
 
#21

Re: Daten speichern

  Alt 5. Mär 2006, 17:50
Du kannst nicht einfach die Funktion abschreiben. Du musst schon Werte einsetzen. Hier der richtige Code:
Delphi-Quellcode:
Ini := TIniFile.Create('data.ini');
Ini.WriteBool('Hier beliebigen Namen einer Sektion angeben', 'Hier einen beliebigen Namen für den Eintrag angeben', checkbox1.checked);
Ini.Free;
  Mit Zitat antworten Zitat
LukeGee

Registriert seit: 20. Feb 2006
89 Beiträge
 
Delphi 2005 Personal
 
#22

Re: Daten speichern

  Alt 5. Mär 2006, 17:52
aha, na das muss man mir sagen, ich bin schließlich noch anfänger

edit: naja, beim compilieren kommt jetzt kein fehler, aber gehn tuts trotzdem nicht
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#23

Re: Daten speichern

  Alt 5. Mär 2006, 18:34
Poste mal deinen gesamten code bitte
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
LukeGee

Registriert seit: 20. Feb 2006
89 Beiträge
 
Delphi 2005 Personal
 
#24

Re: Daten speichern

  Alt 5. Mär 2006, 18:46
hier:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, XPMan, ComCtrls, IniFiles, Buttons, ImgList, ToolWin,
  ExtCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    StatusBar1: TStatusBar;
    XPManifest1: TXPManifest;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Edit11: TEdit;
    Edit12: TEdit;
    Edit13: TEdit;
    Edit14: TEdit;
    Edit15: TEdit;
    Edit16: TEdit;
    Edit17: TEdit;
    Edit18: TEdit;
    Label22: TLabel;
    Edit19: TEdit;
    ToolBar1: TToolBar;
    ImageList1: TImageList;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    Label23: TLabel;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure CheckBox4Click(Sender: TObject);
    procedure CheckBox3Click(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var Ini:TIniFile;
  Form1: TForm1;

implementation

uses ABOUT;

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
begin
AboutBox.ShowModal;
end;

procedure TForm1.ToolButton1Click(Sender: TObject);
begin
Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit1-Feld', Edit1.Text);
Ini.Free;

Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit2-Feld', Edit2.Text);
Ini.Free;

Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit3-Feld', Edit3.Text);
Ini.Free;

Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit4-Feld', Edit4.Text);
Ini.Free;

Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit5-Feld', Edit5.Text);
Ini.Free;



Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit6-Feld', Edit6.Text);
Ini.Free;

Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit7-Feld', Edit7.Text);
Ini.Free;

Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit8-Feld', Edit8.Text);
Ini.Free;

Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit9-Feld', Edit9.Text);
Ini.Free;

Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit10-Feld', Edit10.Text);
Ini.Free;

Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit11-Feld', Edit11.Text);
Ini.Free;



Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit12-Feld', Edit12.Text);
Ini.Free;

Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit13-Feld', Edit13.Text);
Ini.Free;

Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit14-Feld', Edit14.Text);
Ini.Free;

Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit15-Feld', Edit15.Text);
Ini.Free;

Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit16-Feld', Edit16.Text);
Ini.Free;

Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit17-Feld', Edit17.Text);
Ini.Free;

Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit18-Feld', Edit18.Text);
Ini.Free;



Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit19-Feld', Edit19.Text);
Ini.Free;
end;

procedure TForm1.ToolButton2Click(Sender: TObject);
begin
Ini := TIniFile.Create('data.ini');
Edit1.Text := Ini.ReadString('Daten', 'Edit1-Feld', 'Default-Angabe');

Ini := TIniFile.Create('data.ini');
Edit2.Text := Ini.ReadString('Daten', 'Edit2-Feld', 'Default-Angabe');

Ini := TIniFile.Create('data.ini');
Edit3.Text := Ini.ReadString('Daten', 'Edit3-Feld', 'Default-Angabe');

Ini := TIniFile.Create('data.ini');
Edit4.Text := Ini.ReadString('Daten', 'Edit4-Feld', 'Default-Angabe');

Ini := TIniFile.Create('data.ini');
Edit5.Text := Ini.ReadString('Daten', 'Edit5-Feld', 'Default-Angabe');
Ini.Free;



Ini := TIniFile.Create('data.ini');
Edit6.Text := Ini.ReadString('Daten', 'Edit6-Feld', 'Default-Angabe');

Ini := TIniFile.Create('data.ini');
Edit7.Text := Ini.ReadString('Daten', 'Edit7-Feld', 'Default-Angabe');

Ini := TIniFile.Create('data.ini');
Edit8.Text := Ini.ReadString('Daten', 'Edit8-Feld', 'Default-Angabe');

Ini := TIniFile.Create('data.ini');
Edit9.Text := Ini.ReadString('Daten', 'Edit9-Feld', 'Default-Angabe');

Ini := TIniFile.Create('data.ini');
Edit10.Text := Ini.ReadString('Daten', 'Edit10-Feld', 'Default-Angabe');

Ini := TIniFile.Create('data.ini');
Edit11.Text := Ini.ReadString('Daten', 'Edit11-Feld', 'Default-Angabe');



Ini := TIniFile.Create('data.ini');
Edit12.Text := Ini.ReadString('Daten', 'Edit12-Feld', 'Default-Angabe');

Ini := TIniFile.Create('data.ini');
Edit13.Text := Ini.ReadString('Daten', 'Edit13-Feld', 'Default-Angabe');

Ini := TIniFile.Create('data.ini');
Edit14.Text := Ini.ReadString('Daten', 'Edit14-Feld', 'Default-Angabe');

Ini := TIniFile.Create('data.ini');
Edit15.Text := Ini.ReadString('Daten', 'Edit15-Feld', 'Default-Angabe');

Ini := TIniFile.Create('data.ini');
Edit16.Text := Ini.ReadString('Daten', 'Edit16-Feld', 'Default-Angabe');

Ini := TIniFile.Create('data.ini');
Edit17.Text := Ini.ReadString('Daten', 'Edit17-Feld', 'Default-Angabe');

Ini := TIniFile.Create('data.ini');
Edit18.Text := Ini.ReadString('Daten', 'Edit18-Feld', 'Default-Angabe');



Ini := TIniFile.Create('data.ini');
Edit19.Text := Ini.ReadString('Daten', 'Edit19-Feld', 'Default-Angabe');
end;

procedure TForm1.ToolButton3Click(Sender: TObject);
begin
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';
Edit10.Text:='';
Edit11.Text:='';
Edit12.Text:='';
Edit13.Text:='';
Edit14.Text:='';
Edit15.Text:='';
Edit16.Text:='';
Edit17.Text:='';
Edit18.Text:='';
Edit19.Text:='';
end;

procedure TForm1.ToolButton4Click(Sender: TObject);
begin
AboutBox.ShowModal;
end;

procedure TForm1.ToolButton5Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if (CheckBox1.Checked=true) then Edit1.Enabled:=true;
if (CheckBox1.Checked=false) then Edit1.Enabled:=false;
end;

procedure TForm1.CheckBox2Click(Sender: TObject);
begin
if (CheckBox2.Checked=true) then Edit5.Enabled:=true;
if (CheckBox2.Checked=false) then Edit5.Enabled:=false;
end;

procedure TForm1.CheckBox3Click(Sender: TObject);
begin
if (CheckBox3.Checked=true) then Edit6.Enabled:=true;
if (CheckBox3.Checked=false) then Edit6.Enabled:=false;

if (CheckBox3.Checked=true) then Edit7.Enabled:=true;
if (CheckBox3.Checked=false) then Edit7.Enabled:=false;

if (CheckBox3.Checked=true) then Edit8.Enabled:=true;
if (CheckBox3.Checked=false) then Edit8.Enabled:=false;

if (CheckBox3.Checked=true) then Edit9.Enabled:=true;
if (CheckBox3.Checked=false) then Edit9.Enabled:=false;

if (CheckBox3.Checked=true) then Edit10.Enabled:=true;
if (CheckBox3.Checked=false) then Edit10.Enabled:=false;

if (CheckBox3.Checked=true) then Edit11.Enabled:=true;
if (CheckBox3.Checked=false) then Edit11.Enabled:=false;
end;

procedure TForm1.CheckBox4Click(Sender: TObject);
begin
if (CheckBox4.Checked=true) then Edit12.Enabled:=true;
if (CheckBox4.Checked=false) then Edit12.Enabled:=false;

if (CheckBox4.Checked=true) then Edit13.Enabled:=true;
if (CheckBox4.Checked=false) then Edit13.Enabled:=false;

if (CheckBox4.Checked=true) then Edit14.Enabled:=true;
if (CheckBox4.Checked=false) then Edit14.Enabled:=false;

if (CheckBox4.Checked=true) then Edit15.Enabled:=true;
if (CheckBox4.Checked=false) then Edit15.Enabled:=false;

if (CheckBox4.Checked=true) then Edit16.Enabled:=true;
if (CheckBox4.Checked=false) then Edit16.Enabled:=false;

if (CheckBox4.Checked=true) then Edit17.Enabled:=true;
if (CheckBox4.Checked=false) then Edit17.Enabled:=false;

if (CheckBox4.Checked=true) then Edit18.Enabled:=true;
if (CheckBox4.Checked=false) then Edit18.Enabled:=false;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von konda
konda

Registriert seit: 20. Dez 2005
253 Beiträge
 
Turbo Delphi für Win32
 
#25

Re: Daten speichern

  Alt 5. Mär 2006, 18:51
Und wo genau leigt jetzt der Fehler?
  Mit Zitat antworten Zitat
LukeGee

Registriert seit: 20. Feb 2006
89 Beiträge
 
Delphi 2005 Personal
 
#26

Re: Daten speichern

  Alt 5. Mär 2006, 18:54
oh, in dem quelltext ist das mit dem checked wert der checkboxes ned drin, aber den quelltext von denen hab ich gemacht, wie gesagt wurde. es wird auch compiliert, aber wenn ich z.b. die checkbox anklicke und es speichere, neustarte und wieder öffne is das teil nicht wieder angeklickt, so wies gespeichert wurde.
  Mit Zitat antworten Zitat
Benutzerbild von konda
konda

Registriert seit: 20. Dez 2005
253 Beiträge
 
Turbo Delphi für Win32
 
#27

Re: Daten speichern

  Alt 5. Mär 2006, 19:00
Zitat von LukeGee:
oh, in dem quelltext ist das mit dem checked wert der checkboxes ned drin, aber den quelltext von denen hab ich gemacht, wie gesagt wurde. es wird auch compiliert, aber wenn ich z.b. die checkbox anklicke und es speichere, neustarte und wieder öffne is das teil nicht wieder angeklickt, so wies gespeichert wurde.
Ja klar ist die Checkbox nicht angeklickt. Du speicherst den Wert ja auch nicht ab.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#28

Re: Daten speichern

  Alt 5. Mär 2006, 19:05
Hallo Lukas,

schau dir mal die Änderungen an, die ich an deinem Code gemacht habe:

Delphi-Quellcode:
unit Unit1;

type
  TForm1 = class(TForm)
    // ...
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    // ...
  private
    ini: TMemIniFile;
  end;

var
  Form1: TForm1;

implementation

uses
  ABOUT;

{$R *.dfm}

procedure TForm1.ToolButton1Click(Sender: TObject);
begin
  Ini.WriteString('Daten', Edit1.Name, Edit1.Text);
  Ini.WriteString('Daten', Edit2.Name, Edit2.Text);
  // ...
end;

procedure TForm1.ToolButton2Click(Sender: TObject);
begin
  Edit1.Text := Ini.ReadString('Daten', Edit1.Name, 'Default-Angabe');
  // ...
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  Edit1.Enabled := CheckBox1.Checked;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Ini := TMemIniFile.Create(ExtractFilePath(ParamStr(0)) + 'data.ini');
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Ini.UpdateFile;
end;

end.
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#29

Re: Daten speichern

  Alt 5. Mär 2006, 19:52
Was wr damit sagen will: du musst die datei nich immer wieder neu öffnen und freigeben, es reicht wenn du das einmal tust
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#30

Re: Daten speichern

  Alt 5. Mär 2006, 21:45
mal ne Auflistung der Fehler / Verbesserungswürdigen Stellen in deinem Code:

1. Einrückung

du solltest deinen Quelltext immer einrücken (mit jedem begin etc. eine stufe weiter einrücken)

wenn du mal 10000-Zeilen Codes mit 8facher Verschachtelung schreibst ist das nahezu überlebensnotwendig.
Delphi-Quellcode:
procedure xyz;
var
  a,b,i:integer;
  s:string;
beign
  try begin
    for i:=0 to 10 do begin
      showmessage('i='+inttostr(i));
    end;
  end excpet
    showmessage('fehler');
  end;
end;

2. Schreiben der INI-Dateien

Delphi-Quellcode:
Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit1-Feld', Edit1.Text);
Ini.Free;

Ini := TIniFile.Create('data.ini');
Ini.WriteString('Daten', 'Edit2-Feld', Edit2.Text);
Ini.Free;
du öffnest die Datei, schreibst, schliesst die Datei, öffnest sie wieder, schreibst,...

fährst du deinen Comuter hoch damit du ein Programm ausführen kannst, fährst ihn wieder herunter, fährst ihn aber gleich wieder hoch, und führst das nächste Programm aus?

besser:
Delphi-Quellcode:
ini:=tinifile.create('data.ini');
Ini.WriteString('Daten', 'Edit1-Feld', Edit1.Text);
Ini.WriteString('Daten', 'Edit2-Feld', Edit2.Text);
Ini.Free;
3. Lesen der INI-Dateien

du öffnest die Datei, liest einen Wert, vergisst aber, die Datei wieder zu schliessen, öffnest sie dann aber - obwohl sie schon geöffnet ist - gleich wieder...

am schluss schliesst du die Datei überhaupt nicht mehr - wieder eine Fehlerquelle.

Delphi-Quellcode:
Ini := TIniFile.Create('data.ini');
Edit1.Text := Ini.ReadString('Daten', 'Edit1-Feld', 'Default-Angabe');

Ini := TIniFile.Create('data.ini');
Edit2.Text := Ini.ReadString('Daten', 'Edit2-Feld', 'Default-Angabe');

//...
besser am Anfang einmal öffnen, alles lesen, und dann wieder schliessen:

Delphi-Quellcode:
Ini := TIniFile.Create('data.ini');
Edit1.Text := Ini.ReadString('Daten', 'Edit1-Feld', 'Default-Angabe');
Edit2.Text := Ini.ReadString('Daten', 'Edit2-Feld', 'Default-Angabe');
//...
ini.free;
außerdem ist es ungeschickt, 'Default-Angabe' als Edittext zu setzen, falls der echte Wert nicht gelesen werden kann, wie z.B. beim ersten Programmstart. Verwende den Text, der dem User in diesem Fall angezeigt werden soll, anstatt 'Default-Angabe', wie z.B. einen leeren String: ''

4. Zuweisung der Boolean (Ja-Nein-Werte)

du machst gerade folgendes:

Falls der wert der Checkbox.checked wahr ist, dann setze den Wert des Edit.Enabled auf wahr.
Falls der wert der Checkbox.checked falsch ist, dann setze den Wert des Edit.Enabled auf falsch.

klingt das nicht etwas umständlich?

Delphi-Quellcode:
if (CheckBox1.Checked=true) then Edit1.Enabled:=true;
if (CheckBox1.Checked=false) then Edit1.Enabled:=false;
einfacher wäre doch das:

Falls der wert der Checkbox.checked wahr ist, dann setze den Wert des Edit.Enabled auf wahr,
ansonsten setze den Wert des Edit.enabled auf falsch.

Delphi-Quellcode:
if CheckBox1.Checked=true then
  Edit1.Enabled:=true
else
  Edit1.Enabled:=false;
In einer If-Abfrage ist es allerdings absolut unnötig, ein =true abzufragen, denn das macht die If-Abfrage selbst. Sie überprüft, ob der Wert der gegebenen Variable true ist, also z.B. der Wert der Operation 'a'='a' ist true, während 'a'='b' false ist.

Delphi-Quellcode:
if CheckBox1.Checked then
  Edit1.Enabled:=true
else
  Edit1.Enabled:=false;
Aber wieso machst dus überhaupt so umständlich und sagst nicht gleich: "Gib dem edit.enabled denselben wert wie dem checkbox.checked"?

edit1.enabled:=checkbox1.checked;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 Uhr.
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