Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - OnClick in eigener Komponente


Xion - So 19.11.06 12:20
Titel: OnClick in eigener Komponente
Hi

es gibt zwar schon diverse andre Topics mit diesem Thema, aber keine haben mir weitergeholfen. Ich hab eine eigene Komponente geschrieben (meine erste die soweit funktioniert ;) ).

mal ganz einfach:

Ich hab eine Compo1 mit einem Image, dann hab ich ein eine Compo2, die ist eine Liste von Compo1. Auf Compo1 ist ein Image. Jetzt will ich das Image.OnClick Event unter Compo2.OnClick bekommen und am besten noch die Nr. des Compo1 in der Liste. Geht das irgendwie? wenn ich das schreib bekomm ich keinen beep raus:


ganz grob
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
type TCompo1=class
...
FOnInfoClick: TNotifyEvent;
...

property OnInfoClick: TNotifyEvent read FOnInfoClick write FOnInfoClick;
...
constructor Comp1.Create;
begin
 ...
 Image.OnClick:=OnInfoClick;
 ...
end;

...

Compo2.Compo1[0].OnClick:=ClickProc;
...
procedure TForm1.ClickProc(Sender:TOBject);
begin
 beep;
end;


Xion - So 19.11.06 12:40

genauer: in der Compo1 kann ich die zugewiesen Proc wunderbar benutzen:


Delphi-Quelltext
1:
 Image.OnClick:=OnInfoClick; //wenn ich hier die Proc TCompo1.TestProc einbinde, funzts                    


aber wenn in der Compo2 sag


Delphi-Quelltext
1:
2:
3:
 
//Bars: array of TCompo1
Bars[0].OnInfoClick:=TestProc; //wenn ich hier die Proc TCompo2.TestProc einbinde, funzts nicht


Xion - So 19.11.06 14:03

Mein eigentliches Problem ist anscheinend, dass ich gar nicht auf das Image klicken kann!? Meine Compo2 ist nur ein Shape um die Compo1 Liste rum. Warum kann ich dann nicht auf das Image klicken?


Xion - So 19.11.06 14:46

lol, mit onmousedown statt onclick funzts