Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit TWinControl (https://www.delphipraxis.net/43712-problem-mit-twincontrol.html)

Mister X 7. Apr 2005 16:06


Problem mit TWinControl
 
Hallo,

ich hab ein Programm geschrieben das beim Klick auf bestimmte Buttons bestimmte wav-dateien abspielt. Die Buttons sind von 1-9 durchnummeriert. Jetzt hab ich das noch so ergänzt dass (eigentlich) auch die entsprechende Datei abgespielt wird, wenn man die Taste auf dem Nummernblock drückt. (Taste "1" spielt "1.wav" ab, Taste "2" "2.wav" usw.) Das funktioniert aber nicht.

Delphi (V7 Personal) zeigt unter dem Quelletxt an:

"...verbirgt virtuelle Methode vom Basistyp 'TWinControl'"

Wie bekomm ich das weg und warum funktionierts nicht?

die Prozedur sieht so aus:

Delphi-Quellcode:
procedure TForm1.KeyDown(Sender: TObject; var key: Word);
begin
if key = VK_NUMPAD0 then twert := '0';
//...1-9
sndPlaySound(PChar(twert+'.wav'), SND_ASYNC);
end;
twert ist als String definiert.

Die Namen und die vars im aufruf hab ich so in einem Tutorial gesehen. Da hats aber anscheinend so funktioniert .... jedenfalls hatten die das Problem nicht ...

Gruß
Mister X

Bernhard Geyer 7. Apr 2005 16:10

Re: Problem mit TWinControl
 
Indem du bei der Deklararation override ergänzt.

SirThornberry 7. Apr 2005 16:10

Re: Problem mit TWinControl
 
entweder du benutzt override um die ursprungsmethode zu überschreiben oder wenn das nicht beabsichtigt ist benenne deine Methode einfach um.

Mister X 7. Apr 2005 16:18

Re: Problem mit TWinControl
 
und was genau muss dann wo stehen?

Bernhard Geyer 7. Apr 2005 16:26

Re: Problem mit TWinControl
 
Dann schau mal in die Delphi-Hilfe zum Thema override.

Mister X 7. Apr 2005 16:39

Re: Problem mit TWinControl
 
ja das funktioniert leider nicht .... was da steht ....

"Unbekannte Anweisung: 'override'"

Delphi-Quellcode:
procedure KeyDown(...); override;
begin
.
.
.
end
Umbennen hat auch nichts gebracht ...

Muetze1 7. Apr 2005 17:26

Re: Problem mit TWinControl
 
Moin!

Das Override muss im Interface Teil bei der Deklaration in der Klasse stehen und nicht unten im Implementation Teil.

MfG
Muetze1

Bernhard Geyer 7. Apr 2005 17:29

Re: Problem mit TWinControl
 
Du sollst es ja bei der Deklaration in der Klassenmethode hinschreiben
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    ...
    procedure KeyDown(Sender: TObject; var key: Word); override;
  end;
Dein 2tes Beispiel
Delphi-Quellcode:
procedure KeyDown(...); override;
ist ja eine Prozedur und da kann es ja keine Überschriebene Version geben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz