Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2019, 20:00   #1
ElenaKorneva
Пользователь
 
Регистрация: 09.04.2010
Сообщений: 17
По умолчанию Подчеркивание текста в Stringgrid при наведении

Здравствуйте.
Подскажите, как подчеркнуть текст в ячейках строки StringGrid ,если на эту строку навести мышкой (MouseMove)
ElenaKorneva вне форума Ответить с цитированием
Старый 05.07.2019, 13:19   #2
ElenaKorneva
Пользователь
 
Регистрация: 09.04.2010
Сообщений: 17
По умолчанию

Сама разобралась. Код может кому пригодится
Код:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
rect := StringGrid1.cellrect(acol, arow);
  if (gdFixed in State) then
  begin
     StringGrid1.Canvas.Brush.Color := StringGrid1.FixedColor;

  end
  else if (ARow = FHoverRow) then
  begin
     StringGrid1.Canvas.Font.Style := [fsunderline];
     StringGrid1.Canvas.Brush.Color := StringGrid1.Color;
     StringGrid1.Canvas.FillRect(rect);
     StringGrid1.Canvas.TextOut(Rect.Left+4, Rect.Top+4, StringGrid1.Cells[ACol, ARow]);
  end
  else
  begin
     StringGrid1.Canvas.Brush.Color := StringGrid1.Color;
     StringGrid1.Canvas.FillRect(rect);
     StringGrid1.Canvas.TextOut(Rect.Left+4, Rect.Top+4, StringGrid1.Cells[ACol, ARow]);
  end;
Код:
procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
  var
  rect: Trect;
begin
StringGrid1.MouseToCell(X, Y, col, row);
  FHoverRow := row;
  StringGrid1.Refresh;
end;
FHoverRow: integer
ElenaKorneva вне форума Ответить с цитированием
Старый 05.07.2019, 13:26   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от ElenaKorneva Посмотреть сообщение
Сама разобралась. Код может кому пригодится
Отлично!

вопрос.

Цитата:
Сообщение от ElenaKorneva Посмотреть сообщение
Код:
FHoverRow := row;
А разве не остаётся подчёркнутой та строка, где мышка была последний раз?
Может быть, нужно на событии ухода мышки со стрингрид заносить в FHoverRow значение -1 ?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.07.2019, 16:10   #4
ElenaKorneva
Пользователь
 
Регистрация: 09.04.2010
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Отлично!

вопрос.


А разве не остаётся подчёркнутой та строка, где мышка была последний раз?
Может быть, нужно на событии ухода мышки со стрингрид заносить в FHoverRow значение -1 ?
Строка подчеркнутой не остается, тк при перемещении курсора в другую строку row меняется и ARow становится не равной FHoverRow, то согласно условию строка перекрашивается уже без подчеркивания
ElenaKorneva вне форума Ответить с цитированием
Старый 05.07.2019, 17:19   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Спасибо за ответ.

Цитата:
Сообщение от ElenaKorneva Посмотреть сообщение
при перемещении курсора в другую строку row меняется и ARow становится не равной FHoverRow
OnDrawCell вызывается для всех ячеек грида, поэтому ARow примет все возможные значения от 0 до StringGrid1.RowCount-1

впрочем, главное, что
Цитата:
Сообщение от ElenaKorneva Посмотреть сообщение
Строка подчеркнутой не остается
раз работает, значит, всё хорошо.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подчеркивание текста в OpenOffice из Delphi PavelJ Помощь студентам 1 05.04.2019 13:17
Подчеркивание текста в OpenOffice из Delphi PavelJ Общие вопросы Delphi 1 05.04.2019 11:47
подчеркивание текста фиксированной длины kate158 HTML и CSS 2 04.05.2016 15:01
Подчеркивание текста в richtextbox Vault13 C# (си шарп) 1 02.07.2015 18:59
вывод текста при наведении на кнопку мимо Общие вопросы Delphi 3 04.07.2009 10:15