Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Вниз

Почему не срабатывает событие?   Найти похожие ветки 

 
ПрогерШу   (2004-05-24 18:52) [0]

на форме PaintBox. У него обрабатываю такие события:
OnMouseDown, OnMouseMove и OnMouseUp. Нажимаю мышку но клавишу не отпускаю - OnMouseDown срабатывает. Начинаю вести мышу - OnMouseMove не срабатывает. Отпускаю - OnMouseUp тоже не срабатывает. Что может быть не так?


 
Zeqfreed ©   (2004-05-24 18:55) [1]

Ну если уверен, что ONMouseDown срабатывает, приведи код.
Так не очень понятно почему.


 
ПрогерШу   (2004-05-24 18:57) [2]


procedure TForm1.PaintBox2MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 if Button = mbLeft then
 begin
   if ssShift in Shift then
   begin
     fDraging := true; // точно работает
     SetCapture(Handle);

     CurrObject := TWeather.Create;

     CurrObject.FPaintOwner := PaintBox2;
     CurrObject.PenWidth := 1;
     CurrObject.PenColor := clGreen;

     CurrObject.Left := x;
     CurrObject.Top := y;
     CurrObject.Right := x;
     CurrObject.Bottom := y;

     CurrObject.PaintOwner.Canvas.DrawFocusRect(CurrObject.FRect);

     ObjectList.Add(CurrObject);
   end;
 end;
end;

procedure TForm1.PaintBox2MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
var ARect: TRect;
begin
 if FDraging then
 begin
   CurrObject.PaintOwner.Canvas.DrawFocusRect(CurrObject.FRect);

   CurrObject.Right := x;
   CurrObject.Bottom := y;

   CurrObject.PaintOwner.Canvas.DrawFocusRect(CurrObject.FRect);
 end;
end;

procedure TForm1.PaintBox2MouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 if FDraging then
 begin
   FDraging := false;
   CurrObject.PaintOwner.Canvas.DrawFocusRect(CurrObject.FRect);

   CurrObject.Right := x;
   CurrObject.Bottom := y;

   InvalidateRect(CurrObject.PaintOwner.Canvas.Handle, @CurrObject.FRect, False );

   TWeather(CurrObject).Ox := X;
   TWeather(CurrObject).Oy := Y;

   CurrObject.Right := TWeather(CurrObject).Ox;
   CurrObject.Bottom := TWeather(CurrObject).Oy;

   TWeather(CurrObject).Ox := CurrObject.FRect.Left;
   TWeather(CurrObject).Oy := CurrObject.FRect.Top;

   CurrObject.Left := TWeather(CurrObject).Ox;
   CurrObject.Top := TWeather(CurrObject).Oy;
   
   PaintBox2.Refresh;
 end;
end;


 
ПрогерШу   (2004-05-24 19:08) [3]

Самое интересное что срабатывает событие OnMouseDown, а OnMouseMove и OnMouseUp только после повторного нажатия :(


 
ПрогерШу   (2004-05-24 19:12) [4]

Нашел, вот как надо было написать:
SetCapture(PaintBox2.Canvas.Handle);



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

Форум: "Основная";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.039 c
14-1084980190
DillerXX
2004-05-19 19:23
2004.06.06
Звуки звуки пуки, блин...


1-1085378831
EXE
2004-05-24 10:07
2004.06.06
Опять насчёт EXE


1-1085548224
Vilux
2004-05-26 09:10
2004.06.06
RichEdit


6-1082358662
Вован_
2004-04-19 11:11
2004.06.06
Как на NT4 программно проверить, поднят ли VPN ?


14-1085149774
AlexKniga
2004-05-21 18:29
2004.06.06
Как садится муха на потолок?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский