AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Warnung W1055 PUBLISHED verursachte das Hinzufügen von RTTI
Thema durchsuchen
Ansicht
Themen-Optionen

Warnung W1055 PUBLISHED verursachte das Hinzufügen von RTTI

Ein Thema von Helmi · begonnen am 23. Mär 2014 · letzter Beitrag vom 23. Mär 2014
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

Warnung W1055 PUBLISHED verursachte das Hinzufügen von RTTI

  Alt 23. Mär 2014, 17:21
Hallo,

ich hab grad einer Klasse einen PUBLISHED-Abschnitt spendiert (für Properties). Danach erhalte ich diese Warnung:
Zitat:
[DCC Warnung] ZusammenfassenUnit.pas(25): W1055 PUBLISHED verursachte das Hinzufügen von RTTI ($M+) zu Typ 'TZusammenfassen'
Aber ich versteh die Warnung nicht (auch nicht die Hilfe dazu).
Was ist so "gefährlich" einer Klasse einen PUBLISHED-Abschnitt zu verpassen?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Warnung W1055 PUBLISHED verursachte das Hinzufügen von RTTI

  Alt 23. Mär 2014, 17:24
Die Warnung kenn ich jetzt auch noch nicht, aber ist die Klasse von TComponent TPersistent abgeleitet, oder wird sie sonstwie irgendwie serialisiert?

Wenn nein, dann ist Published eh nutzlos.


PS:
http://docs.embarcadero.com/products...ished_xml.html
http://docwiki.embarcadero.com/RADSt...e_%28Delphi%29
[add]
Und TComponent TPersistent wird auch mit {$M+} definiert.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (23. Mär 2014 um 17:28 Uhr) Grund: TComponent -> TPersistent
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Warnung W1055 PUBLISHED verursachte das Hinzufügen von RTTI

  Alt 23. Mär 2014, 17:26
Nix, aber wenn Du published-Properties deklarierst, werden RTTI-Infos hinzugefügt, nichts anderes besagt ja die Meldung. Siehe dazu auch http://docwiki.embarcadero.com/RADSt...n_%28Delphi%29
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.015 Beiträge
 
Delphi 12 Athens
 
#4

AW: Warnung W1055 PUBLISHED verursachte das Hinzufügen von RTTI

  Alt 23. Mär 2014, 17:28
Hallo,

ich hab grad einer Klasse einen PUBLISHED-Abschnitt spendiert (für Properties). Danach erhalte ich diese Warnung:
Zitat:
[DCC Warnung] ZusammenfassenUnit.pas(25): W1055 PUBLISHED verursachte das Hinzufügen von RTTI ($M+) zu Typ 'TZusammenfassen'
Aber ich versteh die Warnung nicht (auch nicht die Hilfe dazu).
Was ist so "gefährlich" einer Klasse einen PUBLISHED-Abschnitt zu verpassen?
Es ist nicht gefährlich. Damit published funktioniert, muss $M+ gesetzt sein. Ist es das nicht, macht der Compiler das implizit und meldet das mit dieser Warnung.

Du kannst also diese Warnung ganz einfach vermeiden, wenn du {$M+} in die Zeile vor die Klassendeklaration schreibst.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Warnung W1055 PUBLISHED verursachte das Hinzufügen von RTTI

  Alt 23. Mär 2014, 17:30
also ich hab ne Klasse von class abgeleitet (also von TObject)

ich bin´s gewohnt properties immer unter published unter zu bringen, auch wenn eigentlich nichts "veröffentlich" wird.
vermutlich reicht es auch unter public
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: Warnung W1055 PUBLISHED verursachte das Hinzufügen von RTTI

  Alt 23. Mär 2014, 17:39
Was ist so "gefährlich" einer Klasse einen PUBLISHED-Abschnitt zu verpassen?
Der Punkt ist, dass der von dir geschriebene Code so nicht funktionieren würde (warum wurde ja schon gesagt) und der Compiler dir das freundlicherweise bereinigt hat - aber das macht er nicht einfach stillschweigend.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Warnung W1055 PUBLISHED verursachte das Hinzufügen von RTTI

  Alt 23. Mär 2014, 17:41
Wohin legt man normalerweise bei Klassen dann die Properties?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.015 Beiträge
 
Delphi 12 Athens
 
#8

AW: Warnung W1055 PUBLISHED verursachte das Hinzufügen von RTTI

  Alt 23. Mär 2014, 17:43
Wohin legt man normalerweise bei Klassen dann die Properties?
Wenn sie von außen benutzbar sein sollen unter public.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#9

AW: Warnung W1055 PUBLISHED verursachte das Hinzufügen von RTTI

  Alt 23. Mär 2014, 17:44
Grundsätzlich reicht public aus - wofür published ist, kannst du ja nachlesen - wobei das durch die enhanced RTTI seit Delphi 2010 auch nur noch bedingt gilt. Man kann auch public standardmäßig dynamisch auslesen. Nur bei Komponenten, die im Objektinspector ihre Eigenschaften auflisten sollen, braucht man published (der macht das nämlich noch "oldschool" und nicht über enhanced RTTI).
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (23. Mär 2014 um 17:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Warnung W1055 PUBLISHED verursachte das Hinzufügen von RTTI

  Alt 23. Mär 2014, 17:51
Worin?
Nach dem, wie sichtbar die Property sein sollen.

Code:
private    nur in der eigenen Klasse sichtbar
protected  auch in Ableitungen sichtbar
public     öffenlich sichtbar
published  für die (alte) RTTI sichtbar und somit für die Serialisierungsfunktionen (wird in der DFM gespeichert)
NUR sollte man beachten, daß innerhalb einer UNIT die Sichbarkeiten von private und ptotected wie public arbeiten, darum wurd nun Nachfolgendes eingeführt

Code:
private
strict private    wie private, aber wirklich nur in der eigenen Klasse sichtbar
protected
strict protected  wie protected, aber wirklich nur in der eigenen Klasse und den Ableitungen sichtbar
public
published
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
Seite 1 von 2  1 2      


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 18:15 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