![]() |
Eigene Databar als Komponente oder Projekt erstellen...Wie?
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Wissende,
ich möchte eine eigene Databar erstellen, welche mir die sich auf dem gleichen Elternelement befindlichen Controlinhalte abspeichert. Zur Verdeutlichung habe ich mal ein Beispiel-Projekt angelegt. Es sollen in dem Fall nur die Inhalte aller Childs exclusive der Databar von Panel1 gespeichert werden. TPanel als Parent Es sollen nur die Zustände gespeichert werden. Also bei Edits reichen die Texte, bei Checkboxen der Zustand von Checked. Wie könnte ich das lösen, dass mir völlig unabhängig davon, ob ich weiss, welche Controls sich mit auf dem Form befinden, die Datengespeichert und wieder angezeigt werden, wenn man in der Combobox den richtigen Eintrag auswählt!? Welches Datenformat würdet Ihr wählen? XML oder Ini? Würde das ganze dann später gern als Komponente erstellen...Vielleicht hat ja der ein oder andere Interesse an sowas!? Für Infos und Vorschläge bin ich wie immer dankbar... |
Re: Eigene Databar als Komponente oder Projekt erstellen...W
Also folgenden Code habe ich jetzt mal erstellt, um die Inhalte aus Edits, RadioGroups, Checkboxen und Comboboxen in eine Ini zu schreiben. Dabei wird vorausgesetzt, dass in der Combobox cmb_names ein text eingetragen wurde, welcher dann als Sektion für die Ini gedacht ist und nach dem Speichern der Combobox selbst eingetragen wird.
Wählt man dann aus der Combobox einen Eintrag aus, werden die Daten geladen. Ich würde nun gern auch noch die 2 Buttons für Forward und Back anbinden, weiss aber noch nicht, ob das überhaupt möglich ist. Für Tipps wäre ich dankbar. Hier die Codes, falls jemand mal sowas vor hat. Speichern der Daten:
Delphi-Quellcode:
Vielleicht geht das ganze auch anders? Ich brauche das immer wieder und würde das gern einfacher haben, als immer wieder diesen Code in jedes Formular einbinden zu müssen. Ginge das? Wenn ja wie!?
//speichern der daten
procedure Tlowerthird.btn_saveClick(Sender: TObject); var i : integer; C : TObject; ini : TIniFile; begin //ShowMessage(DBar_Path + self.Name + '.ini'); ini := TIniFile.Create(DBar_Path + self.Name + '.ini'); for i := 0 to ComponentCount-1 do begin if Components[i].Tag = 0 then begin C := Components[i]; if (C is TdxDNEdit) then ini.WriteString(cmb_names.Text,(C as TdxDNEdit).Name,(C as TdxDNEdit).Text); if (C is TAdvOfficeRadioGroup) then ini.WriteInteger(cmb_names.Text,(C as TAdvOfficeRadioGroup).Name,(C as TAdvOfficeRadioGroup).ItemIndex); if (C is TAdvOfficeComboBox) then ini.WriteString(cmb_names.Text,(C as TAdvOfficeComboBox).Name,(C as TAdvOfficeComboBox).Text); if (C is TAdvOfficeCheckBox) then ini.WriteBool(cmb_names.Text,(C as TAdvOfficeCheckBox).Name,(C as TAdvOfficeCheckBox).checked); end; end; ini.ReadSections(cmb_names.Items); ini.Free; end; //laden der sections in die combobox procedure Tlowerthird.FormCreate(Sender: TObject); var ini : TIniFile; begin ini := TIniFile.Create(DBar_Path + self.Name + '.ini'); ini.ReadSections(cmb_names.Items); ini.Free; end; //laden der daten procedure Tlowerthird.cmb_namesChange(Sender: TObject); var i : integer; C : TObject; ini : TIniFile; begin ini := TIniFile.Create(DBar_Path + self.Name + '.ini'); if not(trim(cmb_names.Text) <> '') then exit; if ini.SectionExists(cmb_names.Text) then begin for i := 0 to ComponentCount-1 do begin if Components[i].Tag = 0 then begin C := Components[i]; if (C is TdxDNEdit) then (C as TdxDNEdit).Text := ini.ReadString(cmb_names.Text,(C as TdxDNEdit).Name,''); if (C is TAdvOfficeRadioGroup) then (C as TAdvOfficeRadioGroup).ItemIndex := ini.ReadInteger(cmb_names.Text,(C as TAdvOfficeRadioGroup).Name,0); if (C is TAdvOfficeComboBox) then (C as TAdvOfficeComboBox).Text := ini.ReadString(cmb_names.Text,(C as TAdvOfficeComboBox).Name,''); if (C is TAdvOfficeCheckBox) then (C as TAdvOfficeCheckBox).checked := ini.ReadBool(cmb_names.Text,(C as TAdvOfficeCheckBox).Name,false); end; end; end; ini.Free; end; |
Re: Eigene Databar als Komponente oder Projekt erstellen...W
Zitat:
![]() |
Re: Eigene Databar als Komponente oder Projekt erstellen...W
Danke für den Tipp, aber wie Du unschwer an meiner Art der Programmierung erkennen konntest, habe ich nicht so viel Ahnung. Ich habe also leider nicht wirklich was davon verstanden, was Du da in dem anderen Threat zum Besten gegeben hast.
|
Re: Eigene Databar als Komponente oder Projekt erstellen...W
Hier steht mehr :
![]() P.S.: es gibt hier auch eine Suche. :???: |
Re: Eigene Databar als Komponente oder Projekt erstellen...W
Ok ich hätte nach Objektablage suchen können. Sorry dafür und ein Riesen-DANKE für den zusätzlichen Link!!!
Ich habe es zwar noch nicht probiert, aber wenn das SOOO einfach geht wie dort beschrieben, wird die Objektablage mein Neuer Freund... :mrgreen: |
Re: Eigene Databar als Komponente oder Projekt erstellen...W
Das geht SOOO einfach ! :mrgreen: Für einige wohl zuuuu einfach, so dass sie sich nicht die Mühe gemacht haben das mal zu testen und lieber ihre DFMs von Hand verunstalten. :lol:
|
Re: Eigene Databar als Komponente oder Projekt erstellen...W
habs getestet und im entsprechenden Threat schon 2 Fragen gepostet. Dies soll aber kein Doppelpost oder Push sein...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 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