2015-05-22 3 views
1

Я работаю с 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() и не работал. Единственное, что сработало, это отключение панорамирования диаграммы, но я не хотел бы этого делать. Я знаю, что должно быть решение, кроме этого.

Я продолжу пробовать и читать об этом.

Заранее спасибо.

+1

Либо всплывающее меню, либо модальный 'InputBox' есть сообщение мыши. Вместо того, чтобы показывать всплывающее окно непосредственно из обработчика событий OnClick, попробуйте только опубликовать пользовательское сообщение в своей форме и выполнить обработку в своем обработчике сообщений (то есть задержка после обработки мыши была обработана). –

+0

Я попробовал следующее: '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); ' с тем же результатом. –

ответ

5

Установить Chart1.CancelMouse := True после обработки щелчка, чтобы остановить график, чтобы начать режим панорамирования по умолчанию.

+0

Спасибо! он работал нормально !! –

+1

Вы должны принять ответ, если он разрешает вводный вопрос. – Yeray