AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Neue Komponente - Ereignis lässt sich nicht überschreiben!
Thema durchsuchen
Ansicht
Themen-Optionen

Neue Komponente - Ereignis lässt sich nicht überschreiben!

Ein Thema von smepal · begonnen am 16. Aug 2006 · letzter Beitrag vom 17. Aug 2006
Antwort Antwort
Benutzerbild von smepal
smepal

Registriert seit: 25. Okt 2005
Ort: Bechen
58 Beiträge
 
Delphi 2005 Personal
 
#1

Neue Komponente - Ereignis lässt sich nicht überschreiben!

  Alt 16. Aug 2006, 17:41
Wenn ich das Keydown ereignis meiner Kompo die als Vorlage ein TSringgrid hat überschreiben will
Procedure KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); override; bekomme ich folgende Fehlermeldung:

Deklaration von 'KeyDown' unterscheidet sich von vorheriger Deklaration!

Weiß jemand wodran das liegt?
Martin Krämer
Be water my friend!!!
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Neue Komponente - Ereignis lässt sich nicht überschreibe

  Alt 16. Aug 2006, 17:46
Hallo smepal,

die Originalmethode hat folgende Signatur:

procedure KeyDown(var Key: Word; Shift: TShiftState); override; Siehst du den Unterschied?

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von smepal
smepal

Registriert seit: 25. Okt 2005
Ort: Bechen
58 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Neue Komponente - Ereignis lässt sich nicht überschreibe

  Alt 16. Aug 2006, 17:49
Danke jetzt gehts!
Und wie mache ich das, wenn ich möchte, dass beim Aufruf einer Methode Variablen zurückgegeben werden?
Bsp. beim Doppelklick auf eine Listbox der ItemIndex?
Martin Krämer
Be water my friend!!!
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Neue Komponente - Ereignis lässt sich nicht überschreibe

  Alt 16. Aug 2006, 18:10
wohin soll er denn zurückgegeben werden? ich sehe in deiner frage im moment keinen sinn...
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von smepal
smepal

Registriert seit: 25. Okt 2005
Ort: Bechen
58 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Neue Komponente - Ereignis lässt sich nicht überschreibe

  Alt 16. Aug 2006, 18:17
bei einem KeyDown Ereignis wird ja zum Beispiel die Variable key wiedergegeben, das möchte ich nun mit meinen eigenen Variablen machen!
Martin Krämer
Be water my friend!!!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Neue Komponente - Ereignis lässt sich nicht überschreibe

  Alt 16. Aug 2006, 18:20
Zitat von smepal:
bei einem KeyDown Ereignis wird ja zum Beispiel die Variable key wiedergegeben, das möchte ich nun mit meinen eigenen Variablen machen!
Und wie würde as dann aussehen?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von smepal
smepal

Registriert seit: 25. Okt 2005
Ort: Bechen
58 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Neue Komponente - Ereignis lässt sich nicht überschreibe

  Alt 16. Aug 2006, 18:23
Delphi-Quellcode:
procedure TPlaylist.DblClick (var Trackinfo: TTracks);
begin
Trackinfo := gettracks(row);

end;
so in der Playlist Unit!
Aber das kann man ja nicht einfach so deklarieren!
Martin Krämer
Be water my friend!!!
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Neue Komponente - Ereignis lässt sich nicht überschreibe

  Alt 16. Aug 2006, 18:26
Hallo,

definiere dir eigene Events,
z.B. OnMyKeyDown, fang das Originale ab und rufe dann deines auf.


Heiko
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Neue Komponente - Ereignis lässt sich nicht überschreibe

  Alt 16. Aug 2006, 18:27
Die Methode an sich kannst du schon so deklarieren, diese kannst du aber nicht als Callback für den Event nutzen.
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Neue Komponente - Ereignis lässt sich nicht überschreibe

  Alt 17. Aug 2006, 08:01
Hallo,

Doch indem man das OnKeyDown in eine eigene Methode in
der Komponente umleitet und von dort aus
das andere Event feuert.

Ein Bsp. aus einem Programm.
Es wird der Doppelklick im StirngGrid abgefangen
und auf eine andere Methode umgeleitet.
Dort kann entschieden werden, ob der inplace-Editor angezeigt wird oder nicht.

Das OnWantEdit-Event enthält dafür 2 Return-Parameter,



Heiko


interface

TWantEditEvent = procedure (Sender: TObject; theCol: Longint;
var bCanEdit: Boolean; var EditLen: Integer) of object;


procedure DblClick; override;
procedure ActOnDblClick;

FWantEdit : TWantEditEvent;

property OnWantEdit: TWantEditEvent
read FWantEdit write FWantEdit;


implementation

procedure TEditGrid.DblClick;
begin
inherited DblClick;

ActOnDblClick;
end;


procedure TEditGrid.ActOnDblClick;
if Assigned(FWantEdit) then
begin
CanEdit:= True;
EditLen:= 255;
FWantEdit(Self, Col, CanEdit, EditLen);
if not CanEdit then Exit;
end;
Heiko
  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 18:28 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