Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.16;
Скачать: CL | DM;

Вниз

Отрисовка ClientRect   Найти похожие ветки 

 
webpauk   (2003-10-03 14:36) [0]

Написал компонент, наследник TPanel. Особенности: 3d-рамка, расположенная след. образом - Rect(BorderWidth, BorderWidth, Width-BorderWidth, Height-BorderWidth). Вследствии этого, расположенные поверх компонента элементы, занимают полностью ClientRect и их границы становятся невидимы. Как переопределить ClientRect, чтобы прорисовка Border осталась, но верхние элементы, располагались в указанной рамке?


 
webpauk   (2003-10-03 15:00) [1]

Help


 
Rem ©   (2003-10-03 15:23) [2]

Конкретнее опиши...


 
webpauk   (2003-10-03 15:44) [3]

Да куда уж конкретнее. Panel должен быть представлен в виде Border+рамка. Внутри рамки должны располагаться прочие элементы.
Если я отрисовываю полностью Clientrect(закрашываю белым цветом, папример), то верхние элементы ложатся не внутри рамки, а полность на Panel, из-чего и не видны их границы. Если же я изменяю отрисовку, то границы не закрашиваются.


 
Rem ©   (2003-10-03 16:00) [4]

Фантастика! За это - Пулитцеровскую тебе премию!

>> Panel должен быть представлен в виде Border+рамка

Двойная рамка, что ли? Снаружи стандартная 3D, а внутри еще одна?
Как ты создаешь вторую рамку? Рисуешь, или компонент используешь? Если компонент, то какой?

>> Внутри рамки должны располагаться прочие элементы.

Какие прочие элементы?

>> Если я отрисовываю полностью Clientrect (закрашываю белым цветом, папример), то верхние элементы ложатся не внутри рамки, а полность на Panel, из-чего и не видны их границы.

Вообще шик! Компоненты, лежавшие раньше ВНУТРИ рамки (судя по описанию задачи при этом их границы были видны), после прорисовки панели (!) стали лежать вне рамки, в результате чего исчезли их границы... Я так понимаю, твоя прорисовка меняет Parent"а и свойства других компонентов?...


 
webpauk   (2003-10-03 16:07) [5]

http://www.delphimaster.ru/cgi-bin/download.pl?get=1065182835&n=0


 
webpauk   (2003-10-03 16:12) [6]

1.Рамку я прорисовываю. А внешняя рамка мне не нужна (BorderStyle:=bsNone)
2. Прочие элементы - всё что угодно, что можно кинуть на TPanel (combobox, listbox, etc)
3. Вот эти самые элементы и располагаются полностью по всей Panel, а я хочу, чтобы внутре моей области

Ну как? Шик? Ты просто не понял, что я имел ввиду.


 
Rem ©   (2003-10-03 16:29) [7]

procedure TWinControl.AlignControls(AControl: TControl; var Rect: TRect); virtual;

Use AlignControls to align all controls within an area of a form, panel, group box, scroll box, or any container control. Specify the area in which to align the controls as the value of the Rect parameter.


 
han_malign ©   (2003-10-03 16:38) [8]

TControl
protected
function GetClientRect: TRect; virtual;


 
webpauk   (2003-10-03 16:56) [9]

ага, понял.
а чтобы её присобачить к компоненту, надо просто добавить в protected и описать function, или её надо где-то указывать (Paint, например)



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

Текущий архив: 2003.10.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
1-51202
nova
2003-10-04 15:53
2003.10.16
Динамическое создание переменной


9-51050
Knight
2003-04-14 22:22
2003.10.16
Тетрис - слабое звено...


14-51441
SPeller
2003-09-25 14:23
2003.10.16
Ищу книгу


1-51312
hursand
2003-10-06 10:41
2003.10.16
Работа с формы


8-51352
Strori
2003-05-21 10:58
2003.10.16
Ссылка в теле картинки