AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi zurückgreifen auf Variablen in einer höheren Vererbungsstufe
Thema durchsuchen
Ansicht
Themen-Optionen

zurückgreifen auf Variablen in einer höheren Vererbungsstufe

Ein Thema von BAMatze · begonnen am 8. Jun 2009 · letzter Beitrag vom 8. Jun 2009
Antwort Antwort
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#1

zurückgreifen auf Variablen in einer höheren Vererbungsstufe

  Alt 8. Jun 2009, 09:59
Hallo und guten Tag an alle DP´ler,

Hab mal eine Frage zu der Vererbung, welche ich hier mit der SuFu und auch mit dem Tutorial der Delphi-Treff-Seite nicht vollständig beantworten kann. Vieleicht kann mir hier schnell jemand helfen.

Also ich habe eine Komponente mit 1 Edit und 1 Label. Diese werden in der Ursprungskomponente definiert und auch ihr zusammen Spiel (sprich das Label zeigt das gleich an, wie das Edit). Jetzt möchte ich von dieser Ursprungskomponente eine weitere Komponente ableiten, bei der ich einen gewissen Anhang an die Anzeige des Labels zusätzlich machen möchte. Hierbei gibt es aber ein paar Probleme.

Für alle die dies vieleicht nicht verstanden haben hier ein Beispiel:
Zitat:
In der Ursprungskomponente ist z.B. der Wert des Edit.Text = "2000" und somit hat auch das Label.Caption den Wert "2000".

In der abgeleiteten Komponente möchte ich nun, dass das Label einen Anhang bekommt, also Edit.Text ist immer noch "2000" aber das Label.Caption ist nun "2000m" also eine Erweiterung wurde angehängt.
Wie muss ich in der Ursprungskomponente das TEdit und TLabel deklarieren, damit ich in der Ursprungskomponente immer noch drauf zugreifen kann?

Vielen Dank
BAMatze

Ps.: oder muss ich eine Methode schreiben, die ich dann später überschreibe, in welcher ich dies handle?
2. Account Sero
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: zurückgreifen auf Variablen in einer höheren Vererbungss

  Alt 8. Jun 2009, 10:38
in deinem speziellen Fall wäre es das einfachste diese Funktion welche die Labelcaption setzt als virtual zu declarieren und in den protected Abschnitt zu verschieben:
Delphi-Quellcode:
TBase = class(...)
protected
  procedure UpdateLabelCaption(ANewCaption: String); virtual;
end;

procedure TBase.UpdateLabelCaption(ANewCaption: String);
begin
  Label.caption := ANewCaption;
end;
in der Ableitung sieht das ganze dann so aus:
Delphi-Quellcode:
TAbleitung = class(TBase)
protected
  procedure UpdateLabelCaption(ANewCaption: String); override;
end;

procedure TAbleitung.UpdateLabelCaption(ANewCaption: String);
begin
  inherited UpdateLabelCaption(ANewCaption + 'm');
end;
Entsprechend müsstest du natürlich im OnChange deines Edits (in der Basisklasse) die Methode UpdateLabelCaption aufrufen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: zurückgreifen auf Variablen in einer höheren Vererbungss

  Alt 8. Jun 2009, 10:51
Hallo SirThornberry,

genau daran hab ich ebend auch gearbeitet, aber ich hab immer versucht auf das Label direkt wieder zurückzugreifen. Deine Methode ist natürlich schön einfach. Dank dir, funzt so wie ich mir das Vorstelle.

Vielen Dank
BAMatze
2. Account Sero
  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 11:32 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