Danke an Alle
@himitsu dein Ansatz hat mich auf die Lösung verwiesen.
Hier das Relevante
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
I : Integer;
begin
for I := 1 to StringGrid1.RowCount -1 do
begin
Btn[I] := TSpeedButton.create(self);
Btn[I].Caption := 'Löschen';
Btn[I].Name := 'Löschen' + inttostr(i);
Btn[I].parent := Stringgrid1;
Btn[I].visible := false;
Btn[I].Tag := 100 + I;
Btn[I].OnClick := MyClick;
FreeOnRelease;
end;
procedure TForm1.MyClick(Sender: TObject) ;
var
I:Integer;
begin
for I := 1 to StringGrid1.RowCount do
begin
if Sender = FindComponent('Löschen' + IntToStr(I)) then
begin
showmessage('Lösche Zeile ' + IntToStr(I) );
end;
end;
end;
Es funktioniert einwandfrei.
@Peter-Pascal
Ich bin auf dein Tip nicht eingegangen weil ich schon sehr tief an meiner Lösung gegraben habe.
Danke trotzdem.