AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Methode überschreiben + zusätzlicher parameter
Thema durchsuchen
Ansicht
Themen-Optionen

Methode überschreiben + zusätzlicher parameter

Ein Thema von Pseudemys Nelsoni · begonnen am 20. Aug 2004 · letzter Beitrag vom 20. Aug 2004
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Methode überschreiben + zusätzlicher parameter

  Alt 20. Aug 2004, 14:15
moin,

wie kann ich denn eine methode einer klasse überschreiben und einen zusätzlichen parameter noch mitgeben?

wenn die methode der vorgänger klasse sagen wir mal so aussieht:

procedure SendData(param1: Typ1); virtual; und dann möchte ich in der nachfolgerklasse folgendes machen:

Delphi-Quellcode:
procedure SendData(param1: Typ1, param2: typ2); override;

...

procedure TMyClass.SendData(param1: Typ1, param2: typ2);
begin
  inherited;
  // und halt weiteres tun...
end;

ist das möglich? muss ja irgendwie, ich möchte nämlich ein record übergeben
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#2

Re: Methode überschreiben + zusätzlicher parameter

  Alt 20. Aug 2004, 14:19
Hallo Pseudemys Nelsoni,
was genau klappt an Deinem Beipiel nicht,
wo hakt's denn?
How much wood would a wood-chuck chuck if a wood-chuck would chuck wood?
Check this out.
DANNYBOY
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#3

Re: Methode überschreiben + zusätzlicher parameter

  Alt 20. Aug 2004, 14:20
wenn du beide haben willst, dann pack ein overload dahinter (sollte auch im nachhinein noch klappen). brauchst du das ursprüngliche nicht mehr, könnte es mit reintroduce klappen, wobei ich nicht weiß, wie der zu einer änderung der parameterzahl steht.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#4

Re: Methode überschreiben + zusätzlicher parameter

  Alt 20. Aug 2004, 14:26
Moin,

Zitat:
was genau klappt an Deinem Beipiel nicht,
sag ich gleich

Zitat:
wenn du beide haben willst, dann pack ein overload dahinter
das ist ja das problem, original sieht die methode der vorgänger klasse so aus:

procedure DoActivate(Value: Boolean); override; wenn ich nun aber überschreiben will und einfach einen paremeter hinzufüge:

procedure DoActivate(Value: Boolean; TSSendDataRec: TTSSendDataRec); override; kommt:

Zitat:
[Fehler] tsSocketClass.pas(10): Deklaration von 'DoActivate' unterscheidet sich von vorheriger Deklaration
:\

was kann ich denn noch versuchen?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Methode überschreiben + zusätzlicher parameter

  Alt 20. Aug 2004, 14:37
Überschriebene Methoden müssen die gleichen Parameter haben. Da wirste so wenig machen können. Ich würd an deiner Stelle mein Konzept überdenken. Was genau hast du vor?
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#6

Re: Methode überschreiben + zusätzlicher parameter

  Alt 20. Aug 2004, 14:40
ich habe eine Klasse von TClientSocket abgeleitet, wenn also eine verbindung besteht(doactivate) möchte ich von der klasse heraus schon daten an den server senden...nur weiss ich nicht wie... das überschreiben von DoActivate(+parameter, was wohl nicht geht) macht mir genau solche probleme wie beim versuch ein ereignis (geht das überhaupt?)wie "OnConnect" zu überschreiben...

Edit: Hab statt 2ten parameter der funktion lieber n neues feld genommen. mal sehn obs so alles geht
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Marcel Gascoyne
Marcel Gascoyne

Registriert seit: 18. Nov 2003
Ort: Uetersen
271 Beiträge
 
Delphi 2005 Architect
 
#7

Re: Methode überschreiben + zusätzlicher parameter

  Alt 20. Aug 2004, 15:02
Zitat von Pseudemys Nelsoni:
moin,

wie kann ich denn eine methode einer klasse überschreiben und einen zusätzlichen parameter noch mitgeben?
Du musst die neue Methode mit reintroduce und overload definieren, z.b. so:

Delphi-Quellcode:
type
  TVorfahr = class(TObject)
  public
    procedure SendData(param1: Typ1; param2: Typ2); virtual;
  end;

  TNachfahr = class(TVorfahr)
  public
    procedure SendData(param1: Typ1; param2: Typ2; param3: Typ3); reintroduce; overload;
  end;

procedure TVorfahr.SendData(param1: Typ1; param2: Typ2);
begin
 ...
end;

procedure TNachfahr.SendData(param1: Typ1; param2: Typ2; param3: Typ3);
begin
  inherited SendData(param1,param2);
  ...
end;
Gruß,
Marcel
Marcel Gascoyne
Der Fehler sitzt immer vor der Tastatur
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#8

Re: Methode überschreiben + zusätzlicher parameter

  Alt 20. Aug 2004, 15:23
ahhh, vielen dank

noch eine frage dazu:

Zitat:
procedure TVorfahr.SendData(param1: Typ1; param2: Typ2);
begin
...
end;

procedure TNachfahr.SendData(param1: Typ1; param2: Typ2; param3: Typ3);
begin
inherited SendData(param1,param2);
...
end;
käme das inhertied nicht in die erste prozedur?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Methode überschreiben + zusätzlicher parameter

  Alt 20. Aug 2004, 15:24
Zitat von Pseudemys Nelsoni:
käme das inhertied nicht in die erste prozedur?

Nein, wieso denn? inherited hast immer mit der Vorfahrklasse zu tun. Du greifst ja vom Nachfahren auf den Vorfahren zu und nicht umgekehrt.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#10

Re: Methode überschreiben + zusätzlicher parameter

  Alt 20. Aug 2004, 15:29
achsoooo, schon klar, hab garnicht gelesen das das der vorfahr ist. hab mich auch schon gewundert wieso der nachfahre 2mal die gleiche prozedur (mit unterschiedlichen parametern) hat.

danke =)
Mario
MSN: cyanide@ccode.de
  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 12: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