Можно ли выделить выделение в моем StrinGrid? Я хотел бы только разрешить пользователю выбирать ячейки по горизонтали, даже если мышь может перемещаться вверх и вниз при выборе, я хочу, чтобы stringgrid показывал выделение только в строке, где был MouseDown. Итак, когда пользователь хочет выбрать диапазон ячеек, он нажимает на мышь, перетаскивает мышь вправо (или влево), видя, как ячейки выбираются один за другим, а затем появляется событие MouseUp. Во время перетаскивания я не хочу, чтобы пользователь видел другие строки (чем тот, где началось перетаскивание), когда он перемещает мышь. Предполагаю, что я должен что-то сделать в onMouseMove из StringGrid ... но как?Выбор силы ячеек в StringGrid - Delphi
Мой код до сих пор:
// this draws a focus rect around the selected cell (DefaultDrawing=false)
procedure TForm2.sgDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
State: TGridDrawState);
begin
if (gdFocused in State)or(gdSelected in State) then
begin
sg.Canvas.Pen.Color:=$00FFEECC;
sg.Canvas.MoveTo(Rect.Left,Rect.Top);
sg.Canvas.LineTo(Rect.Right,Rect.Top);
sg.Canvas.LineTo(Rect.Right,Rect.Bottom);
sg.Canvas.LineTo(Rect.Left,Rect.Bottom);
sg.Canvas.LineTo(Rect.Left,Rect.Top);
end
else
begin
sg.Canvas.Brush.Color:=clWhite;
sg.Canvas.FillRect(Rect);
end;
end;
procedure TForm2.sgMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
myrow:=sg.Row;
mycol:=sg.Col;
end;
procedure TForm2.sgMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
sg.Row:=myrow;
end;
Возможно ли это? Как я могу это сделать?
Спасибо, это работает. – user1137313