Вниз
Скачать: 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
14-1082792163
Blackweber
2004-04-24 11:36
2004.05.16
Системы видеонаблюдения


1-1082651546
Vitalnet
2004-04-22 20:32
2004.05.16
Увидеть весь тект в выподающем меню


4-1079983789
Ангел.
2004-03-22 22:29
2004.05.16
LoadAccelerators


4-1079977295
Iks
2004-03-22 20:41
2004.05.16
Я научился создовать окна на WinAPI,


1-1083136333
Tornado
2004-04-28 11:12
2004.05.16
Как "склеить" строки?




   Наверх