Hallo
Ich habe leider schon länger nichts mehr geschrieben und versuch gerade wieder reinzukommen.
Mein aktuelles Problem ist dieses: Ich will eine Anzahl von Panels haben, die jeweils vier Label tragen. Mein erster Ansatz war dieser:
Delphi-Quellcode:
CStunde = class(Tobject)
public
Panel: TPanel;
id: string;
list: array[1..4] of TLabel;
Constructor Create(t,l,h,w: integer; form: TForm);
end;
den ich schon mit Hilfer der
DP bekommen habe. Mein Problem liegt jetzt darin, an das onclick ereigniss des Panels zu kommen. Im Endeffekt will ich damit zB. die ID als showmessage anzeigen oder ein weiteres Formular öffnen. Ich glaube mich zu erinner, dass ich früher bei dynamisch erstellen Komponenten einfach nur ein list[i].onclick:= myonclick(Self); schreiben konnte, wenn list als array[1..5] of TPanel und myonclick als procedure Myonlick(Sender: Tobject) definiert war.
Wenn ich das jetzt aber versuche, also z.B. mit
Delphi-Quellcode:
Constructor CStunde.create(t,l,h,w: integer; Form: TForm);
var
i: byte;
begin
panel := TPanel.Create(nil);
panel.OnClick :=myonclick(self)
bekomme ich
Zitat:
[Fehler] E2010 Inkompatible Typen: 'TNotifyEvent' und 'procedure, untyped pointer or untyped parameter'
Was habe ich falsch gemacht?
Alternativ habe ich mir überlegt, gleich von TPanel abzuleiten, wird mir beim self:= tPanel.create; natürlich gesagt, dass CSTunde und TPanel inkompatibel sind. Wahrscheinlich muss ich da mit inherited. o.ä. dran, aber ich habe leider schon zu lange nicht mehr ObjectOrientiert gearbeitet.
Es wäre also sehr nett, wenn mir jemand auf die Sprünge helfen könnte.
Erwarte das Beste und bereite dich auf das Schlimmste vor.