AGB  ·  Datenschutz  ·  Impressum  







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

Typen, Records einer Klasse vererben ?

Ein Thema von Nic2012 · begonnen am 24. Mai 2012 · letzter Beitrag vom 25. Mai 2012
Antwort Antwort
Seite 1 von 2  1 2      
Nic2012

Registriert seit: 2. Mai 2012
62 Beiträge
 
#1

Typen, Records einer Klasse vererben ?

  Alt 24. Mai 2012, 12:10
In einer Klasse wurde ein Record deklariert und wird innerhalb dieser Basisklasse benutzt.
In der Ableitung dieser Klasse ist in der eig. Anwendung der Record nicht mehr sichtbar. Als Workaround muss ich nun zusatzlich zur Unit mit der abgel. Klasse noch die Unit der Basisklasse hinzufügen.

Wie lässt sich so ein Record der Basisklasse also "weitervererben" ?

Ich benutze ausschl. D7pro.
  Mit Zitat antworten Zitat
silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#2

AW: Typen, Records einer Klasse vererben ?

  Alt 24. Mai 2012, 12:45
Wie lässt sich so ein Record der Basisklasse also "weitervererben" ?
Kann sein, dass ich Dich falsch verstehe, aber reicht es nicht, wenn Du die Sichtbarkeit des Records auf protected (oder höher) setzt?

Delphi-Quellcode:
type TMyRec = record
//[...]
end;

type TBase = class(TObject)
//[...]
  protected
    FMyRec : TMyRec;
//[...]
end;
Tobias
Bitte nicht hauen , ich weiß es nicht besser

Geändert von silver-moon-2000 (24. Mai 2012 um 12:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Typen, Records einer Klasse vererben ?

  Alt 24. Mai 2012, 13:00
Als Workaround muss ich nun zusatzlich zur Unit mit der abgel. Klasse noch die Unit der Basisklasse hinzufügen.
Musst du doch sowieso. Wie willst du sonst von der Basisklasse erben?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#4

AW: Typen, Records einer Klasse vererben ?

  Alt 24. Mai 2012, 13:08
Als Workaround muss ich nun zusatzlich zur Unit mit der abgel. Klasse noch die Unit der Basisklasse hinzufügen.
Musst du doch sowieso. Wie willst du sonst von der Basisklasse erben?
Ich denke, er meint, dass er in anderen Units, in denen er nur die abgeleitete Klasse verwendet, auch die Basisklasse in die Uses mit aufnehmen muss
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Typen, Records einer Klasse vererben ?

  Alt 24. Mai 2012, 13:13
Als Workaround muss ich nun zusatzlich zur Unit mit der abgel. Klasse noch die Unit der Basisklasse hinzufügen.
Musst du doch sowieso. Wie willst du sonst von der Basisklasse erben?
Ich denke, er meint, dass er in anderen Units, in denen er nur die abgeleitete Klasse verwendet, auch die Basisklasse in die Uses mit aufnehmen muss
In diesem Falle stimmt das. Bessere Möglichkeit wäre, die Record Definition in eine eigene Unit auszulagern.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Nic2012

Registriert seit: 2. Mai 2012
62 Beiträge
 
#6

AW: Typen, Records einer Klasse vererben ?

  Alt 24. Mai 2012, 13:26
Der Record ist als Typ in der Basisklasse deklariert und wird u.a. als Ruckgabewert einer Funktion (A) innerhalb der Basisklasse benutzt. In meiner Anwendung benutze ich aber nur noch die abgeleitete Klasse. In der Anw.-Implementation möchte ich aber die Funktion(A) benutzen, kann ich aber keine Variable von diesem Record-Typen solange deklarieren, bis ich wieder die Unit mit der Basisklasse und dem Record-Typen hinzufüge.

Den Typen in eine eigne Unit zu verschieben, habe ich auch schon gedacht. Aber ich sehe diesen Record-Typ nur im Kontext der Basisklassen und deren Ableitungen.

Geändert von Nic2012 (24. Mai 2012 um 13:28 Uhr)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

AW: Typen, Records einer Klasse vererben ?

  Alt 24. Mai 2012, 13:37
Wo ist das Problem?
Delphi-Quellcode:
unit BasisKlasse;

type
  TMeinRecord = record
    ...
  end;

  TBasisKlasse = class(...)

  end;
Der Record ist für jeden sichtbar, der die Unit BasisKlasse einbindet.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Typen, Records einer Klasse vererben ?

  Alt 24. Mai 2012, 13:41
Delphi-Quellcode:
unit BasisKlasse;

type
  TBasisKlasse = class(...)
  private type
    TMeinRecord = record
    end;
  private
    FMeinRecord: TMeinRecord;
  public
    ...
  end;
Oder protected statt private , bzw. strict protected oder gar strict private .


Man braucht nur mindestens ein Delphi 2006 / TDE
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (24. Mai 2012 um 13:44 Uhr)
  Mit Zitat antworten Zitat
Nic2012

Registriert seit: 2. Mai 2012
62 Beiträge
 
#9

AW: Typen, Records einer Klasse vererben ?

  Alt 24. Mai 2012, 14:04
@shmia
Genauso habe ich es in der Basisklasse gemacht, der Compiler kennt in der 3.Unit wo ich Anwendung implementiere und nur die Unit der Ableitung einbinde, den Record-Typen aber nicht.

@himitsu
Habe nur D7 pro
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Typen, Records einer Klasse vererben ?

  Alt 24. Mai 2012, 14:09
*dealer-blick-aufsetz-und-mantel-aufmach*
http://www.delphipraxis.net/144997-s...hi-2006-a.html
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  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 15:38 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