Guten Tag,
Ich möchte im Stringgrid eine Zelle komplett "Deselektieren".
Code:
StringGrid1.Selection := NoSelection ;
Führt leider nicht zum gewünschten Erfolg. Dieser entfernt nur die "Markierung", die Zelle ist aber immer noch selektiert (Bild).
Da das StringGrid kein "OnCellClick" Event verfügt muss ich das "SelectCell" Event verwenden.
Sobald nun aber der user im Grid scrollt wird nun mein "SelectCell" Event ausgelöst was nicht passieren darf.
Im Prinzip muss sich die letzte Coloum wie eine Checkbox verhalten. Wenn man Klickt wird der Wert darin verändert. Aber nicht beim Scrollen.
Delphi-Quellcode:
procedure TfrmCSV.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
const
NoSelection : TGridRect = (Left: -1; Top: -1; Right: -1; Bottom: -1);
begin
if ACol = StringGrid1.ColCount-1 then
begin
if StringGrid1.Cells[ACol,ARow] = 'Nein' then
begin
StringGrid1.Cells[ACol,ARow] := 'Ja';
end
else
begin
StringGrid1.Cells[ACol,ARow] := 'Nein';
end;
end;
StringGrid1.Selection := NoSelection ;
end;
Wie lässt sich dies bewerkstelligen ?
Mfg Int3g3r