Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   DoKeyPress überschreiben... (https://www.delphipraxis.net/134157-dokeypress-ueberschreiben.html)

Teekeks 16. Mai 2009 19:38


DoKeyPress überschreiben...
 
Hallo!
Ich Leite momentan eine Klasse von TCustomEdit ab und hab volgendes problem:
Ich würde gerne die function DoKeyPress überschreiben, das geht aber leider wie ich festgestellthabe nicht.
Das hier hab ich:
Delphi-Quellcode:
    function DoKeyPress(Var Message : TLMKey): Boolean; override;
{...}
function TMyDatumEdit.DoKeyPress(var Message: TLMKey): Boolean;
begin
  if not IsAlowed(char(Message.CharCode)) then exit;
  inherited;
end;
Was muss ich ändern?

gruß Teekeks

ps: es tut mir leid das ich euch so oft nerve, soll aber was für meinen Vater proggen und hab gerade Zeit... :D

Luckie 16. Mai 2009 19:40

Re: DoKeyPress überschreiben...
 
Was heißt "geht nicht"?

Teekeks 16. Mai 2009 19:44

Re: DoKeyPress überschreiben...
 
Zitat:

Zitat von Lazarus
/home/peter/lazarus/components/Edits/mydatumedit.pas(26,14) Error: There is no method in an ancestor class to be overridden: "TMyDatumEdit.DoKeyPress(var TLMKey):Boolean"


Luckie 16. Mai 2009 19:51

Re: DoKeyPress überschreiben...
 
Dann scheint es DoKeyPress in der Vorfahrenklasse nicht zu geben.

Aber warum hast du nicht gleich die Fehlermeldung gepostet? Wir sind hier doch keine Hellseher. :roll:

Teekeks 16. Mai 2009 19:58

Re: DoKeyPress überschreiben...
 
Zitat:

Zitat von Luckie
Dann scheint es DoKeyPress in der Vorfahrenklasse nicht zu geben.

Das interesante ist ja das es das doch gibt:
In TWinControl. Ist zwar nicht der nächste vorvahre, sollte doch aber trozdem gehn, oder?

himitsu 16. Mai 2009 20:19

Re: DoKeyPress überschreiben...
 
Zitat:

Zitat von Teekeks
Ist zwar nicht der nächste vorvahre, sollte doch aber trozdem gehn, oder?

Wenn es denn als überschreibbar markiert ist, dann ja.

Teekeks 16. Mai 2009 20:25

Re: DoKeyPress überschreiben...
 
Hmm stimt das ist es nicht...
Wie kann ich sonst VOR der behandlung der Taste eingreifen ohne OnKeyPress zu nemen?
Was ist der unterschied zwischen UTF8KeyPress und KeyPress (abgesehen von UTF8) und wann wird was aufgerufen?

himitsu 16. Mai 2009 20:37

Re: DoKeyPress überschreiben...
 
dieses hier wird im Delphi in DoKeyPress aufgerufen
Delphi-Quellcode:
procedure KeyPress(var Key: Char); dynamic;
vielleicht reicht es dir ja, wenn du das überschreibst.

ansonsten könntest du z.B. die WM_KEY-Nachrichten überschreiben

Teekeks 16. Mai 2009 20:46

Re: DoKeyPress überschreiben...
 
Schon, aber vorher wird DoKeyPress ausgefürt, und wenn mich nicht alles täuscht, wird dort schon die Key gesetzt.

Zitat:

Zitat von himitsu
ansonsten könntest du z.B. die WM_KEY-Nachrichten überschreiben

Wird unter Lazarus devenitiv LM_KEY heißen, aber: wie und wo muss ich die überschreiben?


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