Форум программистов, компьютерный форум CyberForum.ru

Lazarus

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 1, средняя оценка - 5.00
Hretgir
Нарушитель
173 / 70 / 2
Регистрация: 25.01.2012
Сообщений: 2,643
Записей в блоге: 17
#1

Всплывающее сообщение при выборе ячейки TStringGrid - Lazarus

22.12.2016, 15:25. Просмотров 197. Ответов 6
Метки нет (Все метки)

Скажите пожалуйста, можно-ли сделать всплывающее сообщение при выборе ячейки таблицы. Если да, то нужно, чтобы сообщение всплывало возле курсора. Заранее благодарен.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Joey
Джоуи Скалолазер
299 / 213 / 65
Регистрация: 05.05.2015
Сообщений: 1,396
Записей в блоге: 2
22.12.2016, 22:40     Всплывающее сообщение при выборе ячейки TStringGrid #2
Hretgir, на вкладке CommonControls есть PopupNotifier. У TStringGrid есть свойство OnClick:
Delphi
1
2
3
4
procedure TForm1.StringGrid1Click(Sender: TObject);
begin
  PopupNotifier1.ShowAtPos(Mouse.CursorPos.x, Mouse.CursorPos.y);
end;
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
22471 / 14648 / 4173
Регистрация: 22.10.2011
Сообщений: 25,951
Записей в блоге: 4
22.12.2016, 23:09     Всплывающее сообщение при выборе ячейки TStringGrid #3
Joey, это некорректное решение. Окно при его использовании появится, даже если кликнуть на свободную от ячеек область грида. Вопрос был про выбор ячейки.
Joey
Джоуи Скалолазер
299 / 213 / 65
Регистрация: 05.05.2015
Сообщений: 1,396
Записей в блоге: 2
22.12.2016, 23:15     Всплывающее сообщение при выборе ячейки TStringGrid #4
volvo, Вы правы, надо на OnSelectCell, судя по всему (теперь при щелчке на Fixed ячейках ничего не происходит, только при выделении ячейки и на старте программы, ну это Hretgir уже сам разберется)
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
22471 / 14648 / 4173
Регистрация: 22.10.2011
Сообщений: 25,951
Записей в блоге: 4
23.12.2016, 12:42     Всплывающее сообщение при выборе ячейки TStringGrid #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Joey Посмотреть сообщение
и на старте программы
Вот чтобы избежать этого самого поведения, что при старте программы срабатывает OnSelectCell, нужно не писать действия в обработчике OnSelectCell, а назначить свой метод:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
type
  { TForm1 }
  TForm1 = class(TForm)
    // тут хозяйничает сама IDE
 
  private
    // Добавляем свой метод, по сигнатуре совпадающий с OnSelectCell
    procedure MySelectCell(Sender: TObject; aCol, aRow: Integer;
      var CanSelect: Boolean);
  public
  end;  
 
// ...
 
procedure TForm1.MySelectCell(Sender: TObject; aCol, aRow: Integer;
  var CanSelect: Boolean);
begin
  PopupNotifier1.ShowAtPos(Mouse.CursorPos.x, Mouse.CursorPos.y);
end; 
 
procedure TForm1.FormShow(Sender: TObject);
begin
  StringGrid1.OnSelectCell := @MySelectCell; // и назначаем его при показе формы
end;
, тогда все станет работать, как и было задумано: при старте ничего отображаться не будет.
Hretgir
23.12.2016, 14:39  [ТС]
  #6

Не по теме:

Хотел сегодня заняться, но пришлось ехать наколенники покупать, маску хамелеон 2900р нормально, я в старом хамелеоне года 4 проработал, пока уезжая с командировки не оставил его в вагончике, объект доделали - я последний уезжал, думал всё норм будет поехал к родственникам в гости заехал, приехал, а хамелеона тю-тю. Такой-же взял, только дизайн изменился. Сейчас в ночь, а с завтрашнего начну делать. Уже начинал, но пока кроме пролистывания отлаженной заготовки и её разбора не пошло, пока так - читал, вспоминал что к чему. Всем спасибо за участие.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2016, 18:35     Всплывающее сообщение при выборе ячейки TStringGrid
Еще ссылки по теме:

Конфликт StringGrid1EditingDone с StringGrid1DblClick в TStringGrid Lazarus
Осуществление неравномерной таблицы TStringGrid Lazarus
Lazarus Залить картинку-значок в ячейки заглавного столбца TStringGrid
Lazarus Выделить ячейку TStringGrid
Lazarus Форматирование строк в TStringGrid

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Joey
Джоуи Скалолазер
299 / 213 / 65
Регистрация: 05.05.2015
Сообщений: 1,396
Записей в блоге: 2
23.12.2016, 18:35     Всплывающее сообщение при выборе ячейки TStringGrid #7
Цитата Сообщение от Hretgir Посмотреть сообщение
Хотел сегодня заняться, но пришлось ехать наколенники покупать, маску хамелеон 2900р нормально, я в старом хамелеоне года 4 проработал, пока уезжая с командировки не оставил его в вагончике, объект доделали - я последний уезжал, думал всё норм будет поехал к родственникам в гости заехал, приехал, а хамелеона тю-тю. Такой-же взял, только дизайн изменился. Сейчас в ночь, а с завтрашнего начну делать. Уже начинал, но пока кроме пролистывания отлаженной заготовки и её разбора не пошло, пока так - читал, вспоминал что к чему. Всем спасибо за участие.
Я, конечно, почти ничего не понял) но не за что

Цитата Сообщение от volvo Посмотреть сообщение
Вот чтобы избежать этого самого поведения, что при старте программы срабатывает OnSelectCell
Можно просто на старте избегать этого и все
Например, объявляем глобальную переменную:
Delphi
1
2
var
vstarted: boolean = false;
и при создании формы
Delphi
1
if not vstarted then vstarted := true;
А в обработчике OnSelectCell просто проверять сперва:
Delphi
1
2
if vstarted then
PopupNotifier1.ShowAtPos(Mouse.CursorPos.x, Mouse.CursorPos.y);
Это так, 1. для новичков, 2. как альтернатива, 3. для тех, кто не справится с назначением обработчиков событий (не самая тривиальная задача). Но метод volvo, конечно, лучше, избавляет от лишней операции проверки при каждом вызове обработчика.
Yandex
Объявления
23.12.2016, 18:35     Всплывающее сообщение при выборе ячейки TStringGrid
Ответ Создать тему
Опции темы

Текущее время: 04:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru