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

Вниз

Как сделать TPageControl и TTabsSheet ...например черного цвета?   Найти похожие ветки 

 
TankMan ©   (2003-02-13 00:37) [0]

Собственно сабж... спрашиваю, потому что не нашел, такого свойства в самих классах :(.. разве что у прародителей, но я никак до них добратся не могу :(...


 
Ihor Osov'yak ©   (2003-02-13 02:15) [1]

Положи на панелю, панель закрась в нужный цвет. По логике вещей они цвет парента должны брать во внимание...


 
Игорь Шевченко ©   (2003-02-13 10:17) [2]

Смотреть в сторону OnwerDraw


 
TankMan ©   (2003-02-20 01:34) [3]

>>Игорь Шевченко
Посмотрел я в эту сторону... спасибо конечно за наводку... закрасил я сами закладки, а вот как быть с полем этих закладок? Как найти его параметры , т.е. Rect, и как его закрасить? Тут уж я непонял как быть :(


 
Игорь Шевченко ©   (2003-02-20 09:02) [4]

http://www.lmc-mediaagentur.de/dpool.htm


 
TankMan ©   (2003-02-21 00:37) [5]

http://www.lmc-mediaagentur.de/dpool.htm
Это конечно хорошая ссылка, красивая такая, но зачем мне она? там есть только шароварный компонент, чем-то там связанный с PageControl..(это насколько я понял)...а я... спрашивал, как закрасить? а не где взять...


 
Clickmaker ©   (2003-02-21 11:25) [6]

Перехватить WM_ERASEBKGND у TPageControl или TTabSheet и закрасить фон самому. Типа FillRect(hdc, Rect, CreateSolidBrush(RGB(0,0,0)));


 
TankMan ©   (2003-02-21 16:23) [7]

... можно плз пояснить, как это "перехватить ... у TPageControl или..."? Я как то не пойму?


 
Sentinel ©   (2003-02-21 17:03) [8]

Имеется ввиду, очевидно, следующая конструкция.

type
TForm1 = class(TForm)
PageControl1: TPageControl;
procedure FormCreate(Sender: TObject);
protected
OldPageCtrlWndProc: TWndMethod;
procedure PageCtrlWndProc(var message: TMessage);
end;

procedure TForm1.PageCtrlWndProc(var message: TMessage);
begin
with message do
case Msg of
{Здесь можно перехватить сообщения, посылаемые оконному елементу и обработать их так, как нам это нужно}
WM_ERASEBKGND: FillRect(HDC(WParam),PageControl1.ClientRect,GetStockObject(BLACK_BRUSH));
else
{Если мы не обработали сообщение, тогда перемаем управление старой процедуре обработки}
OldPageCtrlWndProc(message);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
{А здесь мы заменяем стандартную оконную процедуру, предоставляемую нам по умолчанию, на свою}
OldPageCtrlWndProc := PageControl1.WindowProc;
PageControl1.WindowProc := PageCtrlWndProc;
end;

Таков принцип, дальше - дело рули сам. Все равно получается OwnerDraw.


 
TankMan ©   (2003-02-21 22:40) [9]

>>Sentinel
Извини, конечно, за недоходчивость... но...я чего-то недопонимаю... вот например я вставил тот кусок кода, что ты мне дал, у меня окрашивались раньше только табы, теперь, окрашивается в черный цвет, поле, где могут быть табы (вверху полоска), и каемочка такая образовывается вокруг, самой TabSheet, хотя само поле, для размещения всяческих элементов, не перекрашивается... попробовал я по другому, изменил, я чуток, то что ты мне дал, поставил на обработчике событий не PageControl а TabSheet, и его clientRect... но результат оказался таким же :(... откуда я всетаки не пойму дельфи закрашивает серым (стандартным) цветом сам TabSheet....:(


 
Alex44   (2003-02-21 22:46) [10]

Ego krasit i risuet Windows. Estestvennyj vopros: esli Vam ne nravitsya to, chto risuet Windows, zachem ispol"zovat" ee standartnye classy? Sdelajte svoj, i risujte, chto dushe ugodno. Ideya standartnyh window classes: STANDARTNAYA prorisovka i povedenie.


 
TankMan ©   (2003-02-21 22:49) [11]

Удалено модератором
Примечание: Offtopic


 
Sentinel ©   (2003-02-22 04:09) [12]

А голова, извините, зачем?
Мне, вот, например, недосуг заморачиваться этой идеей. Своих хватает. Был поставлен вопрос - был дан ответ, утрированный, но дан.

> ... можно плз пояснить, как это "перехватить ... у TPageControl
> или..."?

Перехватили.


> Ха... если я не могу закрасить этот... компонент, то что
> ты думаешь, что я смогу написать новый?

Ха... Так стоит ли?


 
Alex44   (2003-02-22 21:17) [13]

Удалено модератором
Примечание: Offtopic


 
TankMan ©   (2003-03-01 15:10) [14]

Ну вобщем помогли блин...:(.. ну если бы я знал, как находить этот rect самой PageSheet, разве бы я спрашивал?
>>Sentinel
А ты посмотри мой основной вопрос... разве твой ответ мне поможет? Я почему-то не увидил других результатов, кроме тех, что и у меня получались...
Может всетаки кто-нибудь поделится куском кода, который непосредствено закрашивает Полность(!) весь PageControl вместе с ее Sheet-ами... может всетаки ктонибудь решится поделится столь "секретной" информацией...


 
TankMan ©   (2003-03-05 04:42) [15]

Так... вот привел пример закраски PageControl Sentinel, но как закрасить его способом сами TabSheet-ы?
в его строчке (WM_ERASEBKGND: FillRect(HDC(WParam),PageControl1.ClientRect,GetStockObject(BLACK_BRUSH));
)
поменял PageControl1.ClientRect на PageControl1.ActivePage.ClientRect.ClientRect, насколько я понимаю, по идее,должен закрашиватся активный Рект табщита... а оно не работает :(... чего я делаю не так?


 
NAlexey ©   (2003-03-05 16:44) [16]

У таб(извините)шита Rect ето то на что ты жмешь мышкой вверху... Чтобы поменять страницу. Такто.


 
TankMan ©   (2003-03-16 23:53) [17]

OK...корректирую вопрос..
Задача - Сделать так, чтобы PageControl и TabSheet-ы были черного цвета...
Можно пожалуйста пример?... Ну не пойму я чего-то видимо, а очень нада... :(


 
TankMan ©   (2003-03-24 00:54) [18]

Удалено модератором
Примечание: Offtopic



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

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

Наверх




Память: 0.51 MB
Время: 0.023 c
14-70495
Doom
2003-05-01 10:55
2003.05.22
Помогите разобраться с ошибкой в Windows 2000 !!!


8-70411
LeGaT
2003-02-10 22:58
2003.05.22
Сетевой графический редактор


14-70517
Igor Mish
2003-05-01 20:39
2003.05.22
Чтение строки из файла.txt


3-70118
mihei
2003-04-30 11:56
2003.05.22
Помогите с DBgridEh+CheckBoxes


1-70347
Dimderol
2003-05-08 18:35
2003.05.22
Проблема с формой внутри package