AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein EMB DCE 12 - class und record zusammen, um Operatoren gemeinsam zu nutzen ?
Thema durchsuchen
Ansicht
Themen-Optionen

EMB DCE 12 - class und record zusammen, um Operatoren gemeinsam zu nutzen ?

Ein Thema von paule32.jk · begonnen am 4. Okt 2024 · letzter Beitrag vom 4. Okt 2024
Antwort Antwort
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
327 Beiträge
 
Delphi 11 Alexandria
 
#1

EMB DCE 12 - class und record zusammen, um Operatoren gemeinsam zu nutzen ?

  Alt Gestern, 16:18
Hallo,
ich habe das ja schonmal angesprochen, konnte aber noch keine richtige Lösung finden.
Ich hatte auf das Problem mit den "record" und "class" operatoren geschrieben.
Leider kam zu diesen Beitrag nur ein kleiner Tipp, das ich "class" und "record" gemeinsam nutzen kann, aber mir fehlt da jetzt der Einstieg.
Wenn mir jemand ein sehr kleines Beispiel zeigen könnte, bin ich schonmal zufrieden.

Also: Ich würde gerne die Operatoren auch in Klassen verwenden wollen.
Danke für Eure Hilfen.
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.877 Beiträge
 
Delphi 12 Athens
 
#2

AW: EMB DCE 12 - class und record zusammen, um Operatoren gemeinsam zu nutzen ?

  Alt Gestern, 17:48
Operatoren gibt es (aktuell) nur bei Records. (da für Objekte eine automatische Speicherverwaltung nötig wäre)

Record-Opertatoren werden syntaktisch als Class-Functions umgesetzt.




Ja, Objekte in Records kann man inzwischen nutzen,
da sich hier via Custom-Managed-Records eine Speicherverwaltung selbst umsetzen lässt.

https://docwiki.embarcadero.com/RADS...toren_(Delphi)
https://docwiki.embarcadero.com/RADS...altete_Records (die deutsche Hilfe ist leider kein Hilfe und strotzt nur so vor Fehlern)
https://docwiki.embarcadero.com/RADS...anaged_Records
https://www.delphipraxis.net/202477-...peratoren.html
https://www.delphipraxis.net/203202-...t-records.html
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (Gestern um 17:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.877 Beiträge
 
Delphi 12 Athens
 
#3

AW: EMB DCE 12 - class und record zusammen, um Operatoren gemeinsam zu nutzen ?

  Alt Gestern, 17:59
Delphi-Quellcode:
type
  TMyClass = class
  private
    FRefCount: Integer;
  public
    ...
    procedure Test;
  end;

  TRecordForMyClass = record
  private
    FClass: TMyClass;
  public
    // Speicherverwaltung des Records
    class operator Initialize(out Dest: TRecordForMyClass);
    class operator Finalize(var Dest: TRecordForMyClass);
    class operator Assign(var Dest: TRecordForMyClass; const [ref] Src: TRecordForMyClass);
    // Zuweisungen und Casts (implizit oder explizit) zwischen Record und Klasse oder andersrum
    class operator Implicit(a: TMyClass): TRecordForMyClass;
    class operator Implicit(a: TRecordForMyClass): TMyClass;
    ...
    // Property&Methoden hier nochmal deklarieren und durchreichen, damit zum Aufruf die Klasse nicht erst rausgeholt werden muß.
    procedure Test;
  end;
In diesen Record lässt sich die Klasse reingeben und dort Operatoren nutzen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 02:33 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