AGB  ·  Datenschutz  ·  Impressum  







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

TJvFormStorage

Ein Thema von jik · begonnen am 7. Jan 2024 · letzter Beitrag vom 7. Jan 2024
Antwort Antwort
jik

Registriert seit: 17. Feb 2015
Ort: Klagenfurt
50 Beiträge
 
Delphi 12 Athens
 
#1

TJvFormStorage

  Alt 7. Jan 2024, 13:14
Hallo mitsammen,

ich wusste ja, dass es kein Spaziergang würde mit dem Umstieg von 5 auf 12. Aber so ...

Zuerst aber mal danke an @dummzeuch für die GExperts!


FormStorage war beim 5er ein Klacks - Kompo aufs Form - fertig. Zwar finde ich die Idee mit den unterschiedlichen Storages praktisch, wenn ich wüsste, was die wollen. Trotz Hilfe passiert einfach nichts. Also:

1. TJvFormStorage gedroppt
2. TJvAppIniFileStorage ebenfalls
3. 2 bei 1 eingetragen (Bei AppStorage)
4. Bei JvFormStorage1.AppStoragePath die Vorgabe '%FORM_NAME%' drin gelassen (ist ja wohl die Sektion in der Ini, denke ich), aber auch mit 'fMain' probiert, bringt auch nichts.
5. JvFormStorage1.Active und sicherheitshalber auch JvFormStorage1.FlushOnDestroy sind an
5. Bei JvAppIniFileStorage1.FileName Pfad und Name der Ini-Datei angegeben

Zusätzlich noch mit SaveFormPlacement und RestoreFormPlacement probiert, es passiert auch nichts, die (schon vorhandene) Inidatei wird nicht aktualisiert. Die nächste Stufe wäre in den Quellcode hineingraben.

Verwendet das Ding von euch jemand erfolgreich?
Martin Danesch
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.468 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: TJvFormStorage

  Alt 7. Jan 2024, 13:41
1. TJvFormStorage gedroppt
2. TJvAppIniFileStorage ebenfalls
3. 2 bei 1 eingetragen (Bei AppStorage)
4. Bei JvFormStorage1.AppStoragePath die Vorgabe '%FORM_NAME%' drin gelassen (ist ja wohl die Sektion in der Ini, denke ich), aber auch mit 'fMain' probiert, bringt auch nichts.
5. JvFormStorage1.Active und sicherheitshalber auch JvFormStorage1.FlushOnDestroy sind an
5. Bei JvAppIniFileStorage1.FileName Pfad und Name der Ini-Datei angegeben

Zusätzlich noch mit SaveFormPlacement und RestoreFormPlacement probiert, es passiert auch nichts, die (schon vorhandene) Inidatei wird nicht aktualisiert. Die nächste Stufe wäre in den Quellcode hineingraben.
Ja, schon jahrelang, aber immer seltener, weil ich inzwischen lieber spezielle Config-Objekte verwende statt Properties von Controls zu speichern.

Dumme Frage: Hast Du auch konfiguriert, welche Properties von welchen Controls gespeichert werden sollen? Oder geht es erst mal nur um die Position des Fensters?
Thomas Mueller

Geändert von TBx ( 7. Jan 2024 um 18:14 Uhr) Grund: Quote-Tag repariert
  Mit Zitat antworten Zitat
jik

Registriert seit: 17. Feb 2015
Ort: Klagenfurt
50 Beiträge
 
Delphi 12 Athens
 
#3

AW: TJvFormStorage

  Alt 7. Jan 2024, 14:20
Doch, ich hab zwei Komponenten (Edit, Checkbox) zum Testen eingetragen. Er erzeugt auch keine Ini-Datei und wenn man sie ihm anlegt, passiert nichts drin. Wahrscheinlich ist es was so Offensichtliches, dass ich immer drüberfalle.

Was ist der Vorteil deiner Config-Objekte? Vielleicht ist das für mich ja ein Anlass, umzudenken. Ich handhabe derzeit viele Einstellungen über ein Einstellungsfenster mit mehreren Tabs, dort Checkboxen, Radiobuttons, Eingabefelder, das Übliche halt, sind über 700 Parameter allein dort. Da dieses Fenster immer aktiv ist, ist auch die Abfrage problemlos. Magst du kurz was zu deinen Objekten sagen?
Martin Danesch
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.468 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: TJvFormStorage

  Alt 7. Jan 2024, 15:25
Doch, ich hab zwei Komponenten (Edit, Checkbox) zum Testen eingetragen. Er erzeugt auch keine Ini-Datei und wenn man sie ihm anlegt, passiert nichts drin. Wahrscheinlich ist es was so Offensichtliches, dass ich immer drüberfalle.
Ich habe gerade ein neues Projekt angelegt und es ausprobiert. Es hat zuerst auch nicht geklappt, weil ich vergessen hatte, bei der AppIniFileStorage-Komponente die Property Filename zu setzen. Danach ging's aber.

DFM:
Code:
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 336
  ClientWidth = 635
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object ed_Bla: TEdit
    Left = 136
    Top = 56
    Width = 121
    Height = 21
    TabOrder = 0
  end
  object TheFormStorage: TJvFormStorage
    AppStorage = TheAppIniFileStorage
    AppStoragePath = '%FORM_NAME%'
    StoredProps.Strings = (
      'ed_Bla.Text')
    StoredValues = <>
    Left = 312
    Top = 176
  end
  object TheAppIniFileStorage: TJvAppIniFileStorage
    StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y'
    StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N'
    AutoFlush = True
    FileName = 'blablub.ini'
    SubStorages = <>
    Left = 376
    Top = 240
  end
end
Unit:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, JvAppStorage, JvAppIniStorage, JvComponentBase,
  JvFormPlacement, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    TheFormStorage: TJvFormStorage;
    TheAppIniFileStorage: TJvAppIniFileStorage;
    ed_Bla: TEdit;
  private
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.
Was ist der Vorteil deiner Config-Objekte? Vielleicht ist das für mich ja ein Anlass, umzudenken. Ich handhabe derzeit viele Einstellungen über ein Einstellungsfenster mit mehreren Tabs, dort Checkboxen, Radiobuttons, Eingabefelder, das Übliche halt, sind über 700 Parameter allein dort. Da dieses Fenster immer aktiv ist, ist auch die Abfrage problemlos. Magst du kurz was zu deinen Objekten sagen?
Der Hauptvorteil ist, dass es unabhängig von Formularen ist. Man kann sich eine Struktur basteln, die der Logik folgt statt der Darstellung. Dafür hat man aber den zusätzlichen Aufwand, dass man die Einstellungen zwischen Config-Objekt und Config-Dialog hin- und herschaufeln muss.
Thomas Mueller
  Mit Zitat antworten Zitat
jik

Registriert seit: 17. Feb 2015
Ort: Klagenfurt
50 Beiträge
 
Delphi 12 Athens
 
#5

AW: TJvFormStorage

  Alt 7. Jan 2024, 15:48
Hallo Thomas,

hab deine pas/dfm verglichen - logisch identisch. Dann ... Autsch - das ist mir jetzt schon mehr als peinlich ... Bevor ich mich hier ins Forum begeben hatte, hab ich selbst versucht, einen Ersatz mit einer TMemIniFile zu überlegen. Das in einer eigenen Unit für allgemeine Funktionen und dort dieses hier:
Code:
initialization
  cIniFile := TMemIniFile.Create(AppData + 'PatchworkM.ini')

finalization
  cIniFile.UpdateFile;
  FreeAndNil(cIniFile);
Nun ja, und Trumpf sticht halt immer ...
Martin Danesch
  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 07:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz