Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.21;
Скачать: CL | DM;

Вниз

При Hint-e не работает Alt-F4   Найти похожие ветки 

 
BMouradov   (2006-04-11 10:46) [0]

Подскажите, когда на экране висит Hint, то Alt-F4 не закрывает программу. Делаю так:

   SetCapture(PControl(paintbox).Handle);
   R := Rect(...);
   mdvToolTipTrack.ToolTip[PControl(pbMap).Handle]:= "Hint";
   mdvToolTipTrack.ShowHint(PControl(pbMap).Handle, True);

Спасибо заранее.


 
mdw ©   (2006-04-11 16:36) [1]

Причина в SetCapture(PControl(paintbox).Handle);

Наверное, нужно ставить обработчик FormMessage. Что-то типа

   if (Msg.message = WM_SYSCOMMAND) and (Msg.wParam = SC_CLOSE) then Form.Close;


 
BMouradov   (2006-04-12 17:03) [2]

Спасибо, помогло!


 
BMouradov   (2006-04-13 15:29) [3]

Однако, при таком решении возникла другая проблема - при закрытии любого нового модального окна "крестиком" форма закрывается. Подскажите, нет ли всё-таки аккуратного решения?


 
mdw ©   (2006-04-13 18:43) [4]

Handle еще проверять.
Или копать MSDN на тему SetCapture. попробуй такой эксперимент, эффект такой же:
procedure TMainForm.Button2Click(Sender: PObj);
begin
   SetCapture(Panel.Handle);
end;

Или может вообще не использовать  SetCapture? Оно для paintbox, по моему, и не к чему. В примере я для treeview ставил, чтобы не  мерцало.


 
Vladimir Kladov   (2006-04-13 21:21) [5]

SetCapture - для захвата мыши. Имеет смысл, если перетаскивание мыши начинается в пределах окна, а продолжаться может за пределами. Например, вы карту так можете двигать, не обращая внимания на то, что курсор выехал за пределы своего окна. Удобно. Но это не должно бы быть привязано к вводу с клавиатуры. Тут что-то не то. Но если рецепт помогает, то правда должно быть достаточно проверить, что Handle в Msg тот, который должен быть.


 
BMouradov   (2006-04-14 12:44) [6]

SetCapture в хинтах используется вот для чего - чтобы хинт исчезал при уходе мыши или при открытии какого-либо диалога, надо описать метод onLeave, в котором хинт скрыть. Если не ставить SetCapture, то фокус переходит к хинту, вызывается onLeave, и хинт тут же скрывается.



Страницы: 1 вся ветка

Текущий архив: 2007.01.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.055 c
8-1145258401
Sub_Black
2006-04-17 11:20
2007.01.21
Bitmap=>Jpeg без модуля Jpeg соотвтственно.


15-1167337972
Expell
2006-12-28 23:32
2007.01.21
Наверно, баян


1-1164619913
AlexSt
2006-11-27 12:31
2007.01.21
Смена курсора при drag and drop от состояния управляющих клавиш


2-1167374809
VitV
2006-12-29 09:46
2007.01.21
Запрос


2-1167297116
DVM
2006-12-28 12:11
2007.01.21
Чем отличаются CopyMemory и MoveMemory в Delphi?