Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

KOLPanel жутко тормозит при перетаскивании   Найти похожие ветки 

 
Ciber SLasH ©   (2003-11-19 03:12) [0]

Делаю форму без заголовка, вместо него кинул KOLPanel и обрабатываю события от мыши для перетаскивания:

procedure TForm1.Panel1MouseDown(Sender: PControl;
 var Mouse: TMouseEventData);
begin
 if Mouse.Button = mbLeft then  // если кнопка левая...
   begin
     OldLeft := Mouse.X;  // запоминаю позицию крысы
     OldTop := Mouse.Y;
     Dragging := True     // и включаю режим двиганья ;)
   end
end;

procedure TForm1.Panel1MouseMove(Sender: PControl;
 var Mouse: TMouseEventData);
begin
 if Dragging then  // если режим двиганья включен
   begin
     NewLeft := Mouse.X;  // записываю новые координаты крысы
     NewTop := Mouse.Y;
     Form.Left := Form.Left + NewLeft - OldLeft;  // устанавливаю координаты окна
     Form.Top := Form.Top + NewTop - OldTop
   end
end;

procedure TForm1.Panel1MouseUp(Sender: PControl;
 var Mouse: TMouseEventData);
begin
 if Mouse.Button = mbLeft then  //Если кнопка левая...
   Dragging := False       //Выключаю режим двиганья
end;

Так вот, если потихоньку (еле-еле) перетаскивать, то нормально, но если начать перетаскивать чуть резче, то начинаются тормоза !

Если не верите, можете проверить, результат вас тоже растроит.


 
Ciber SLasH ©   (2003-11-19 05:00) [1]

Я тут поэкспериментировал и пришёл к такому выводу: если бросаешь на форму один из компонентов вкачестве будующего заголовка (пробовал на: Panel, PainBox, ImageShow) и назначяешь такие обработчики событий как в мессаге выше для обработки сообщений о перетаскивании, то рультат одинаковый. Во всех случаях, когда перемещаешь форму за созданный таким образом заголовок вверх-вниз, то наблюдаются конкретные тормоза !!!


 
SPeller ©   (2003-11-19 08:37) [2]

Зачем извращаться??? :)

function TForm1.ImgMainMessage(var Msg: tagMSG; var Rslt: Integer): Boolean;
begin
 Result := False;
 case Msg.message of
   WM_LBUTTONDOWN: Form.Perform( WM_NCLBUTTONDOWN, HTCAPTION, Msg.lParam );
   WM_LBUTTONUP: Form.Perform( WM_NCLBUTTONUP, HTCAPTION, Msg.lParam );
 end;
end;


 
Ciber SLasH ©   (2003-11-19 16:22) [3]

Сенкс...
Работает на ура !


 
Skopin   (2003-11-21 08:15) [4]

Я например использую следующий фрагмент:

procedure TForm1.GradientPanel1MouseDown(Sender: PControl;
 var Mouse: TMouseEventData);
begin
       if Mouse.Button = mbLeft then
       begin
          Form.DragStart;
       end;
end;


 
alex_***   (2003-11-21 09:18) [5]

SetBounds"a в KOL нет?


 
Gandalf ©   (2003-11-21 11:00) [6]

У нас есть все :)
BoundsRect:=YouWantRect;



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

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.038 c
1-1083233838
--Kostik--
2004-04-29 14:17
2004.05.16
Как мне показать прогресс запуска приложения?


14-1082975960
BigLeha
2004-04-26 14:39
2004.05.16
CLSID


11-1069791461
=Sniper=
2003-11-25 23:17
2004.05.16
"Присвоение" pop-up к dropdown у Toolbar не реализовано?


8-1078273036
Jaine
2004-03-03 03:17
2004.05.16
Смена иконки (Glyph) на кнопке типа BitBtn or Speedbutton


9-1073399784
Hookey
2004-01-06 17:36
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский