Hallo, nochmal!
Ich habe jetzt meine StringGrids, Integer und Set in einem record zusammengefasst und dann einen InfoFeld: array[1..6] of TInfoFeld erstellt. Dadurch werden viele Stellen besser lesbar, aber für das SelectCell-Ereignis habe ich immer noch keine richtige Lösung, nur einen neuen Workaround:
Code:
procedure TForm1.StringGridASelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
var
n, i: Integer;
begin
with Sender as TStringGrid do
for i := 1 to 6 do
if InfoFeld[i].StringGridA = TStringGrid(Sender) then
begin
n := i;
Objects[ACol, ARow] := TObject(not Boolean(Objects[ACol, ARow]));
if Boolean(Objects[ACol, ARow]) then
if InfoFeld[n].Anzahl < 6 then
begin
Inc(InfoFeld[n].Anzahl);
...
Include(InfoFeld[n].ElementeSet, ...);
...
end
Die Position des SGA im Array wird also getestet. Gibt es einen direkten Zugriff auf den Namen des auslösenden StringGrids? Wenn nicht, wie mache ich die denn "bekannt"?