Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: Vladilen от 12 Октября 2021, 14:28:55

Название: Работа с таблицами
Отправлено: Vladilen от 12 Октября 2021, 14:28:55
Здравствуйте!
Помогите разобраться. При работе со строками таблицы скады меняю цвет выбранной строки ' Cell.Color := RGB(0, 100, 0); ' в событии ' _OnCellClick ' таблицы. Как написать возврат цвета при выборе другой строки?
Название: Re: Работа с таблицами
Отправлено: Simple-Scada от 12 Октября 2021, 19:34:06
Здравствуйте.

Цитировать
Как написать возврат цвета
Присвоить цвет clNone (без цвета):
Код
Cell.Color := clNone;
Если Вы таким способом реализуете собственное выделение, то учитывайте, что выделение увидят все подключенные к проекту клиенты. Т.е. один клиент нажмёт на строку, строка выделится в соответствии с созданным Вами скриптом и это выделение увидят все клиенты, даже те, которые ничего не выделяли в таблице.
Название: Re: Работа с таблицами
Отправлено: Vladilen от 13 Октября 2021, 05:50:06
Здравствуйте!
Этот метод не работает, т.к. в этот момент Cell.Color ссылается уже на другую строку.
Название: Re: Работа с таблицами
Отправлено: pan2000 от 13 Октября 2021, 10:12:13
 Здравствуйте.

Нужно запоминать координаты предыдущей ячейки, например в свойстве Tag таблицы (или отдельной переменной):
Код: (delphi)
begin
  with Table1 do begin
    if Tag >= 0 then                                               // для первого клика начальное значение Tag = -1 (нет предыдущей)
      GetCell(Tag div RowCount,Tag mod RowCount).Color := clNone;  // восстановить цвет предыдущей выбранной ячейки
    Tag := Cell.Col * RowCount + Cell.Row;                         // координаты текущей ячейки
    Cell.Color := RGB(0, 100, 0);                                  // изменить цвет выбранной
  end;
end.
Во вложении пример для подсветки отдельной ячейки и всей строки.
Название: Re: Работа с таблицами
Отправлено: Vladilen от 13 Октября 2021, 12:06:57
Спасибо!