![]() |
ondblclick von aussen
hallo zusammen,
ich habe ein form auf dem sich ein Button befindet. Zur Laufzeit wird ein Grid auf dem gleichen form erstellt welches, im dblclick diverse dinge erledigt. sprich ich habe wie kann ich dem klick-event des buttons dieses dblklick des grid übergeben, so dass beim butten-klick eben dieses griddblklick ausgeführt wird. Danke gruss KH |
Re: ondblclick von aussen
Der EventProperty die Methode zuweisen
|
Re: ondblclick von aussen
Zitat:
und wie sieht das syntaktisch aus? |
Re: ondblclick von aussen
Sofern es sich um kompatible Methoden handelt, kannst Du dem Button das Event direkt im OI zuweisen. Wenn nicht, musst Du den Doppelklick halt im ButtonClick-Event aufrufen.
|
Re: ondblclick von aussen
Zitat:
:-( wenn ich im : Form.bearbeitenButtonClick(Sender: TObject); begin mygrid.OnDblClick; end; schreibe bekomme ich einen fehler: Error: Wrong number of parameters specified for call to "<Procedure Variable>" |
Re: ondblclick von aussen
Ich habe heute kein Delphi zur Verfügung, aber schau Dir die Signatur des DblClick--Events einmal genau an, da müsste ja zumindest der Sender-Parameter drinstehen, d.h. der muss dann beim Aufruf mit übergeben werden.
|
Re: ondblclick von aussen
Zitat:
hab ich auch gerad versucht. mit nil oder self krieg ich ne exception; |
Re: ondblclick von aussen
Sei doch bitte so gut und poste mal kurz die Signatur des DblClick-Events (wie gesagt, ich kann heute nicht nachsehen).
[edit] Hab gerade über die Forensuche recherchiert, es wird wohl nur der Sender übergeben und keine weiteren Koordinaten oder so. Dann könnte der Aufruf z.B. so aussehen:
Delphi-Quellcode:
[/edit]
procedure TForm1.ButtonWuppdiClick(Sender: TObject);
begin //weiterer Code des Buttons ... //Aufruf der DblClick-Methode des Grids GridDblClick(Grid); end; |
Re: ondblclick von aussen
Zitat:
begin inherited dblClick; // mach dies und das .... end; |
Re: ondblclick von aussen
Was ist das denn für ein Grid? Wird da kein Parameter erwartet? Ansonsten schau nochmal oben, ich habe meinen letzten Post editiert.
|
Re: ondblclick von aussen
Zitat:
|
Re: ondblclick von aussen
GridDblClick(Grid);
funktioniert auch nicht, ich vermute mal weil das grid ja zur Laufzeit erstellt wird, oder ? |
Re: ondblclick von aussen
Die DblClick-Methode des Grids ist aber zugewiesen?
Delphi-Quellcode:
type
TForm1 = class(TForm) ... private FMyGrid: TGrid; procedure MyDblClick(Sender: TObject); //Deklaration der methode ... end; ... procedure TForm1.MyDblClick(Sender: TObject); begin //Hier der Code für den Doppelklick end; procedure TForm1.FormCreate(Sender: TObject); begin FMyGrid := TGrid.Create(self); ... FMyGrid.OnDblClick := MyDblClick; //Zuweisung der Methode zum Event end; |
Re: ondblclick von aussen
Zitat:
sorry hatte was verwechselt: FMyGrid.OnDblClick := MyDblClick; //Zuweisung der Methode zum Event die fehlermeldung lautet: Error: Incompatible types: got "untyped" expected "<procedure variable type of procedure(TObject) of object;Register>" |
Re: ondblclick von aussen
Und die Methode ist auch eine Methode von TForm1? Und die Signatur stimmt auch?
|
Re: ondblclick von aussen
Zitat:
procedure TForm1.MyButtonClick(Sender: TObject); und die Zuweisung: Fmygrid.OnDblClick := MyButtonClick(sender); //Zuweisung der Methode zum Event |
Re: ondblclick von aussen
Fmygrid.OnDblClick := MyButtonClick(sender);
|
Re: ondblclick von aussen
Zitat:
ergibt: Error: Wrong number of parameters specified for call to "MyButtonClick" :wall: |
Re: ondblclick von aussen
Wenn das eine Komponente ist, pack sie doch mal auf Dein Formular und mach im OI einen Doppelklick auf "OnDblClick". Die Signatur postest Du dann mal hier.
|
Re: ondblclick von aussen
Um was für ein Grid handelt es sich?
|
Re: ondblclick von aussen
Das frag ich mich auch schon die ganze Zeit.
|
Re: ondblclick von aussen
Zitat:
ist ein grid: welches zur Laufzeit erstellt wird:
Delphi-Quellcode:
die procedure aus dem Objektinspekor wäre :
TmyDBgrid = class(TDBgrid)
protected { Protected-Deklarationen } procedure DBlClick(); override; // Click überschreiben published { Published-Deklarationen } property OnDblClick; // veröffentlichtes OnClick-Event procedure TForm1.DBGrid1DblClick(Sender: TObject); |
Re: ondblclick von aussen
Da fehlt ja bereits der Sender-Parameter.
Zitat:
|
Re: ondblclick von aussen
Zitat:
mh wen ich den sender angebe, meckert er override an, und ohne das kann ich ja das event nicht überschreiben :-( |
Re: ondblclick von aussen
Da Du ja anscheinend die Sourcen hast, trag den Sender doch einfach ein und kompilier das enthaltende Package neu. Wobei mich schon ein wenig wundert, dass Delphi das so nicht angemeckert hat.
|
Re: ondblclick von aussen
Zitat:
das sind dann wohl die kleinen unterschiede von delphi und lazarus |
Re: ondblclick von aussen
Gut, bei Lazarus musst Du wohl die komplette Entwicklungsumgebung neu kompilieren, wenn ich das richtig verstanden habe.
|
Re: ondblclick von aussen
Zitat:
dann schreib ich diese eine Prodedure erstmal lieber doppelt :-( |
Re: ondblclick von aussen
Dann schreib doch einfach eine eigene Prozedur und weise diese beiden Events zu rufe diese in beiden Events auf.
|
Re: ondblclick von aussen
Zitat:
das ist wohl die beste Lösung. Ich danke dir gruss Kh |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:30 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