Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zwei OnClick-Events in einer Klasse (https://www.delphipraxis.net/14974-zwei-onclick-events-einer-klasse.html)

cYaONE 19. Jan 2004 15:09


Zwei OnClick-Events in einer Klasse
 
Servus,

Folgendes Problem:

Ich habe eine eigene Klasse von TScrollBox abgeleitet. Jetzt möchte ich, dass ich einer Methode meiner eigenen Klasse das OnClick-Event der TScrollBox zuweisen kann. Allerdings soll später, wenn die Komponente benutzt wird, das zuweisen einer anderen OnClick Funktion ebenfalls möglich sein ...

Könnt ihr mir helfen?

Danke schonmal!

Phoenix 19. Jan 2004 15:13

Re: Zwei OnClick-Events in einer Klasse
 
:wiejetzt:

Ich würde sagen:
Delphi-Quellcode:
MeineKompo.OnClick := Form1.meinOnClick(Sender: TObject);
Wenn es eine 'meinOnClick' - methode gibt sollte das klappen.

cYaONE 19. Jan 2004 15:22

Re: Zwei OnClick-Events in einer Klasse
 
Ich weise intern der Komponente eine OnClick Methode zu - und außerhalb will ich das ich so machen - also praktisch 2 Funktionen auf ein Ereignis.

Ich würde das gerne folgendermaßen lösen:

Delphi-Quellcode:
procedure TMeineKomponente.OnClick(Sender: TObject);
begin
  // Zuerst das externe Ereignis aufrufen
  inherited OnClick(Sender);
 
  // ...
end;
Aber das geht ja so nicht :(

Phoenix 19. Jan 2004 15:24

Re: Zwei OnClick-Events in einer Klasse
 
Andersrum gehts aber.

Du schreibst zuerst das, was intern passieren soll in die reguläre OnClick - Methode.

Dann erzeugst Du eine externe:

Delphi-Quellcode:
procedure TForm1.DeineKompoOnClick(Sender: TObject);
begin
  // .. hier ne Menge Code

  // ..und zuletzt die interne aufrufen:
  inherited;
end;

maximov 20. Jan 2004 10:02

Re: Zwei OnClick-Events in einer Klasse
 
Ich bin mir sicher, dass onClick aus der dynamischen methode Click aufgerufen wird:

siehe da
Delphi-Quellcode:
TControl = class(TComponent)
...
procedure Click; dynamic;
...
dh. einfach overriden:

Delphi-Quellcode:

type
  TDeineKompoOnClick = class(...)
    ...
    procedure Click; override;
  end;


procedure TDeineKompoOnClick .Click;
begin
  // .. hier ne Menge Code

  inherited; // original aufrufen ... unter anderem auch OnCLick generieren
end;
sollte gehen :)

mfg.


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