Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.038 c
1-1083311730
Ш-К
2004-04-30 11:55
2004.05.16
FreeAndNil


11-1047229006
b82
2003-03-09 19:56
2004.05.16
richedit


14-1082896430
Rouse_
2004-04-25 16:33
2004.05.16
Аккорды к Машине времени


8-1077631750
Neep
2004-02-24 17:09
2004.05.16
Кто знает как вписать текст в прямоугольник


1-1083073565
Sam Stone
2004-04-27 17:46
2004.05.16
Таскание формы за заголовок





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский