?
hallo,
also ganz genau das selbe ist es natürlich nicht. beim überschreiben einer methode ergäntzt man diese ja, manchmal komplett, aber manchmal möchte man nur um etwas ergänzen. dann schreibt man:
Firgendwas = i++;
...
//nach diesem code soll die funtkion wie die ursprügnliche weiterlaufen, schreibt man in pascal:
inherited; //oder inherited(Create) //ohne Create(AOwner); will man das der usrprüngliche code vor der ergänztung läuft macht man es andersrum:
inherited;
Firgendwas = i++;
wenn ich z. b. im builder die syscom message abfangen mache ich das in etwas so:
//Header.
class TForm1 : public TForm
{
__published: // Von der IDE verwaltete Komponenten
private: // Anwender-Deklarationen
public: // Anwender-Deklarationen
__fastcall TForm1(TComponent* Owner);
void __fastcall OnSysCommand(TWMSysCommand & SysCom);
protected:
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_SYSCOMMAND, TWMSysCommand, OnSysCommand)
END_MESSAGE_MAP(TForm)
};
//CPP.
void __fastcall TForm1::OnSysCommand(TWMSysCommand & SysCom)
{
switch (SysCom.CmdType)
{
case SC_CLOSE: Close(); break;
default: TForm::Dispatch(&SysCom);
//in delphi: else inherited;
}
}
teste mit diesem code etwas herum und du wirst die bedeutung erkennen. kommentiere z. b. das default einmal aus und versuche zur laufzeit die form auf dem desktop zu verschieben, zu vergrößern oder sonstige std-funktionalität auszuführen, bis auf schließen nix gewesen. lässt du das default aber drin, dann funktioniert alles ganz normal. dem dispatch mußte man in diesem fall &syscom übergeben, was du evt. bei deiner anwendung übergeben mußt weiss ich nicht und will es auch gar nicht wissen...
mfg
murph