AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Private Variablen über Eigenschaft öffentlich machen
Thema durchsuchen
Ansicht
Themen-Optionen

Private Variablen über Eigenschaft öffentlich machen

Ein Thema von Christian18 · begonnen am 6. Mai 2008 · letzter Beitrag vom 6. Mai 2008
Antwort Antwort
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Private Variablen über Eigenschaft öffentlich machen

  Alt 6. Mai 2008, 19:56
Hallo,

wenn ich in einer Klasse eine Priavte Variable Deklariere und diese trotzdem öffentlich machen will, dann mache ich das so:

Delphi-Quellcode:
  published
    property DBGrid: TDBGrid Read FDBGrid Write FDBGrid;
Meine Frage ist nun, was bedeuten die folgenen Schlüsselwörter? Ich werde aus der Delphi Hilfe nicht so ganz schlau!

stored, default und nodefault Und dann habe ich auch noch eine andere Frage:

Wenn ich eine Eigenschaft nicht setze, wie kann ich einen Standartwert setzen? Kann ja mal sein, dass man vergisst eine Eigenschaft zu setzen. Ich habe es über Default probiert funktioniert aber leider nicht.

Bsp.:

    property FocusTextColor: TColor Read FFocusTextColor Write FFocusTextColor Default clBlack; MFG Christian18
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Private Variablen über Eigenschaft öffentlich machen

  Alt 6. Mai 2008, 20:05
default ist auch nicht der wert der genommen wird, wenn keiner gesetzt wird, sondern der Wert der nicht in der dfm gespeichert wird.
Du musst den wert im Konstruktor vorbelegen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Private Variablen über Eigenschaft öffentlich machen

  Alt 6. Mai 2008, 20:07
Hi,

stored, default und nodefault sind nur unter published wichtig und betreffen das Speichern in der DFM.

Defaultwerte werden nicht gespeichert, d. h. wenn der Wert, den du hinter default angegeben hast, da ist, wird es nicht in der DFM gespeichert (wenn keiner angegeben ist, ist z. B. bei Zahlen 0 default, bei Strings Leerstrings und bei Objekten nil. Auf diesen Wert solltest du dann auch im Create initialisieren.

Nodefault heißt, dass ein geerbter Defaultwert wieder entfernt wird.

Über stored kannst du angeben, ob es überhaupt in der DFM gespeichert werden soll. Ansonsten wird zwar in der DFM ein Eintrag angezeigt, dieser aber nicht gespeichert (sinnvoll z. B. bei ReadOnly-Werten, die zur Entwurfszeit angezeigt werden sollen), über stored false oder stored <Feld vom Typ Boolean>. Standardmäßig (ohne Angabe von stored) passiert das gleiche wie bei stored true.

Mfg
FAlter
Felix Alter
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#4

Re: Private Variablen über Eigenschaft öffentlich machen

  Alt 6. Mai 2008, 20:14
Hi,

kann man denn innerhalb der Klasse, wo die Eigenschaften Deklariert werden, prüfen ob die Eigenschaften gesetzt wurden?

MFG Christian18
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Private Variablen über Eigenschaft öffentlich machen

  Alt 6. Mai 2008, 20:17
Implementiere einen Setter
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Private Variablen über Eigenschaft öffentlich machen

  Alt 6. Mai 2008, 20:23
Zitat von Christian18:
kann man denn innerhalb der Klasse, wo die Eigenschaften Deklariert werden, prüfen ob die Eigenschaften gesetzt wurden?
Die Setter der Properties werden aufgerufen.
Ansonsten kann man noch 'Loaded' überschreiben und die (geladenen) Properties auswerten...
  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 08:24 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