AGB  ·  Datenschutz  ·  Impressum  







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

Komponenten merken und später zuweisen

Ein Thema von stahli · begonnen am 29. Sep 2008 · letzter Beitrag vom 2. Okt 2008
Antwort Antwort
Benutzerbild von stahli
stahli
Online

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.358 Beiträge
 
Delphi 11 Alexandria
 
#1

Re: Komponenten merken und später zuweisen

  Alt 30. Sep 2008, 10:29
Zitat:
Darf man - aus reiner Neugier natürlich - fragen, wartum du nicht das bereits vorhandene, ,und von Delphi für die dfm-Dateien benutzte Streaming verwendest ?
Warum Du fragst ist eigentlich egal
Ich hatte zum Einen keinen wirklichen Zugang zu den Streaming-Funktionen gefunden. Zwar habe ich verstanden, wie das grundsätzlich funktioniert, aber das für meine Zwecke zu verwenden erschien mir zu kompliziert und nicht genau passend.
- Mit meiner Version bin ich nicht an bestimmte Reihenfolgen gebunden.
- Jede Komponente kann ihre Daten lesen und schreiben, wenn sie es für richtig hält.
- Es können beliebige Daten geschrieben und gelesen werden (nicht nur propertys).
(nach meinem Verständnis geht das mit dem dfm-Streaming nicht)

Jedenfalls war der Aufwand, eine eigene Ini-Komponente abzuleiten nicht wirklich groß und ich bin mit dem Ergebnis (bis auf die Verknüpfungen bisher) sehr zufrieden...

Zitat:
Wenn du es gerne selber mamchen möchtest; würde ich so vorgehen, dass ich erstmal alle Objekte auslese (ohne Verknüpfungen herzustellen) und dann die Obekte die Verknüpfungen erneut herstellen lasse.
Alternativ (das hört sich nach dem an, was du schon probiert hattest) Wenn du auf etwas stößt, dass du noch nicht gelesen hast, ne ID vergeben und am Ende kann sich dann jedes Objekt (unter Angabe der ID) sein richtiges Objekt "abholen" ...
Alles nicht so einfach wenns derart universell sein soll
So habe ich es bei meiner Stream-Variante getan und werde es jetzt dann auch so machen. Mit so einer "Pointerumbiegung" hätte ich das nur etwas universeller und einfacher lösen können - schade, dass es mit propertys so nicht geht


Die Datei sieht übrigens dann ungefähr so aus (Bild gekürzt):

Zitat:
[Club]
ID1=39597,7929584838
ID2=39597,7966440509
HeadingLong=BV Halle 06 e.V.
HeadingShort=BV Halle 06
HeadingAbbr=HAL
EMail=
Players.Item1=Component(DPlayer1) // diese Einträge
Players.Item2=Component(DPlayer2) // werden automatisch
Players.Item3=Component(DPlayer3) // erzeugt, ebenso
Players.Item4=Component(DPlayer4) // die entsprechenden
Players.Item5=Component(DPlayer5) // Sections

[Component(DPlayer1)]
{ClassName}=TDPlayer
{Owner}=
Person.ID1=39597,7929584838
Person.ID2=39597,7969948148
Person.FirstName=André
Person.LastName=Günther
Person.NickName=Die Lippe
Person.ShortName=
Person.BirthDay=29.05.1988
Person.Kind=m
Person.Picture=Base64(Qk3GXwEAAA.................. ...................AAADYAAAA)
PersonClub.ClubLeader=0
PersonClub.HomeTeamNo=0
PersonClub.HomeTeamPos=0
PersonClub.HomeTeamLeader=0
PersonTournament.Participation=0

[Component(DPlayer2)]
{ClassName}=TDPlayer
{Owner}=
Person.ID1=39597,7929584838
Person.ID2=39597,7982654861
Person.FirstName=André
Person.LastName=Stahl
Person.NickName=Printer
Person.ShortName=
Person.BirthDay=29.05.1988
Person.Kind=m
Person.Picture=Base64(Qk3GXwEAAA.................. ...................AAADYAAAA)
PersonClub.ClubLeader=0
PersonClub.HomeTeamNo=0
PersonClub.HomeTeamPos=0
PersonClub.HomeTeamLeader=0
PersonTournament.Participation=0
Die zu benutzenden Methoden sind:
TExtIniFile.WriteComponent(...);
TExtIniFile.WriteComponentList(...);
TExtIniFile.ReadComponent(...);
TExtIniFile.ReadComponentList(...);
Es werden also auch Listen von Komponenten gespeichert und wieder hergestellt.

TExtIniFile erzeugt dann automatisch die entsprechenden Einträge und Sections und veranlasst die Komponenten dann, diese beim Speichern/Lesen zu verwenden.

Für Binädaten kann man
TExtIniFile.WriteBase64(...);
TExtIniFile.ReadBase64(...);
nutzen.

Was noch nicht umgesetzt ist, ist eben
TExtIniFile.WriteComponentPOINTER(...);
TExtIniFile.ReadComponentPOINTER(...);
um Verküpfungen wieder herzustellen.


Stahli
  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 15:59 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