Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как снять выделение в StringGrid

Delphi , Компоненты и Классы , TStringGrid и TDrawGrid

Как снять выделение в StringGrid


Если Вы хотете избавиться от выделенных ячеек TStringGrid, которые не имеют фокуса либо используются только для отображения данных, то попробуйте воспользоваться следующей небольшой процедурой.


procedure TForm1.GridClean(Sender: TObject);
var
  hGridRect: TGridRect;
begin
  hGridRect.Top := -1;
  hGridRect.Left := -1;
  hGridRect.Right := -1;
  hGridRect.Bottom := -1;
  (Sender as TStringgrid).Selection := hGridRect;
end;

Следующий код можно использовать например в событии грида OnExit:


var
  MyGrid: TStringGrid;
...
GridClean(MyGrid);

Перевод:

Код, который я предоставил, - это простой процесс сброса выбора в компоненте TStringGrid к пустому диапазону. Это может быть полезно, когда вы хотите очистить любые выделенные ячейки в таблице, особенно если они не имеют фокуса.

Давайте разбьем, что это код делает:

  1. Процедура GridClean принимает одиночный параметр Sender: TObject, который является общепринятой конвенцией в событиях Delphi.
  2. Она объявляет локальную переменную hGridRect типа TGridRect, которая представляет прямоугольную область внутри таблицы.
  3. Процедура устанавливает свойства Top, Left, Right и Bottom для hGridRect в -1. Это эффективно устанавливает прямоугольник в пустой диапазон, как если бы он не существовал.
  4. Затем она присваивает этот пустой hGridRect свойству Selection компонента TStringGrid, переданному в параметре (Sender as TStringgrid). Это эффективно очищает любые выделенные ячейки в таблице.

Рекомендуется вызывать эту процедуру в событии OnExit таблицы, которое запускается, когда пользователь покидает таблицу. Это обеспечивает очистку любых выделенных ячеек при выходе из таблицы.

Альтернативное решение:

Вместо использования отдельной процедуры можно использовать свойство Selection компонента TStringGrid и установить его в пустой диапазон в обработчике события OnExit:

procedure TForm1.MyGridExit(Sender: TObject);
begin
  MyGrid.Selection := TGridRect.Create(-1, -1, -1, -1);
end;

Это достигает того же эффекта, что и оригинальная процедура, но более компактно и легко читаемо.

В статье описывается простой способ отмены выделения ячеек в StringGrid, используя процедуру GridClean, которая может быть вызвана в событии грида OnExit.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: TStringGrid и TDrawGrid ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-20 00:40:10/0.0071768760681152/2