题
我要寻找一个字符串电网,让我选择在网上的任何地方多个单元没有他们,相互毗邻,e.g按住Ctrl键点击各种细胞在网格上。或者,如果有人知道如何与标准Delphi的TStringGrid做到这一点。
任何指针将受到欢迎。
解决方案
虽然这里有很多能够更好的人,因为你还没有得到任何答案,我想我会试试看。
我不知道的方式有组件为你做这个。然而,当你控制单击单元格,事件OnSelectedCell被调用。 (我只是测试了。)你可以把代码中,增加了细胞的行和列,您保留所选择的行和列的列表中的事件处理程序。然后,在事件OnDrawCell,突出显示细胞:
procedure TForm1.StringGrid1DrawCell( Sender: TObject;
ACol: Integer;
ARow: Integer;
Rect: TRect;
State: TGridDrawState);
begin
if CellSelected( ARow, ACol) then // you write CellSelected() to refer to the list you're keeping
begin
StringGrid1.Canvas.Brush.Color := clYellow;
StringGrid1.Canvas.FillRect(Rect);
StringGrid1.Canvas.TextOut(Rect.Left,Rect.Top,StringGrid1.Cells[ACol,ARow]);
end;
end;
不隶属于 StackOverflow