Вниз
Скачать: 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.022 c
3-1082642368
Paranoik
2004-04-22 17:59
2004.05.16
Картинки и базы данных


1-1083317457
pavel_guzhanov
2004-04-30 13:30
2004.05.16
Опять про ocx


14-1082627627
Dmitriy O.
2004-04-22 13:53
2004.05.16
Можно ли составить схему ассеблеровского кода ?


1-1083004080
Nvart
2004-04-26 22:28
2004.05.16
Ошибка при чтении потока


7-1081003358
CAHEK
2004-04-03 18:42
2004.05.16
Как из Винды в проге открыть файл???




   Наверх