Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Funktion in Komponente überschreiben (https://www.delphipraxis.net/70285-funktion-komponente-ueberschreiben.html)

skunker 28. Mai 2006 09:07


Funktion in Komponente überschreiben
 
Hallo,

ich hab ein Panel gebastelt auf dem ich mehrere Images drauflege.

Das ist meine Komponente.

Wie kann ich in der Komponente auf das OnClick Ereignis eines Images reagieren ?


Danke!

mfg
skunker.

SirThornberry 28. Mai 2006 09:16

Re: Funktion in Komponente überschreiben
 
du musst einfch den Images eine OnClick-Methode zuordnen.

skunker 28. Mai 2006 09:24

Re: Funktion in Komponente überschreiben
 
hmm und wie mach ich das ?


ich hab ne funktion erstellt:

imageclicked();


und beim constructor

meinimage.OnClick:=imageclicked();

hinzugefügt nur sagt er mir:

Inkompatible Typen: 'TNotifyEvent' und 'procedure, untyped pointer or untyped parameter'

wo ist das Prob?

SirThornberry 28. Mai 2006 09:35

Re: Funktion in Komponente überschreiben
 
eine OnClick-Procedure ist vom Typ TNotifyEvent und das ist wie folgt definiert:
Delphi-Quellcode:
TNotifyEvent = procedure(Sender: TObject) of Object;
Das heißt deine Procedure muss einen Parameter vom Typ TObject haben und eine Procedure eines Objectes sein. z.B.:
Delphi-Quellcode:
procedure TDeineKlasse.ImageClicked(Sender: TObject);
Und beim zuweisen musst du die klammern dann weg lassen:
Delphi-Quellcode:
meinimage.OnClick:=imageclicked;

turboPASCAL 28. Mai 2006 09:36

Re: Funktion in Komponente überschreiben
 
zB. so:

Delphi-Quellcode:
interface

uses
  Windows,...;

type
  TForm1 = class(TForm)
    Image1: TImage;
  private
    { Private-Deklarationen }
    procedure onMyImgClick(Sender: TObject); // <---<<<
  public
    { Public-Deklarationen }
  end;

//...

implementation

//...

procedure TForm1.FormCreate(Sender: TObject);
begin
  Image1.OnClick := onMyImgClick;
  //...
end;

procedure TForm1.onMyImgClick(Sender: TObject);
begin
  // to do
end;

skunker 28. Mai 2006 10:27

Re: Funktion in Komponente überschreiben
 
ah Ok Danke. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 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 by Thomas Breitkreuz