Я работаю с teechart и delphi XE4. Я думаю, что моя проблема довольно простая, но я не могу найти решение.TChartSeries.onНажмите кнопку
В кратком примере у меня есть TChartSeries с обработчиком событий для события OnCLick. В моем коде для обработки событий, я следующее:
if Button=mbRight then
begin
clkSerie:=Sender;
clkValue:=ValueIndex;
GetCursorPos(P);
pm1.Popup(P.X,p.Y);
end;
Затем в pm1.MyAction.OnClick
st:=InputBox('Agregar nota','Ingrese texto','');
if st<>'' then
begin
clkserie.Marks.Item[clkValue].Text.Clear;
clkserie.Marks.Item[clkValue].Text.Add(st);
clkserie.Marks.Item[clkValue].Visible:=True;
end;
Он работает нормально, с единственной проблемой, которая, когда я выйти из эта процедура, еще в моей диаграмме без всплывающего меню или ввода, я нахожусь в состоянии «панорамирования», кажется, что диаграмма не видит мое событие MOUSE_UP.
Я попытался имитировать щелчки мыши с помощью mouse_event()
и не работал. Единственное, что сработало, это отключение панорамирования диаграммы, но я не хотел бы этого делать. Я знаю, что должно быть решение, кроме этого.
Я продолжу пробовать и читать об этом.
Заранее спасибо.
Либо всплывающее меню, либо модальный 'InputBox' есть сообщение мыши. Вместо того, чтобы показывать всплывающее окно непосредственно из обработчика событий OnClick, попробуйте только опубликовать пользовательское сообщение в своей форме и выполнить обработку в своем обработчике сообщений (то есть задержка после обработки мыши была обработана). –
Я попробовал следующее: 'if Button = mbRight then begin clkSerie: = Sender; clkValue: = ValueIndex; GetCursorPos (P); PostMessage (Self.Handle, WM_SERIE_CLICK, 0,0); конец; ' и, в обработчике сообщений ' SleepEx (200, false); pm1.Popup (P.X, p.Y); ' с тем же результатом. –