Вниз
Скачать: CL | DM;

HTCAPTION   Найти похожие ветки 

← →
Alpupil ©   (2004-05-02 21:37) [0]

Здрасте, у меня такая проблема я использую форму без заголовка (BorderSlyle=bsNone) и для того чтобы форму можно было перемещать перекрываю обработчик события tform1.WMNCHittest(var Messag:TWMNCHittest) в котором ставлю возвращаемое значение messag.result:= HTCAPTION. Проблема в том что контекстное меню (Popup) для формы и Hintы не работают. Подскажите пожалуйста как это можно исправить.
Я уже задавал этот вопрос (30.04.04 21:02)
Ответ №3
Dimaxx ©   (30.04.04 22:12) [3]
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,Y: Integer);
begin
ReleaseCapture;
Perform(WM_SysCommand,$F012,0);
end;

Пример  не работает

Ответ № 2
Юрий Зотов ©   (30.04.04 21:09) [2]
Прежде, чем вернуть HTCAPTION проверяйте, нажата ли левая кнопка мыши. Если нет - ничего сами не возвращайте, а вызывайте inherited

а в этом случае я попытался проверить какая кнопка мыши нажата через procedure TForm1.FormMouseDown() и потом вызывал tform1.WMNCHittest(var Messag:TWMNCHittest) в зависимости от нажатой кнопки передавал переменную Messag:TWMNCHittest как htCaption или HTCLIENT но тоже непомогло. :(  
пример моего кода
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);
Begin  buttn:= button;  end;

procedure tform1.WMNCHittest(var Messag:TWMNCHittest);
begin   if buttn = mbleft then Messag.Result := htCaption else begin
    Messag.Result := htClient; inherited; end;
end;

Буду благодарен если кто подскажет или работающий пример


← →
DVM ©   (2004-05-02 21:47) [1]


> Пример  не работает

Почему не работает? Работает. Специально проверил только что.


← →
Alpupil ©   (2004-05-02 21:52) [2]

к сожалению у меня не пашет и в дополнение если это кому-то прояснит картину я использую сворачивание моей проги в трей, но наврятли :(


← →
DVM ©   (2004-05-02 21:58) [3]

Погоди. У тебя может несколько разных обработчиков делают противоположные действия.
Начни с простого. Создай пустой проект - впиши код перетаскивания. Работает? Если да, ищем проблему у себя. Убери все обработчики WM_NCHITTEST и  прочие, которые могут повлиять на процесс перетаскивания.


← →
Alpupil ©   (2004-05-02 22:06) [4]

Спасибо в новом проекте без WM_NCHITTEST но с использованием
ReleaseCapture;
Perform(WM_SysCommand,$F012,0);
все работает спасибо всем кто потратил свое время :-)



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
1-1083144254
Koliaff
2004-04-28 13:24
2004.05.16
Распечатка PaintBox.


8-1077817254
Простой
2004-02-26 20:40
2004.05.16
Восстановление jpg-файла


9-1072360931
AlexCo
2003-12-25 17:02
2004.05.16
Спрайты!!!


1-1083143418
Ivolg
2004-04-28 13:10
2004.05.16
Компонент


1-1083513305
denis_group
2004-05-02 19:55
2004.05.16
Как очистить историю посещенных страниц.




   Наверх