Как мне избавиться от этого?(Похоже, форма версии мышиных троп) - PullRequest
8 голосов
/ 22 июля 2010

У меня есть формы в форме курсора (действующие как фактические курсоры). Всякий раз, когда я перетаскиваю это делает то, что похоже на следы мыши Красные и белые вещи. Видите маленькую красную стрелку на верхнем сердце и маленькую белую стрелку на нижнем сердце? Это мои формы в форме курсора, это картинка в крошечной форме (я вырезал области так, чтобы форма была в форме, похожей на картинку на ней). Они созданы в MainUnit (который я свернул).

форма тропы http://img10.imageshack.us/img10/9718/mousetrails.png

Когда я нажимаю и удерживаю, это заставляет эти следы ... зависать над ними стирать. Как мне избавиться от этого поведения?

И я могу избавиться от них, обновляя, но если я обновляю каждый раз, когда мышь двигается, это ужасное мерцание. Мое текущее решение обновляется при каждом щелчке, но я хочу решение, которое избавит от поведения, а не просто удалит его после того, как оно будет нарисовано.


Ладно, пробовал без обоев. Без обоев http://img830.imageshack.us/img830/6595/nowallpaper.png Это тот же эффект и внутри папок.


Через немного больше экспериментов. Я обнаружил, что это не была (курсор) форма вообще. И это был не код. Я пытался перемещать (случайным образом) формы (с таймером, используя его свойства left и top). Поначалу это казалось нормальным, но когда я нажимал и удерживал на рабочем столе. Бывает: Форма трассы http://img411.imageshack.us/img411/7409/formg.png Soooooo. Любые предложения относительно того, что я должен сделать, чтобы избежать / минимизировать / контролировать это?

Ответы [ 2 ]

2 голосов
/ 10 ноября 2010

Обновите свой видеодрайвер.

Или, как ярлык, откат к стандартным ванильным (то есть стандартным Windows) драйверам VGA, не меняя ничего другого.Если симптом не исчезнет, ​​проблема не в драйвере, и вы можете забыть об обновлении драйвера.(Этот ярлык является ярлыком, потому что вы часто не можете легко отменить обновление драйвера, на всякий случай.)

1 голос
/ 05 ноября 2010

На основании комментария Сертака Акьюза и http://msdn.microsoft.com/en-us/library/dd145034(VS.85).aspx, попробуйте следующее:

function TForm1.WaitUntilDesktopUnlocks: Boolean;
var
  desktopUnlocked: Boolean;
begin
  desktopUnlocked:= False;
  while not desktopUnlocked do begin
    desktopUnlocked:= LockWindowUpdate(Self.Handle);
    LockWindowUpdate(0);
  end;
end;

procedure TForm1.DoMoveCursorWindow() // method called to move the window each step
begin
  WaitUntilDesktopUnlocks;
  Self.Left := Self.Left + 1;
  Self.Top := Self.Top + 1;
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...