Hallo,
bei ENTER, Pfeiltasten oder wenn das StringGrid den Focus verliert, wird OnSetEditText ausgelöst.
OnSetEditText wird aber auch bei jeder Taste ausgelöst.
Darum muss man noch prüfen ob der Inplace-Editor geschlossen wurde.
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); begin if not StringGrid1.EditorMode then Caption := Value; end; |
Weil aber das nicht funktioniert wenn mit der Maus in eine andere Zelle geklickt wird, ist noch eine Behandlung von OnSelectCell erforderlich.
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.StringGrid1SelectCell(Sender: TObject; Col, Row: Integer; var CanSelect: Boolean); begin Caption := Stringgrid1.Cells[Stringgrid1.Col,Stringgrid1.Row]; end; |
Dabei aber beachten das auf Stringgrid1.Col und Stringgrid1.Row zugegriffen wird,
denn das sind die Koordinaten der Zelle die verlassen wird.
Die Variablen Col und Row die von OnSelectCell angeboten werden
sind die Koordinaten der Zelle die selectiert wird.