Einzelnen Beitrag anzeigen

Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#1

Panel mit 4 Labels von TPanel ableiten

  Alt 1. Mär 2007, 10:38
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.
  Mit Zitat antworten Zitat