Показать сообщение отдельно
  #1  
Старый 18.02.2011, 03:35
restarter restarter вне форума
Прохожий
 
Регистрация: 19.11.2010
Сообщения: 7
Репутация: 10
Восклицание Присвоение ControlStyle всем елементам формы!

В делфях после 7й версии появилась функция AlwaysShowDragImages, что позволяло показывать DragImage везде. В 7й же версии ее еще нет и мне надо сделать ее аналог.

Задача добавить каждому элементу формы новый ControlStyle - [csDisplayDragImage], что позволит прорисовывать DragImage везде.

Пробовал так:
Код:
i:=0;
repeat
    Controls[i].ControlStyle := Controls[i].ControlStyle + [csDisplayDragImage];
Inc(i);
until i = ControlsCount-1;

Но ControlsCount возвращает всего 2, и я прохожу так только 2 елемента.
Если вместо Controls и ControlCount использовать Components и ComponentsStyle соответственно, то уже проходит 125 елементов, но тут беда, поменять ControlStyle могу только так:
Код:
i:=0;
repeat
if (Components[i] is TPanel) then (Components[i] as TPanel).ControlStyle := (Components[i] as TPanel).ControlStyle + [csDisplayDragImage];
Inc(i);
until i = ComponentCount-1;

но в этом случае меняется только для TPanel и придется подставлять вместо TPanel все виды контролов, что есть.

Что можете посоветовать, бравые молодцы?))) Как побороть это и прорисовать эту картинку везде?
Ответить с цитированием