Bin gerade dabei eine meiner Anwendungen nicht nur für Windows, sondern auch für MAC, Android und IOS bereit zu stellen. Allerdings gehe ich mal versuchsweise einen anderen Weg als sonst: Nicht der volle Umschwung zu FMX mit einer Vollkonvertierung, sondern (zumindest eine Zeit lang) noch die Windows-Version als
VCL-Projekt weiterzuführen, aber mit einer gemeinsamen Source-Code Basis auch die MAC-, Android und IOS-Version zu bestücken.
MAC-Version ist als Beta schon fertig (bei Interesse siehe
hier).
Was mir leider erst jetzt bei der Bearbeitung der Android-Version (siehe anlg. Screenshot vom Device) wieder einfiel, ist die ARC-Thematik und die Verwendung von TList mit Objekten.
Stevie hatte hier schon mal etwas ausgeführt:
http://www.delphipraxis.net/1266711-post5.html
Meine Frage ist nun: Wie könnte ein eleganter Weg aussehen, um ein TTermin-Objekt, das bisher in einer TList-Liste verwaltet wird, durch eine andere Lösung zu ersetzen, die gleichwohl auf allen Plattformen (also incl.
VCL-Windows) verwendet werden kann
UND
möglichst so eingeführt wird, dass ich an allen Stellen im Source-Code keine Änderungen vornehmen muss (denn es wären viel tausend Stellen)?
Bisher verwende ich das Object und die Liste unter Windows (und MAC) ungefähr so:
Delphi-Quellcode:
TTermin = class (TObject)
Deleted: Integer; // wird nicht in Datei gespeichert; <> 0 ist gelöscht
Markiert: Boolean; // ab Version 5 (wird nicht in Datei gespeichert)
{1} ID : String;
DTyp : Integer; {0 = Termin, 1 = Aufgabe }
Tag: String;
.... usw.
Im Source-Code wird das Objekt halt oft in dieser Art verwendet:
Delphi-Quellcode:
procedure Tfrm_Main.Fill2WeeksList (day, month, year: Word);
var
Y, D, F, P, xl, L, M: Integer;
Tag, RepeatDay, S, sNew: String;
tm: tTermin;
begin
for L := 1 to TerminList.Count-1 do begin
try
tm := TTermin (TerminList[L]);
if tm.tag = Today // usw.
Oder so beim Erzeugen des Objects:
Delphi-Quellcode:
var
TerminList: TList;
begin
tm := tTermin.Create;
TerminList.Add (tm);
/// weiter mit tm arbeiten
Jemand einen zündende Idee?