Hallo,
Wenn der Anwender auf die Spalte 0 des StringGrids klickt, soll die ganze Zeile markiert werden.
Jetzt habe ich folgendes Problem: Wenn der Anwender irgendwo ins stringgrid klickt und danach in die Spalte 0, reagiert mein Programm nicht. Erst beim zweiten Klick auf die Spalte 0 wird die ganze zeile markiert. Wenn der Anwender gleich danach in einer anderen Zeile in spalte 0 klickt, wird die ganze Zeile sofort markiert. Sobald der Anwender aber wieder irgendwo anders ins Stringgrid klickt und danach in Zeile 0, tritt das Problem wieder auf?
Hat dafür einer eine Erklärung?
Hier ist der Programm-Code:
Delphi-Quellcode:
procedure TForm1.GridSelectCell( Sender : TObject;
ACol,
ARow : Integer;
var CanSelect : Boolean);
begin
if Grid.cells[1,1] = '' then
exit
else
SelectRowInCol0(Acol,ARow,0);
end;
procedure TForm1.SelectRowInCol0(const ACol, ARow, titelzeile : integer);
begin
if (ACol=0) and (ARow>titelzeile) then begin
Grid.Options := Grid.Options + [goRowSelect];
Grid.Options := Grid.Options + [goRangeSelect];
end
else begin
Grid.Options:= Grid.Options - [goRowSelect];
Grid.Options:= Grid.Options - [goRangeSelect];
end;
end;