AGB  ·  Datenschutz  ·  Impressum  







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

erweitertes Record in abgeleiteter Klasse

Ein Thema von Berni68 · begonnen am 17. Feb 2010 · letzter Beitrag vom 17. Feb 2010
 
Benutzerbild von himitsu
himitsu

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

Re: erweitertes Record in abgeleiteter Klasse

  Alt 17. Feb 2010, 09:43
Gibt es nicht ... ein Record läßt sich nicht nachträglich verändern.

Es ist grundsätzlich nicht möglich irgendwelche Typen in ihrer Größe nachträglich zu verändern.
Selbst bei Klassen geht sowas nicht, abgesehn von den Class-Helpern, aber diese fügen nur etwas ab der aktuellen Position hinzu, ohne vorher Deklariertes nachträglich zu ändern.
Genauso ist es bei Forward-Deklararionen.

Das Einzige, welches möglich wäre, ist eine nachträgliche Typkonvertierung,
aber dabei muß man höllisch aufpassen, daß man am Speichermanagement nicht zerschießt.
Delphi-Quellcode:
type
  TMyBasisRecord = record
    ...
    variabel: record
      data: array[0..1023] of byte;
    end;
  end;

  TMyChangedRecord = record
    ... // genau gleiche Deklaration, wie vorher
    variabel: record
      ... // aber nicht mehr, als 1024 Byte (siehe andere Deklaration)
           // und Strings, dynamische Arrays, Interfaces sind verboten,
           // es sei denn man fügt genau an der Selben Stelle im Basis-Record
           // einen Dummy von gleichem Typen ein
    end;
  end;

  TMyAdditionRecord = record
    ... // aber nicht mehr, als 1024 Byte (siehe andere Deklaration)
         // und Strings, dynamische Arrays, Interfaces sind verboten,
         // es sei denn man fügt genau an der Selben Stelle im Basis-Record
         // einen Dummy von gleichem Typen ein
  end;

var X: TMyBasisRecord;

  TMyChangedRecord(X)
  TMyAdditionRecord(X.variabel)
Beim VirtualTreeView wird z.B. die Variante mit dem TMyAdditionRecord für das .Data-Attribut der Nodes angewendet.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
 


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 14:51 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