AGB  ·  Datenschutz  ·  Impressum  







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

Komponente ohne vererbung

Ein Thema von Christian18 · begonnen am 3. Jul 2006 · letzter Beitrag vom 3. Jul 2006
Antwort Antwort
Christian18

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

Komponente ohne vererbung

  Alt 3. Jul 2006, 19:15
Hallo,

ich will eine Komponente schreiben, die von keiner anderen Klasse erbt. Wie kann ich das machen??? Warum muss eine neue Komponente immer von einer anderen Klasse erben???

PS: Vielen Dank schon im vorraus, für die vielen antworten!



MFG Christian18
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Komponente ohne vererbung

  Alt 3. Jul 2006, 19:23
Schau dir mal an wieviel Code in den TComponent + Vorgängerklassen steckt, hast du Lust diesen Code in jeder Komponente zu haben?
BTW. kannst du, bei der Verwendung von Delphiklassen (class) keine Klassen ohne Superklasse erzeugen, da diese automatisch von TObject erbt.
Markus Kinzler
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#3

Re: Komponente ohne vererbung

  Alt 3. Jul 2006, 20:12
Eine Klasse ohne Vererbung? Bitteschön:

Delphi-Quellcode:
type
  TTest = object
    // ...
  end;
Das ist sozusagen ein Record mit Methoden. Erbt von überhaupt rein gar nix und hat deshalb auch überhaupt rein gar nix (Kein Konstruktor / Destruktor). Viel Spass beim Neuerfinden der modernen Delphi-Klassen und der VCL

(Anmerkung: Weiß nicht bis welche Version das unterstützt wird, unter D7 gings noch...)
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: Komponente ohne vererbung

  Alt 3. Jul 2006, 20:18
Zitat von Christian18:
ich will eine Komponente schreiben, die von keiner anderen Klasse erbt.
Warum?

Zitat von Christian18:
Warum muss eine neue Komponente immer von einer anderen Klasse erben???
Ok, ist gar kein Problem, Komponenten erben auch nichts. Schau dir einfach mal an, was die allgemeine Definition einer Komponente ist, dürfte ziemlich abstrakt sein. Da steckt kein Wort von Klasse drin.

Wenn du eine Klasse schreiben möchtest, die von keiner anderen Klasse erbt, stellt sich für mich die Frage warum du so etwas tun möchtest? Es macht keinen Sinn.
Um deine Frage (interpretier sie einfach mal so) zu beantworten, warum jede Klasse einen Vorfahren haben muss (sehen wir von TObject ab), der Grund ist einfach, schreib mal deinen eigenen Konstruktor und Destruktor und sorge dafür, dass die immer aufgerufen werden. Wenn mir dann noch sagst, warum du dann mit Klassen arbeitest...
Es hat einfach sehr viele Vorteile von Vorgängern zu erben, wenn man die nicht versteht, braucht man keine Klassen, aber keine Vorfahren macht imho null Sinn.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
peteress

Registriert seit: 6. Sep 2004
49 Beiträge
 
#5

Re: Komponente ohne vererbung

  Alt 3. Jul 2006, 20:38
Zitat von Christian18:
Hallo,

ich will eine Komponente schreiben, die von keiner anderen Klasse erbt.
Das geht schon per Definitionem nicht. Eine Klasse wird genau dann, also dann und nur dann als Komponente bezeichnet, wenn sie direkt oder indirekt von TComponent erbt. Erbt sie nicht von da, ist sie keine Komponente, und dann kannst du Code schreiben bis du schwarz wirst, sie wird nie wie eine Komponente funktionieren, weil andere Klassen, die eine Komponente erwaren (die IDE, der Objektinspektor, die Form), dann mit deiner Klasse nicht umgehen können. Das gilt auch dann, wenn du deiner Klasse alle Fähigkeiten von TComponent fein säuberlich wieder bei bringst.



Zitat von Christian18:
Wie kann ich das machen??? Warum muss eine neue Komponente immer von einer anderen Klasse erben???
Gar nicht. Die Vererbung sichert einer anderen Klasse zu, dass deine neue Klasse bestimmte Eigenschaften hat, und wie diese angesprochen werden. Erbt sie nicht von da, verweigert der Compiler zu Recht die Zusammenarbeit.
  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 16:57 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