Delphi TStringGrid多选,确定所选行

时间:2011-05-10 13:36:03

标签: delphi rows selected tstringgrid

无论如何,确定当前在多选TStringGridTCustomGrid中选择了哪些行。一个属性是理想的。

我知道在gdSelected事件中设置了DrawCell属性,

procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);

我可以检查AState gdSelected,并在某个地方跟踪这个,但这似乎很笨拙。

3 个答案:

答案 0 :(得分:3)

我猜你在谈论范围选择字符串网格,即goRangeSelectOptions的字符串网格。然后,您可以使用Selection属性。这(基本上)是TRect,您可以在其中找到范围选择中的左上角和右下角单元格。

答案 1 :(得分:1)

哦,我使用StringGrid.Selection.BottomRight.Y来确定行,StringGrid.Selection.BottomRight.X用于列。

答案 2 :(得分:0)

使用字符串网格选择属性$url = "http://serverA.co.za/getCookie.php"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // get headers too with this line curl_setopt($ch, CURLOPT_HEADER, 1); $result = curl_exec($ch); // get cookie // multi-cookie variant contributed by @Combuster in comments preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $result, $matches); $cookies = array(); foreach($matches[1] as $item) { parse_str($item, $cookie); $cookies = array_merge($cookies, $cookie); } var_dump($matches); 将为您提供最上面的选定行,StringGrid.Selection.top将为您提供选择停止的最终选定行。

示例:

如果您在字符串网格中从第3行到第6行中选择,那么StringGrid.Selection.bottom将为您提供3作为输出值StringGrid.Selection.top将为您提供6作为输出值,并且您可以获得剩余值通过从上到下迭代。