Autor Beitrag
elcomportal
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48

Win XP home
D5 standard
BeitragVerfasst: Mo 30.01.06 22:08 
Hi,
ich habe mal wieder eine kleine Frage.

also ich habe ein Programm mit vielen CheckBoxen. Die werden für Einstellungen an spezieller Hardware verwendet. So, nun will ich die Zustände dieser CheckBoxen in einer Textdatei speichern.

mache ich so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
    for i:=1 to 100 do begin
     if TCheckBox(findComponent('CheckBox'+IntToStr(i))).checked = true then
      writeln(f,'1')
     else
      writeln(f,'0');
    end;


so nun will ich den Kram auch wieder einlesen und die Checkboxen wieder entsprechend setzen, ich dachte so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
    for i:=1 to 100 do begin
     readln(f,s);
     if s ='1' then
      TCheckBox(findcomponent('CheckBox'+IntToStr(i))).checked := true;
     if s ='0' then
      TCheckBox(findcomponent('CheckBox'+IntToStr(i))).checked := false;
    end;

Aber das geht nicht, wie muss ich das machen? Kann mir da bitte mal einer auf die Sprünge helfen?
Danke.
Mfg
Torsten

_________________
Starkstrom macht klein und hässlich


Zuletzt bearbeitet von elcomportal am Mo 30.01.06 22:11, insgesamt 1-mal bearbeitet
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 30.01.06 22:10 
Moin!

Warum nicht INI-Dateien? Geht doch viel einfacher. :wink:

Such mal hier danach im Forum, gibt genug Beispiele dazu. Wenn du nicht klar/weiter kommst, kannste dich ja nochmal melden.

cu
Narses
elcomportal Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48

Win XP home
D5 standard
BeitragVerfasst: Mo 30.01.06 22:16 
Hi,
so schnell hatte ich noch nie eine Antwortbekommen!! :wink:

INI Dateien sind in der Grösse ja so begrenzt. Ich dachte da wären Textdateien besser. Aber hätte ich da nicht das selbe Problem?
Mfg
Torsten

_________________
Starkstrom macht klein und hässlich
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 30.01.06 22:28 
Moin!

user profile iconelcomportal hat folgendes geschrieben:
INI Dateien sind in der Grösse ja so begrenzt. Ich dachte da wären Textdateien besser.

Was willst du denn da speichern... :gruebel: Wenn das wirklich soo viel ist, dann ist eine Datenbank aber sicherlich besser (kann ich mir aber nicht vorstellen). :wink:
user profile iconelcomportal hat folgendes geschrieben:
Aber hätte ich da nicht das selbe Problem?

Ehrlichgesagt habe ich dein Problem noch nicht so richtig verstanden; du kannst auf jeden Fall in INI-Dateien sowas machen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  IniFile: TIniFile;
  i: Integer;
begin
// Schreiben
  IniFile := TIniFile.Create('irgendwo.ini');
  IniFile.EraseSection('Settings');
[...]
  IniFile.WriteBool('Settings','RadioButton'+IntToStr(i),RadioButton1.Checked);
[...]
  IniFile.Free;

// Lesen
  IniFile.ReadBool('Settings','RadioButton'+IntToStr(i),RadioButton1.Checked);

Das ganze jetzt noch etwas auf die FindComponent-Klamotte trimmen, fertig. :wink:

cu
Narses
elcomportal Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48

Win XP home
D5 standard
BeitragVerfasst: Di 31.01.06 06:37 
Hi,
na ja, das primäre Problem ist ja nicht die Datei und deren Handhabung, sondern das ich die CheckBoxen nicht mit  TCheckBox(findcomponent('CheckBox'+IntToStr(i))).checked := true; gechecked kriege. Da kommt einfach kein Haken rein...
Mfg
Torsten

_________________
Starkstrom macht klein und hässlich
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 31.01.06 09:48 
Moin!

Pack mal den Namen des Formulars mit rein, a la:
ausblenden Delphi-Quelltext
1:
TCheckBox(Form1.findcomponent('CheckBox'+IntToStr(i))).checked := true;					

cu
Narses
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Di 31.01.06 10:22 
Hallo!

Daran wird´s nicht liegen. Hätte die Komponente nicht gefunden werden können, so wäre es zu einer Zugriffsschutzverletztung gekommen (Findkomponent liefert NIL, TCheckbox(NIL).Checked:=0 -> *AV*). Setze mal ein paar Breakpoints beim Einlesen der Datei und kucke dir die Werte von S an.

BTW: Eine Datenbank ist nicht immer zu empfehlen, wenn man größere Datenmengen hat, sondern eigentlich dann angesagt, wenn diese schnell und einfach auswertbar sein sollen.

Cu,
Udontknow
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 31.01.06 10:36 
Moin!

user profile iconUdontknow hat folgendes geschrieben:
Daran wird´s nicht liegen. Hätte die Komponente nicht gefunden werden können, so wäre es zu einer Zugriffsschutzverletztung gekommen (Findkomponent liefert NIL, TCheckbox(NIL).Checked:=0 -> *AV*). Setze mal ein paar Breakpoints beim Einlesen der Datei und kucke dir die Werte von S an.

Ich mach das immer mit ShowMessage(), ist mir zu umständlich mit dem Debugger. :wink: Naja, Geschmacksache...

user profile iconUdontknow hat folgendes geschrieben:
BTW: Eine Datenbank ist nicht immer zu empfehlen, wenn man größere Datenmengen hat

Schon klar, war auch nur zur "Abschreckung", da ich mir nicht vorstellen konnte, das da wirklich soo viele Daten zu sichern sind. :D

cu
Narses
elcomportal Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48

Win XP home
D5 standard
BeitragVerfasst: Fr 03.02.06 21:35 
Hmm, das funzt immer noch nicht. Mal setzt er ein solch Teil, mal nicht. Das Verhalten ist absolut nicht reproduzierbar. Ich versteh' es nicht.
Mfg
Torsten

_________________
Starkstrom macht klein und hässlich
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Sa 04.02.06 00:19 
Neue Frage - Neuer Thread ! Sorry
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 04.02.06 11:07 
user profile iconBlackheart666 hat folgendes geschrieben:
Neue Frage - Neuer Thread ! Sorry
DIe Frage wurde doch noch gar nicht beantwortet. :gruebel:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 04.02.06 13:28 
Moin!

Zeig mal mehr Code (wenn zuviel, als ZIP in den Anhang), so kommen wir da nicht weiter. :wink:

cu
Narses