AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Eingabefelder und Speichern

Ein Thema von Monday · begonnen am 16. Dez 2019 · letzter Beitrag vom 17. Dez 2019
Antwort Antwort
Monday

Registriert seit: 24. Aug 2012
85 Beiträge
 
FreePascal / Lazarus
 
#1

Eingabefelder und Speichern

  Alt 16. Dez 2019, 17:42
Hallo,

ich weiß nicht, ob es soetwas schon gibt.

Einfaches Beispiel:

Der Nutzer soll ein paar Daten eingeben z.B. seinen Namen, seine E-Mailadresse, Adresse, Augenfarbe, Lieblingshund usw.

Diese Daten sollen dann später verarbeitet werden.


Und jetzt meine Überlegung - weil ich sehr Faul bin:

Ich müsste auf das Formular jeweils ein Label legen, eine Editfeld legen für den Namen. Dann das gleiche für seine E-Mailadresse usw.
Das ganze muss benannt werden, dann z.B. in einer INI, DB oder was auch immer gespeichert werden. Angenehm wäre natürlich auch noch, gleiche Daten im Formularfeld als Vorgabe zu verwenden um eine schnelle Änderung zu erreichen usw.

Ich finde, dass ist so eine klassische Routinearbeit die sehr lästig ist und immer wieder vorkommt. Und spätestens nach dem dritten Eingabefeld fängt das ganze an auf die nerven zu gehen.
Gibt es da nichts vorgefertigtes, dass diese Aufgabe übernimmt? Sodass man nicht jedes Eingabefeld bearbeiten muss, dass man nicht jedes eingabefeld einzeln speichern muss usw. Oder eine Technik die das ganze vereinfacht?

Ist ein bisschen ein "Luxusproblem".
(Wenn es da noch keine Hilfestellung oder Tools gibt, ist es etwas, was ich in Zukunft machen werde.)

Liebe Grüße
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.788 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Eingabefelder und Speichern

  Alt 16. Dez 2019, 17:59
Geht es um VCL? TValueListEditor oder TStringGrid.
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
267 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Eingabefelder und Speichern

  Alt 16. Dez 2019, 18:00
Hallo,

vielleicht bringt das die richtige Richtung

Delphi-Quellcode:
 for i := 0 to ComponentCount - 1 do
 begin
  if Components[i] is TEdit then
  begin
    Inhalt := TEdit(Components[i]).Text;
    // Hier jetzt irgendwas mit Inhalt machen z.B in INI Speichern.
  end;
 end;
Das gleiche geht mittels FindComponent natürlich auch anders herum. Defaultwerte geht über eine Ini recht einfach.

 Edit.Text := ini.ReadString('Section', 'Key', 'Defaultwert');
Chris
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.243 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Eingabefelder und Speichern

  Alt 16. Dez 2019, 18:13
Schau mal nach dem Stichwort "Databinding". Geht das in die richtige Richtung?

Welche Frameworks da jetzt für Dich möglich sind, kann ich nicht sagen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
635 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Eingabefelder und Speichern

  Alt 16. Dez 2019, 21:39
Definiere eine Datenbank ... irgendetwas lokales reicht, auch ClientDataset und in Datei speichern. Dann spendiere Deiner Anwendung eine Connection-Komponente und eine Table bzw Query-Komponente, welche Du mit der Connection verbindest, Daten selektierst und dann auf Active schältst...wie das geht, ist der jeweiligen Dokumentation zu entnehmen.
Auf der Table bzw Query-Komponente einen Doppelklick machen, alle Felder hinzufügen und dann per Drag'n'Drop auf das Formular ziehst ... fertig. Geht schon seit Jahrzehnten.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Eingabefelder und Speichern

  Alt 17. Dez 2019, 00:35
Willst du es jetzt als Anwender oder als Programmierer bequem haben?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
927 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Eingabefelder und Speichern

  Alt 17. Dez 2019, 09:55
Ja, sowas wie Struts in Java, das hätte ich für Delphi auch gern.
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
524 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Eingabefelder und Speichern

  Alt 17. Dez 2019, 10:51
Also, zum einen musst du nicht immer ein separates Edit/Label erstellen, dafür gibt es ja auch die labelededit.

Zum anderen ist das Beispiel von hhcm eine Möglichkeit die "Masse" abzuarbeiten.
Ich nutze dies z.B. um durchnummerierte (zusammenhängende) Komponenten z.B. beim Programmstart abzuarbeiten:
Delphi-Quellcode:
    for i := 1 to 16 do //Da ich 16 entsprechende Komponenten habe.
    begin
      //vorher gespeicherte Toolbar-Einstellungen laden
      TLabeledEdit(FindComponent('Tool' + inttostr(i) + 'E')).text := Ini.ReadString('Install', 'Tool' + inttostr(i), ''); //EditFeld (Programmpfad)
      TLabeledEdit(FindComponent('Tool' + inttostr(i) + 'P')).text := Ini.ReadString('Install', 'Tool' + inttostr(i) + 'P', ''); //Editfeld (Parameter)
      TLabeledEdit(FindComponent('Tool' + inttostr(i) + 'N')).text := Ini.ReadString('Install', 'Tool' + inttostr(i) + 'N', ''); //Editfeld (Name; Optional)
      //vorher gespeicherte Toolbar-Einstellungen setzen und entsprechende Komponenten mitgeben.
      Toolbarset(TLabeledEdit(FindComponent('Tool' + inttostr(i) + 'E')),
                 TImage (FindComponent('Tool' + inttostr(i) + 'I')),
                 TCheckBox (FindComponent('Tool' + inttostr(i) + 'C')),
                 TLabeledEdit(FindComponent('Tool' + inttostr(i) + 'N')),
                 TButton (FindComponent('Tool' + inttostr(i) + 'B')));
    end;
Auch bei den Buttons z.B. um auf die entsprechenden Werte zuzugreifen:
Delphi-Quellcode:
//Toolbarbuttons Click
procedure TTools.ToolClick(Sender: TObject);
var
  Pfad : widestring;
  Parameter : widestring;
  Laenge : Integer;
begin
  with sender as TButton do
  begin
    Laenge := length(Name) - 5;
    Pfad := widestring(TEdit(Tools.FindComponent('Tool' + copy(Name, 5, Laenge) + 'E')).Text);
    Parameter := widestring(TEdit(Tools.FindComponent('Tool' + copy(Name, 5, Laenge) + 'P')).Text);
    if Name <> 'Tool1Bthen //Tool1B ist "reserviert"
    begin
      try
        StrToInt(copy(Name, 6, 1));
        ShellexecuteW(Handle, 'open', PWideChar(Pfad), PWideChar(Parameter), nil, SW_SHOW);
      except
        ShellexecuteW(Handle, 'open', PWideChar(Pfad), PWideChar(Parameter), nil, SW_SHOW);
      end;
    end else
    begin
      UpdateC := True;
      Close;
    end;
  end;
end;
Evtl. Hilft dir das etwas.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas (17. Dez 2019 um 11:06 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf