AGB  ·  Datenschutz  ·  Impressum  







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

GetPropList weigert sich

Ein Thema von Medium · begonnen am 10. Jan 2012 · letzter Beitrag vom 5. Jun 2019
 
einbeliebigername

Registriert seit: 24. Aug 2004
140 Beiträge
 
Delphi XE8 Professional
 
#14

AW: GetPropList weigert sich

  Alt 11. Jan 2012, 00:10
Hallo,

Diese Warnung hatte ich nicht (Weiss ich recht genau, da ich mit einem Kompilat idR erst zufrieden bin, wenn 0 Fehler, 0 Warnungen und 0 Hinweise nach Erstellen da stehen.)
Aber als du es mit published probiert hast, muss es eine Warnung gegeben haben. Ansonsten sehr löblich.

Ich habe noch mal mein Rad2007 angeworfen und ein Test-Programm geschrieben. Beim Schreiben ist mir dann auch noch ein Fehler in deinem Code aufgefallen. In der Zeile for i := 0 to propCount do fehlt das -1 .

Folgender Sourcecode steht zur Diskussion.
Delphi-Quellcode:
program RttiProject1;

{$APPTYPE CONSOLE}

uses
  Classes,
  TypInfo;

type
  //{$M+} // Variante 1
  TTest= class//(TPersistent) // Variante 2
  strict private
    fTest: Integer;
  published
    property Test: Integer read fTest write fTest;
  end;
  //{$M-}

var
  Obj: TTest;
  List: PPropList;
  Count, I: Integer;

begin
  Obj:= TTest.Create;
  try
    Count := GetPropList(Obj, List);
    for I := 0 to Count- 1 do
      Writeln(List[I].Name);
  finally
    Obj.Free;
  end;
  Writeln('Press Enter');
  Readln;
end.
Wenn man den so kompiliert, mit dem Auskommentierten, gibt es folgende Warnung:
Code:
[DCC Warnung] RttiProject1.dpr(14): W1055 PUBLISHED verursachte, dass RTTI ($M+) zu Typ 'TTest' hinzugefügt wurde
Man sollte sich den Text auch mal durch lesen. Denn eigentlich ist das genau das was du willst. Trotzdem funktioniert das Programm nicht wie gewollt. Es bleibt bei GetPropList hängen (Nach 10 Sekunden hatte ich keine Lust mehr zu warten). Erst wenn man Variante 1 oder 2 ein kommentiert geht es wie gewollt. Wenn man ohne Variante 1 und 2 auf das published verzichtet hängt es auch. Wer lügt da nun. Die Warnung oder die Funktion. Ich Tippe auf den Compiler, der hat immer Schuld.

Einbeliebigername.
  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 12:14 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