AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Referenz auf Recordtyp, wie TClass für Klassen
Thema durchsuchen
Ansicht
Themen-Optionen

Referenz auf Recordtyp, wie TClass für Klassen

Ein Thema von s.h.a.r.k · begonnen am 8. Mär 2010 · letzter Beitrag vom 8. Mär 2010
Antwort Antwort
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#1

Re: Referenz auf Recordtyp, wie TClass für Klassen

  Alt 8. Mär 2010, 10:52
Habe gerade einen, imho unschönen, Workaround gefunden:
Delphi-Quellcode:
RString = record
private
  FValue : Variant;
  procedure SetValue(const AVar: Variant),
public
  const RecordName = 'RString'; // Name des Records; muss immer manuel angepasst werden :-/
  const VarType = varString;
  property Value : Variant read FValue write SetValue;
end;

// ---------------------------------
// Wenn ich das nun irgendwo verwende:
var
  context : TRttiContext;
  typeInfo : TRttiType;
  prop : TRttiProperty;
  recordName : String
begin
  context := TRttiContext.Create();
  typeInfo := context.GetType(obj.ClassType);

  prop := typeInfo.GetProperty('RecordVar');
  recordName := prop.PropertyType.Name); // Liefert z.B. 'RString'

  if (recordName = RString.RecordName) then // Hier nun die Prüfung auf den passenden String
    ShowMessage('Juhu')
  else
    ShowMessage('Nicht gut.');
end;
Wenn ich nun RString ändern sollte, so bringt der Compiler einen Fehler, an der Stelle, an der ich dann RString.RecordName verwende. Das ist schon mal etwas besser, da ich dann den String nur einmal ändern muss. Aber so richtig zufrieden bin ich damit immer noch nicht.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  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 12:41 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