Вниз
Скачать: CL | DM;

Проблема с прорисовкой содержимого панелей (TPanel)   Найти похожие ветки 

← →
DevilDevil ©   (2007-08-06 16:12) [0]

Создал компонент на основе TPanel, который можно таскать за заголовок. В главном окне может располагаться несколько таких панелей ("окон" в терминалогии нашей программы). Перемещение происходит SetBounds-ом.

Если я перемещаю своё "окно" над другими, то всё содержимое таких окон очень плохо прорисовывается (очень редко).

Из-за чего такое может происходить?

P.S. DoubleBuffered не помогает


← →
Инс ©   (2007-08-06 17:19) [1]


> Из-за чего такое может происходить?

А где в этом компоненте прорисовка осуществляется? Метод Paint перекрывали?


← →
DevilDevil ©   (2007-08-07 09:01) [2]

> А где в этом компоненте прорисовка осуществляется? Метод
> Paint перекрывали?


Да, перекрывал.
Дочерние компоненты насильно не прорисовываю... а надо?


← →
DevilDevil ©   (2007-08-08 10:22) [3]

Тогда:

- как корректнее прорисовывать дочерние компоненты ?
- почему нигде (я не видел) не встречается, что их надо прорисовывать?


← →
DevilDevil ©   (2007-08-09 12:08) [4]

Удалено модератором
Примечание: Создание пустых сообщений


← →
DimaBr ©   (2007-08-20 08:47) [5]

Я бы сделал так

procedure TTest.WMNCHITTEST(var M: TWMNCHITTEST);
var R: TRect;
   P: TPoint;
begin
 if not (csDesigning in ComponentState) then begin
   R := ClientRect;
   R.Bottom := R.Top + 20;
   P := ScreenToClient(Point(M.XPos, M.YPos));
   if PtInRect(R,P)
     then M.Result := HTCAPTION
     else inherited;
 end
 else inherited
end;


← →
DevilDevil ©   (2007-08-21 11:28) [6]

> DimaBr ©   (20.08.07 08:47) [5]

спасибо, но....

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

или это собственный перехват сообщения? тогда как трактовать inherited . Просто я в билдере пишу, там нет такой замечательной вещи :)


← →
DimaBr ©   (2007-08-21 14:02) [7]

procedure WMNCHITTEST(var M: TWMNCHITTEST); message WM_NCHITTEST;


← →
DevilDevil ©   (2007-08-21 14:29) [8]

> DimaBr ©   (21.08.07 14:02) [7]

самому объявить... а как тогда трактовать inherited ?


← →
DimaBr ©   (2007-08-21 14:35) [9]

inherited - выполнить унаследованный метод


← →
DevilDevil ©   (2007-08-21 15:09) [10]

хмм.....

выполнить метод предка...

как можно выполнить какой-то перекрываемый метод, если мы ничего не перекрываем? :) <-- я вот это спрашиваю


← →
DimaBr ©   (2007-08-21 15:59) [11]

Мы не перекрываем, а перехватываем сообщение о положении мыши относительно контрола.


← →
DevilDevil ©   (2007-08-21 17:25) [12]

хорошо, мы перехватываем сообщение. inherited тут причём? :)

или это эквивалентно M.Result := DefWindowProc(...) ?


← →
DimaBr ©   (2007-08-22 10:51) [13]

Думаю что нет, попробуйте вообще убрать Inherited


← →
wp2 ©   (2007-08-23 11:21) [14]

Честно говоря TPanel тот еще глючный компонент. Он и так сам по себе иногда не отображает что надо.


← →
Игорь Шевченко ©   (2007-08-23 11:54) [15]


> Честно говоря TPanel тот еще глючный компонент. Он и так
> сам по себе иногда не отображает что надо.


Руки выпрямлять пробовал ?


← →
wp2 ©   (2007-08-23 12:18) [16]

а что тут выпрямлять. У компонентов, что нет глюков?


← →
Игорь Шевченко ©   (2007-08-23 13:48) [17]


> а что тут выпрямлять.


Руки


> У компонентов, что нет глюков?


Глюки компонентов VCL описаны в qc.borland.com

Поищи про TPanel


← →
DevilDevil ©   (2007-08-27 10:26) [18]

> Игорь Шевченко ©   (23.08.07 13:48) [17]

хммм... Запарил я что-то... это раньше мы наследовались от панели, сейчас - от TCustomControl-а.

> DimaBr ©   (20.08.07 08:47) [5]

Спасибо, как всегда помог.
inherited заменил на M.Result := HTCLIENT
Я, правда, до сих пор не доконца понимаю, что же там происходит



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

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.019 c
8-1169034939
Vovan #2
2007-01-17 14:55
2007.11.11
Работа со звуком в Delphi


15-1191397317
jack128_
2007-10-03 11:41
2007.11.11
news группа interbase.ibexpert.ru - не удалось соедениться с


4-1178601036
-=Germe$=-
2007-05-08 09:10
2007.11.11
Еще раз про глобальные ловушки


15-1191743019
Nucer
2007-10-07 11:43
2007.11.11
Реализация RSA в Delphi


2-1189405023
Mariya
2007-09-10 10:17
2007.11.11
Поиск в Delphi




   Наверх