Главная страница
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.48 MB
Время: 0.038 c
3-1082704510
huyone
2004-04-23 11:15
2004.05.16
Индексировать файл Foxpro DBASE III из программы?


7-1080644341
DelphiN!
2004-03-30 14:59
2004.05.16
Получить марку процессора


9-1073140938
Gnom
2004-01-03 17:42
2004.05.16
ДиректХ


1-1082892200
Makhanev A.S.
2004-04-25 15:23
2004.05.16
ThreadSafe...


3-1082380121
Term
2004-04-19 17:08
2004.05.16
Можно ли в запросе три поля VARCHAR объеденить в одно