我要寻找一个字符串电网,让我选择在网上的任何地方多个单元没有他们,相互毗邻,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;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top