Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c