Einzelnen Beitrag anzeigen

R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#1

Event in Komponente einbinden

  Alt 14. Jul 2009, 09:50
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!
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat