Ja - wobei das irgendwie nicht das verhalten "meiner" ersten Lösung erklärt - denn das Ereignis ist ja das gleiche.
Es ist die Erklärung für die Lösung von Rolf.
Nur dass dabei nicht noch sinnlos in die anderen globalen Variablen umkopiert wird.
Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
begin
Button1.Caption := IntToStr(ARow) + ' / ' + IntToStr(ACol) + ' / ' + StringGrid1.Cells[ACol, ARow];
Button1.Refresh;
end;
Natürlich gibt es für alles gefühlt 2 Milliarden Lösungen
Button1.Caption := ARow.ToString + ' / ' + ACol.ToString + ' / ' + StringGrid1.Cells[ACol, ARow];
Button1.Caption := Format('%d / %d / %s', [ARow, ACol, StringGrid1.Cells[ACol, ARow]);
Das kannte ich noch nicht
Wollte erst sagen, doch, weil du hast ja .....
Aber nee, das FixedRows steht bereits initial auf 1 und mußte somit doch nicht vorher einstestellt werden, z.B. auch im Objekt-Inspektor.
Aber ... eine Frage noch aus Interesse:
...
schreibst sondern das "var" mitten in die Schleife. Das mag kürzer sein aber ist das nicht unübersichtlicher ?
Inline-Variablen gibt es seit wenigen Jahren. (letzte 4-5 Delphi-Versionen, oder so)
Nja, das kann man so oder so sehn.
Persönlich sehe ich das grade für FOR-Schleifen einfach nur als genial an.
Es sind schon zu viele auf die blöde Idee gekommen, auf eine FOR-Variable außerhalb/nach der FOR-Schleife zuzugreifen, was man definitiv nicht tun sollte, weil gibt Probleme ... und was so nun auch garnicht mehr möglich ist.
https://docwiki.embarcadero.com/RADS...line-Variablen
https://www.delphipraxis.net/204421-...variablen.html
...
PS: In seinem Profil kann man seine Delphi-Version angeben (siehe links unter den Namen),
bzw. hier in diesem Unterforum war das beim Erstellen des Threads/ErsterPost auch möglich.
(
Delphi-Version: 5
steht da jetzt bei dir, siehe ganz oben, aber das ist auch die Standardangabe, wenn jemand es vergisst)