AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi TIniFile umbiegen zu TIniMemFile

TIniFile umbiegen zu TIniMemFile

Ein Thema von Jim Carrey · begonnen am 6. Nov 2016 · letzter Beitrag vom 7. Nov 2016
Antwort Antwort
Seite 2 von 2     12
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: TIniFile umbiegen zu TIniMemFile

  Alt 6. Nov 2016, 20:23
Klar ist das möglich:

Delphi-Quellcode:
Tinifile = class(Tmeminifile)
 // jede menge code also zb
 destructor destroy: override;
end;


destructor tinifile.Destroy;
begin
 UpdateFile;
inherited;
end;
nur so hingetipt
aber so eine klasse in eine eigene unit und darauf achten das die Unit als letztes eingebunden wird wo man diese verwende will.
Dann reicht ein
Delphi-Quellcode:
uses
 // jede menge units
meineIniUnit;
Fritz Westermann
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#2

AW: TIniFile umbiegen zu TIniMemFile

  Alt 6. Nov 2016, 21:00
Aber gibt es eine Möglichkeit die Deklaration von TIniFile so umzubiegen, dass TMemIniFile benutzt wird und zusätzlich bei MeineIniDatei.Free; dann .UpdateFile + Free ausgeführt wird?
Ich habe noch nicht so recht den Sinn hinter dieser Aktion verstanden, aber in der Regel verwendet man im Programm überall TCustomIniFile (der gemeinsame Vorfahre von TIniFile und TMemIniFile ). Bei der Erzeugung wird dann entweder eine TIniFile - oder TMemIniFile -Instanz oder sonst eine Ableitung von TCustomIniFile erzeugt. Das automatische UpdateFile wird (ab Berlin) durch ein AutoSave := true realisiert. Das schreibt auch nur, wenn sich wirklich was verändert hat.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#3

AW: TIniFile umbiegen zu TIniMemFile

  Alt 7. Nov 2016, 08:20
Aber gibt es eine Möglichkeit die Deklaration von TIniFile so umzubiegen, dass TMemIniFile benutzt wird und zusätzlich bei MeineIniDatei.Free; dann .UpdateFile + Free ausgeführt wird?
Ich habe noch nicht so recht den Sinn hinter dieser Aktion verstanden, aber in der Regel verwendet man im Programm überall TCustomIniFile (der gemeinsame Vorfahre von TIniFile und TMemIniFile ). Bei der Erzeugung wird dann entweder eine TIniFile - oder TMemIniFile -Instanz oder sonst eine Ableitung von TCustomIniFile erzeugt. Das automatische UpdateFile wird (ab Berlin) durch ein AutoSave := true realisiert. Das schreibt auch nur, wenn sich wirklich was verändert hat.
Leider gibt es schlecht programmierte Komponenten, die nur ein TIniFile akzeptieren, obwohl alle notwendigen Methoden bereits in TCustomIniFile deklariert sind.

Man könnte natürlich ein TMemIniFile zu TIniFile casten, aber das währe mir dann doch ein bischen zu unsauber.
Alternative war dann ein Klassenadapter als Ableitung von TIniFile, der alle virtuellen Methoden überschreibt und auf ein internes TMemIniFile umleited.
  Mit Zitat antworten Zitat
Jim Carrey
(Gast)

n/a Beiträge
 
#4

AW: TIniFile umbiegen zu TIniMemFile

  Alt 7. Nov 2016, 09:35
Ich habe mittlerweile alles auf TCustomIniFile als Deklaration und TMemIniFile.Create umgestellt.
Ich muss jetzt zwar höllisch aufpassen, dass ich da wo es gebraucht wird kein UpdateFile vergesse aber das klappt schon.

Zu Berlin will ich aktuell nicht umsteigen, da mein altes XE'schen gut funktioniert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12

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 21:36 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