Hallo mimi,
hab Dir mal auf die Schnelle eine kleine Komponente geschrieben. Diese habe ich von TEdit abgeleitet und hierfür ein Ereignis namens
OnPressEnter geschrieben. Dieses wird ausgelöst, wenn Du in diesem Edit die
Enter-Taste drückst:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70:
| unit MyEdit;
interface
uses Windows, Messages, SysUtils, Classes, Controls, StdCtrls;
type TMyEdit = class(TEdit) private FOnPressEnter: TNotifyEvent; protected procedure KeyPress(var Key: Char); override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property OnPressEnter: TNotifyEvent read FOnPressEnter write FOnPressEnter; end;
procedure Register;
implementation
constructor TMyEdit.Create(AOwner: TComponent); begin inherited Create(AOwner); end;
destructor TMyEdit.Destroy; begin
inherited Destroy; end;
procedure TMyEdit.KeyPress(var Key: Char); begin inherited; if assigned(FOnPressEnter) then if Key = #13 then begin Key := #0; FOnPressEnter(Self); end; Invalidate; end;
procedure Register; begin RegisterComponents('MyComponents', [TMyEdit]); end;
end.
procedure TForm1.MyEdit1PressEnter(Sender: TObject); begin caption := 'hello world'; end; |
Habe es auch getestet. Es funktioniert. Hoffe das hilft Dir weiter.
MFG
- Ernesto -
// Edit: Falls du Probleme hast dein Topic zu ändern, es muss heissen:
Eigenes Ereignis in eigener Klasse. Hey, nicht böse sein, war nur Spass

Aber Keldorn hat nicht Unrecht. Wenigsten der Topic sollte korrekt sein, damit andere auch das Thema finden.