Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];

Вниз

Отрисовка 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.011 c
1-51322
Alexsey Orlov
2003-10-05 16:45
2003.10.16
Как сохранить всё содержимое ListView , а на Си билдере еси можно


1-51175
DeScriptor
2003-10-02 23:34
2003.10.16
Как бороться с null-terminated строками


7-51533
Tunik
2003-08-02 11:38
2003.10.16
Проблема с WriteFile


1-51167
Вован
2003-10-05 13:53
2003.10.16
Как минимизировать приложение из дочерней формы?


14-51459
Andryk
2003-09-29 14:49
2003.10.16
Пользуясь случаем хочу поздравить.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский