Hi,
hab auf ein Tpanel ein Stringgrid und eine Combobox gelegt. Jetzt soll die Combobox, je nach dem wo das Stringrid angklickt wird, ihre Position verändern.
Fehlermeldung: Methode Onclick in Basisklasse nicht gefunden. Die Methode ist aber vorhanden.
Ist mein Ansatz schon falsch?
Kann mir jemand helfen was mach ich falsch?
Delphi-Quellcode:
unit UStringGrid;
interface
uses
SysUtils, Classes, Controls, Grids, stdctrls, Graphics, extctrls;
type
TFehlerEvent =
procedure(Param1:
string)
of object;
TZstringgrid =class (Tstringgrid)
private
{ Private-Deklarationen }
protected
{ Protected-Deklarationen }
public
{ Public-Deklarationen }
x,y:integer;
published
{ Published-Deklarationen }
Procedure onclick(Sender:tobject);
override; <<<<<---------- Hier krieg ich Fehler: Methode Onclick
in Basisklasse nicht gefunden.
end;
TUStringGrid =
class(Tpanel)
private
{ Private-Deklarationen }
FOnFehler: TFehlerEvent;
protected
{ Protected-Deklarationen }
public
{ Public-Deklarationen }
cb:tcombobox;
sg:TZstringgrid;
constructor Create(AOwner: TComponent);
override;
procedure Paint;
override;
published
{ Published-Deklarationen }
property OnFehler: TFehlerEvent
read FOnFehler
write FOnFehler;
end;
procedure Register;
implementation
Procedure TZstringgrid.onclick(Sender:tobject);
begin
x:=col;
y:=row;
end;
procedure TUstringgrid.Paint;
begin
inherited;
cb.Repaint;
sg.width:=width;
sg.Height:=height;
end;
constructor TUstringgrid.Create(AOwner: TComponent);
begin
inherited;
sg:=tzstringgrid.Create(self);
sg.Parent:=self;
cb:=tcombobox.Create(self);
cb.Parent:=self;
Align:=alnone;
cb.Width:=sg.defaultcolwidth;
sg.width:=width;
sg.Height:=height;
Color:=clAppWorkSpace;
sg.Fixedrows:=0;
sg.Fixedcols:=0;
cb.BringToFront;
end;
procedure Register;
begin
RegisterComponents('
Zusätzlich', [TUStringGrid]);
end;
end.
Vielen Dank!