Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Private Methoden ableiten (https://www.delphipraxis.net/73612-private-methoden-ableiten.html)

trashcandesign 20. Jul 2006 14:49


Private Methoden ableiten
 
Und schon hab ich mein nächstes Problem *g*

Ich benutzt immo ein JvDBGrid zur anzeige meiner Daten.
Da das JvDBGrid aber nicht hunderprozentig passt wollte ich eine Klasse davon ableiten und die entsprechende Funktionalität hinzufügen.

Soweit ich jetzt glesen und verstanden habe bastel ich eine abgeleitete Klasse so:
Delphi-Quellcode:
TMyJvDBGrid = class(TJvDBGrid)
Die Klasse JvDBGrid hat eine private Methode ShowColumnDialogClick und genau die will ich überschreiben:

Delphi-Quellcode:
private
procedure ShowColumnDialogClick; override;
Wenn ich das allerdings compilieren will meckert Delphi von wegen
Zitat:

Method 'ShowColumnDialogClick' not found in base class
Bei jeder public/protected Methode funktioniert das aber !?!

Kann man in Delphi nicht von privaten Methoden ableiten? Oder muss ich das ganz anders machen?


Gruß
trashcandesign

mkinzler 20. Jul 2006 14:53

Re: Private Methoden ableiten
 
Dazu dient die Sichbarkeitsstufe protected

Thorben77 20. Jul 2006 14:55

Re: Private Methoden ableiten
 
Zitat:

Zitat von trashcandesign
Kann man in Delphi nicht von privaten Methoden ableiten?

Bingo, private Methoden und Eigenschaften sind nur in der Klasse sichtbar, in der sie deklariert werden (und auch für andere Klassen, die in der selben Unit deklariert werden).

trashcandesign 20. Jul 2006 14:58

Re: Private Methoden ableiten
 
Gut, danke...

Hab ich dann irgendwie die Möglichkeit public non-virtual Methoden zu überschreiben ?

mkinzler 20. Jul 2006 15:02

Re: Private Methoden ableiten
 
Nein, wie steht das im Zusammenhang mit deiner obigen Frage?
Deklariere deine Methoden doch unter protected oder machen ein reintroduce.

trashcandesign 20. Jul 2006 15:08

Re: Private Methoden ableiten
 
@mkinzler

Die Methode ist in einer Jedi-Komponente deklariert, diese wollte ich nicht direkt umschreiben, sondern von ihr ableiten und dann umschreiben.
Die letzte Frage steh in dem Zusammenhang, dass in dieser Komponente die private Methode über eine öffentlich aufgerufen wird. Also wollte ich die ableiten und dann eine eigene Methode aufrufen, aber leider ist die öffentliche nicht virtual.

Das Prob ist, dass in dem Grid oben links ein kleine Pfeil ist. Klickt man auf den erscheint ein Dialogfenster in welchem ich die Spalten des Grid an- und abwählen kann. dieses Dialogfenster passt mir aber so nicht. Also muss ich irgendwie auf das Event reagieren, leider gibts dazu nichts im OI, das funktioniert.

Schreibe ich die Klasse direkt um geht auch alles ganz gut, aber ich wollte eben nicht die Klasse direkt umschreiben.

Bernhard Geyer 20. Jul 2006 15:23

Re: Private Methoden ableiten
 
Zitat:

Zitat von trashcandesign
Schreibe ich die Klasse direkt um geht auch alles ganz gut, aber ich wollte eben nicht die Klasse direkt umschreiben.

Ich würde in den Newsgroups der Jedi nachfragen ob man diese Methode evtl. auf Protected umsetzen kann da die dein o.g. Problem mit dem Dialog hast und einen eigenen Einsetzen willst. Wenn das gemacht wird kannst du ja deine Version aktualisieren und dann problemlos auch mit Updates der Jedi arbeiten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 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