AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Eigenschaft eines Ahnen im Erben verstecken - geht das?
Thema durchsuchen
Ansicht
Themen-Optionen

Eigenschaft eines Ahnen im Erben verstecken - geht das?

Ein Thema von HeikoAdams · begonnen am 7. Mär 2008 · letzter Beitrag vom 8. Mär 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#1

Eigenschaft eines Ahnen im Erben verstecken - geht das?

  Alt 7. Mär 2008, 14:30
Hallo,
ich habe folgendes Problem:
Ich haben mir eine eigene Komponente von TDbEdit abgeleitet, um mir ein DbPassword-Edit zu erstellen, dass das Standardzeichen von Windows für Passwörter (Sternchen oder schwarzer Punkt) verwendet.
Jetzt möchte ich noch irgendwie die Eigenschaft PasswordChar des TDbEdits irgendwie verschwinden lassen oder zumindest unbrauchbar machen, hab aber keine Idee, wie ich das am besten bewerkstelligen kann.

Gruß

Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Eigenschaft eines Ahnen im Erben verstecken - geht das?

  Alt 7. Mär 2008, 14:42
Man kann Sichtbarkeiten erhöhen, aber nicht verringern.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Eigenschaft eines Ahnen im Erben verstecken - geht das?

  Alt 7. Mär 2008, 14:46
Diese Antwort habe ich befürchtet. Dann werde ich mir wohl was einfallen lassen müssen, um die Property unbrauchbar zu machen
  Mit Zitat antworten Zitat
NormanNG

Registriert seit: 1. Feb 2006
294 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Eigenschaft eines Ahnen im Erben verstecken - geht das?

  Alt 7. Mär 2008, 14:51
Hi,

Zitat:
Man kann Sichtbarkeiten erhöhen, aber nicht verringern.
Ist das sicher? Ich dachte immer, das hier geht und "versteckt" die property "test"?

Delphi-Quellcode:
type
  tTest1 = class
  private
    fTest : String;
  protected
  public
    property test : string read ftest;
  end;

  tTest2 = class(tTest1)
  private
    property Test;
  protected
  public
  end;
Immer wenn tTest2 verwendet wird, gibt es keinen Zugriff auf tTest2.Test (außerhalb der Unit)?
Gruß
Norman
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#5

Re: Eigenschaft eines Ahnen im Erben verstecken - geht das?

  Alt 7. Mär 2008, 14:54
Mit einem Cast auf die Vorgängerklasse kann man dann aber wieder wie eh und je auf die Property zugreifen. Des Weiteren meckert der Compiler immer rum, dass die Sichtbarkeit verringert wurde.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
NormanNG

Registriert seit: 1. Feb 2006
294 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Eigenschaft eines Ahnen im Erben verstecken - geht das?

  Alt 7. Mär 2008, 15:05
Zitat:
Mit einem Cast auf die Vorgängerklasse kann man dann aber wieder wie eh und je auf die Property zugreifen.
Das trifft ja aber immer zu und hat nicht mit diesem Einwand zu tun:

Zitat:
Man kann Sichtbarkeiten erhöhen, aber nicht verringern.
Wenn er die property "verstecken" will, kann er das tun.
Gruß
Norman
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Eigenschaft eines Ahnen im Erben verstecken - geht das?

  Alt 7. Mär 2008, 15:15
Hmm ... die Property PasswordChar ist um Ahnen als Protected deklariert. Füge ich meine Deklaration unter Private ein, meckert der Compiler
Zitat:
[Pascal Hinweis] DBPasswordEdit.pas(11): H2219 Das private-Symbol 'PasswordChar' wurde deklariert, aber nie verwendet
und die Property ist im Objektinspektor nach wie vor sichtbar.

Edit: Zitat aus der Delphi-Hilfe:
Zitat:
... So kann beispielsweise eine protected-Eigenschaft in einer abgeleiteten Klasse als public deklariert werden, nicht aber als private. ...
Sieht so aus, als hätte ich keine Chance, diese Property los zu werden, ohne in der Ahnen-Hierarchie herum zu basteln

Gruß

Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Eigenschaft eines Ahnen im Erben verstecken - geht das?

  Alt 7. Mär 2008, 16:12
Du kannst alternativ in der Vaterklasse die Getter und Setter Methoden anpassen. Prüfe den Typ der Instanz, und falls der anders ist als den der Vaterklasse, dann schmeiss eine Exception.
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Eigenschaft eines Ahnen im Erben verstecken - geht das?

  Alt 7. Mär 2008, 16:26
oder Du überschreibst die Property mit Getter und Setter und läßt diese ins Leere laufen!
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Eigenschaft eines Ahnen im Erben verstecken - geht das?

  Alt 7. Mär 2008, 16:52
dann doch lieber eine exception damit man sich nicht später wundert warum etwas anderes als erwartet passiert. Wenn eine Exception fliegt weiß man wenigstens sofort was los ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 23:39 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