![]() |
Backup von eingabefelder
Liste der Anhänge anzeigen (Anzahl: 2)
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; |
Re: Backup von eingabefelder
Speichere die Daten einfach in einer
![]() |
Re: Backup von eingabefelder
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 :hi: |
Re: Backup von eingabefelder
Liste der Anhänge anzeigen (Anzahl: 1)
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 |
Re: Backup von eingabefelder
Ganz spontan würd ich ungetestet sagen so:
Delphi-Quellcode:
Und wenn du Codestücke hast klicke vorher auf den Delphi-Code Button über dem Eingabefeld.#
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; //Edit: Geht natürlich nur wenn die Edits die Namen Edit1 bis Edit4 haben ... |
Re: Backup von eingabefelder
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:44 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-2025 by Thomas Breitkreuz