So funktioniert das nicht.
Du kannst nicht einfach ein Event einer Komponente mal eben so abändern.
Man sollte sich Komponenten wie Legosteine vorstellen - allgemeine Bausteine um daraus Anwendungen aufzubauen.
Wenn Komponenten aber verändert werden und damit direkt mit Code in deiner Anwendung in Verbindung stehen (Klasse TKunde) dann muss man die Komponente als "vermurkst" betrachten.
Also: Komponenten sind allgemeine Bausteine die so bleiben sollten wie sie sind,
während das Formular den Klebstoff zu der Anwendunglogik darstellt.
Man muss bei Komponenten auch zwischen der Klasse und den Objekten unterscheiden:
Es ist ziemlich aufwändig neue Komponenten-Klassen zu entwickeln.
Die Komponenten-Objekte können dagegen sehr leicht über Properties auf ihre jeweilige Aufgabe eingestellt werden.
Je weiter der Programmierer einer Komponenten-Klasse vorrausgedacht hat um so flexibler sind die Komponenten-Objekte einsetzbar.
Glücklicherweise kann jede Zelle eines Stringsgrids neben dem Text zusätzlich ein Objekt enthalten:
Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
var
sg : TStringGrid;
kunde : TKunde;
begin
sg := Sender as TStringGrid;
kunde := sg.Objects[ACol, ARow] as TKunde;
if Assigned(kunde) then
ShowMessage(kunde.Strasse + ','+kunde.PLZ+' '+kunde.Ort);
end;