AGB  ·  Datenschutz  ·  Impressum  







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

Backup von eingabefelder

Ein Thema von bierhunter · begonnen am 18. Okt 2005 · letzter Beitrag vom 19. Okt 2005
Antwort Antwort
bierhunter

Registriert seit: 14. Okt 2005
2 Beiträge
 
#1

Backup von eingabefelder

  Alt 18. Okt 2005, 19:29
servus,

hab da ein formular (siehe anhang) in dem befinden sich einige editfelder checkboxen und radiobotten. wie kann ich die einstellungen speichern bevor der user sie verändert, um sie dann wiederherzustellen wenn der user auf abbrechen drückt?

hab da ne möglichkeit gefunden aber die war ziehmlich lang(siehe unten)

wäre echt gut wenn mir da jemand eine ein wenig schnellere lösung hat



implementation

{$R *.dfm}

var bu_ed_e1, bu_ed_e2, bu_ed_e3, bu_ed_e4, bu_ed_e5, bu_ed_e6, bu_ed_e7,
bu_ed_e8, bu_ed_e9, bu_ed_e10, bu_ed_e11, bu_ed_e12, bu_ed_e13, bu_ed_e14,
bu_ed_e15, bu_ed_e16, bu_ed_e17, bu_ed_e18, bu_ed_e19, bu_ed_e20,
bu_ed_a1, bu_ed_a2, bu_ed_a3, bu_ed_a4, bu_ed_a5, bu_ed_a6, bu_ed_a7,
bu_ed_a8, bu_ed_a9, bu_ed_a10, bu_ed_digi:string;

bu_cb_a1, bu_cb_a2, bu_cb_a3, bu_cb_a4, bu_cb_a5, bu_cb_a6, bu_cb_a7,
bu_cb_a8, bu_cb_a9, bu_cb_a10, bu_cb_digi,
bu_cb_e1, bu_cb_e2, bu_cb_e3, bu_cb_e4, bu_cb_e5, bu_cb_e6, bu_cb_e7,
bu_cb_e8, bu_cb_e9, bu_cb_e10, bu_cb_e11, bu_cb_e12, bu_cb_e13, bu_cb_e14,
bu_cb_e15, bu_cb_e16, bu_cb_e17, bu_cb_e18, bu_cb_e19, bu_cb_e20,
bu_rb_a1, bu_rb_a2, bu_rb_a3, bu_rb_a4, bu_rb_a5, bu_rb_a6, bu_rb_a7,
bu_rb_a8, bu_rb_a9, bu_rb_a10, bu_rb_digi,
bu_rb_e1, bu_rb_e2, bu_rb_e3, bu_rb_e4, bu_rb_e5, bu_rb_e6, bu_rb_e7,
bu_rb_e8, bu_rb_e9, bu_rb_e10, bu_rb_e11, bu_rb_e12, bu_rb_e13, bu_rb_e14,
bu_rb_e15, bu_rb_e16, bu_rb_e17, bu_rb_e18, bu_rb_e19, bu_rb_e20:boolean;


procedure TTfrm_kanaele.bt_abbrechenClick(Sender: TObject);
begin
(*alte werte wiederherstellen, in die editfelder Kanal schreiben
und formular schließen*)
Tfrm_kanaele.ed_e1.Text:=bu_ed_e1;
Tfrm_kanaele.ed_e2.Text:=bu_ed_e2;
...
Tfrm_kanaele.ed_e20.Text:=bu_ed_e20;
Tfrm_kanaele.ed_a1.Text:=bu_ed_a1;
Tfrm_kanaele.ed_a2.Text:=bu_ed_a2;
...
Tfrm_kanaele.ed_a10.Text:=bu_ed_a10;

Tfrm_kanaele.cb_e1.Checked:=bu_cb_e1;
Tfrm_kanaele.cb_e2.Checked:=bu_cb_e2;
...
Tfrm_kanaele.cb_e20.Checked:=bu_cb_e20;
Tfrm_kanaele.cb_a1.Checked:=bu_cb_a1;
Tfrm_kanaele.cb_a2.Checked:=bu_cb_a2;
...
Tfrm_kanaele.cb_a10.Checked:=bu_cb_a10;

Tfrm_kanaele.rb_e1.Checked:=bu_rb_e1;
Tfrm_kanaele.rb_e2.Checked:=bu_rb_e2;
...
Tfrm_kanaele.rb_e20.Checked:=bu_rb_e20;
Tfrm_kanaele.rb_a1.Checked:=bu_rb_a1;
Tfrm_kanaele.rb_a2.Checked:=bu_rb_a2;
...
Tfrm_kanaele.rb_a10.Checked:=bu_rb_a10;

close;
end;

procedure TTfrm_kanaele.backupExecute(Sender: TObject);
begin
//backup der formulardaten erstellen
bu_ed_e1:=Tfrm_kanaele.ed_e1.Text;
bu_ed_e2:=Tfrm_kanaele.ed_e2.Text;
...
bu_ed_e20:=Tfrm_kanaele.ed_e20.Text;
bu_ed_a1:=Tfrm_kanaele.ed_a1.Text;
bu_ed_a2:=Tfrm_kanaele.ed_a2.Text;
...
bu_ed_a10:=Tfrm_kanaele.ed_a10.Text;

bu_cb_e1:=Tfrm_kanaele.cb_e1.Checked;
bu_cb_e2:=Tfrm_kanaele.cb_e2.Checked;
...
bu_cb_e20:=Tfrm_kanaele.cb_e20.Checked;
bu_cb_a1:=Tfrm_kanaele.cb_a1.Checked;
bu_cb_a2:=Tfrm_kanaele.cb_a2.Checked;
...
bu_cb_a10:=Tfrm_kanaele.cb_a10.Checked;

bu_rb_e1:=Tfrm_kanaele.rb_e1.Checked;
bu_rb_e2:=Tfrm_kanaele.rb_e2.Checked;
...
bu_rb_e20:=Tfrm_kanaele.rb_e20.Checked;
bu_rb_a1:=Tfrm_kanaele.rb_a1.Checked;
...;
bu_rb_a10:=Tfrm_kanaele.rb_a10.Checked;
end;
Miniaturansicht angehängter Grafiken
frm_561.jpg   frm_677.jpg  
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#2

Re: Backup von eingabefelder

  Alt 18. Okt 2005, 19:31
Speichere die Daten einfach in einer Hier im Forum suchenIniFile-Datei, und dann lad sie gegebenenfalls wieder.
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Backup von eingabefelder

  Alt 18. Okt 2005, 19:39
Hi. Geh in einer Schleife alle Komponenten des Arrays Form1.Components[] durch. Bei jedem Durchlauf speicherst du in einer Ini in einer Section mit dem Namen der aktuellen Komponente (Form1.Components[x].Name). In diese Section schreibst du zum einen einen Wert "Typ", der abhängig davon, ob ein boolscher Wert (true oder false) oder aber ein Text gespeichert werden soll, entweder z.B. "1" oder "0" ist. Der zweite Wert jeder Section ist dann der eigentliche Boolsche Wert (z.B. 0 für checked = false und 1 für checked = true oder "Test" für Text = "Test"). Beim Laden kannst du dann das Ganze einfach rückwärts wieder laden.

Beispiel, wie die Ini Datei später aussehen könnte:

Code:
[Checkbox1]
Typ=0 //0 bedeutet hier, dass ein boolscher Wert erwartet wird
Wert=1 //1 bedeutet, dass die Checkbox markiert ist

[Checkbox2]
Typ=0 //0 bedeutet hier, dass ein boolscher Wert erwartet wird
Wert=0 //1 bedeutet, dass die Checkbox [b]nicht[/b] markiert ist

[Edit1]
Typ=1 //0 bedeutet hier, dass [b]Text[/b] erwartet wird
Wert=Test //Test ist der eingetragene Text.

.
.
.

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
bierhunter

Registriert seit: 14. Okt 2005
2 Beiträge
 
#4

Re: Backup von eingabefelder

  Alt 19. Okt 2005, 18:38
erstmal danke für die schnelle hilfe.

leider häge ich jetzt an einer anderen stelle.
ich habe ein formular(siehe anhang) und darin habe ich einen botton1 und eine groupbox1 die 4 eingabefelder enthält.
ich möchte nun alle inhalte die der user in die 4 textboxen eingibt durch eine while-schleife in ein array speichern. hab aber nur die möglichkeit gefunden den namen der textbox zu speichern.

hier mal mein versuch erst mal den den text in eine variable zu speichern:

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
s:string;
begin
i:=0;
s:=form1.GroupBox1.Controls[i].Text; //hier mein problem
showmessage(s);
end;

das resultat ist eine fehlermeldung: undeclared indentifier:'Text'
da ich erst vor kurzem mit delphi begonnen habe weiß ich nun nicht wie ich auf die fehlermeldung reagieren soll.

wäre sehr dankbar für eine kleine hilfestellung

thanks

Matze
Angehängte Grafiken
Dateityp: bmp form_452.bmp (160,9 KB, 7x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#5

Re: Backup von eingabefelder

  Alt 19. Okt 2005, 18:55
Ganz spontan würd ich ungetestet sagen so:
Delphi-Quellcode:
var
  i: Integer;
  Ar: Array [0..3] of Integer;
begin
  for i := 0 to 3 do
    Ar[i] := TEdit(FindComponent('Edit' + IntToStr(i + 1))).Text;
end;
Und wenn du Codestücke hast klicke vorher auf den Delphi-Code Button über dem Eingabefeld.#

//Edit: Geht natürlich nur wenn die Edits die Namen Edit1 bis Edit4 haben ...
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#6

Re: Backup von eingabefelder

  Alt 19. Okt 2005, 19:38
Hallo,

damit geht es unabhängig vom Namen der eingefügten Komponenten:
Delphi-Quellcode:
for z := 0 to GroupBox1.ControlCount-1 do
    begin
    if GroupBox1.Controls[z] is TEdit then
      showmessage(TEdit(GroupBox1.Controls[z]).Text);
    if GroupBox1.Controls[z] is TCheckBox then
      if TCheckBox(GroupBox1.Controls[z]).Checked then
      showmessage(TCheckBox(GroupBox1.Controls[z]).Name+' ist aktiviert');
    //was sonst noch enthalten sein kann
    end;
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz