Главная страница
    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.032 c
14-1082719868
ИМХО
2004-04-23 15:31
2004.05.16
Netscape и Mozilla


3-1082366616
Domkrat
2004-04-19 13:23
2004.05.16
InterBase-Firebird


3-1082433154
SerKom
2004-04-20 07:52
2004.05.16
Тип объекта неизвестен, а имя свойство точно известно


1-1083513197
Zelius
2004-05-02 19:53
2004.05.16
Почему не работают хинты?


1-1083006539
MadSliMX
2004-04-26 23:08
2004.05.16
RxRichEdit. Замутить смайлы.





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