Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehlermeldung -> weiß nicht warum (https://www.delphipraxis.net/27789-fehlermeldung-weiss-nicht-warum.html)

brutus 15. Aug 2004 18:44


Fehlermeldung -> weiß nicht warum
 
mein programm funktioniert zwar aber es nervt trotzdem !

Code:
[Warnung] UTStack.pas(20): Methode 'Destroy' verbirgt virtuelle Methode vom Basistyp 'TObject'

ich denke dass es irgendwas mit nem destructor zu tun haben muss hier ist der qt:

Delphi-Quellcode:
  destructor destroy;
Delphi-Quellcode:
Destructor TStack.destroy;
begin
entferne;
inherited destroy;
end;

hier die procedure entferne
Delphi-Quellcode:
procedure TStack.entferne;
begin
WHILE NOT empty do reduce
end;

ich merke es geht immer wieter in den qt :lol:

Delphi-Quellcode:
function TStack.empty;
begin
result:=Kopf=NIL;
end;
und hier ist reduce

Delphi-Quellcode:
procedure TStack.reduce;
VAR h:PKnoten;
begin
IF NOT empty THEN
       BEGIN
       h:=Kopf;
       kopf:=kopf^.next;
       dispose(h);
       END;
end;

ihr merkt dass sich dass ewig weiter fortsetzen lässt nur soweit noch kopf ist ein record.

es wäre wirklich schön wenn ihr mir irgendeinen typ geben könntet !

Luckie 15. Aug 2004 18:46

Re: Fehlermeldung -> weiß nicht warum
 
Deklarier die Funktion mal als Delphi-Referenz durchsuchenoverride.

brutus 15. Aug 2004 18:48

Re: Fehlermeldung -> weiß nicht warum
 
jup jetzt funktionierts !

kannst du mir vielleicht sagen woran dass liegt?

Robert Marquardt 15. Aug 2004 18:52

Re: Fehlermeldung -> weiß nicht warum
 
Die Methode Destroy ist virtuell. Man kann sie also mit override ueberschreiben.
Das ist genau das Konzept der Objektorientierung.
Man erweitert ein Objekt implementiert eine neue Version einer Methode um die neuen Elemente zu behandeln.
Die alte Methode ist per "inherited" weiter erreichbar und ueblicherweise ruft man sie in der Implementierung der neuen Methode auf um die restlichen Elemente des Objektes behandeln zu lassen.

Hier wanrt dich Delphi das du eine neue Methode namens Destroy implementierst, die eben nicht die alte Methode ueberschreibt, sondern sie nur verbirgt. Die alte Methode ist daher auch nicht mehr aufrufbar.

brutus 16. Aug 2004 15:12

Re: Fehlermeldung -> weiß nicht warum
 
dankeschön


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