Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать TPageControl и TTabsSheet ...например черного цвета? [D5, Win95/98]


TankMan ©   (2003-02-13 00:37:00) 

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


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

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


TankMan   (2003-03-16 23:53:00) [2]

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


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

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


TankMan   (2003-03-05 04:42:00) [4]

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


TankMan   (2003-03-01 15:10:00) [5]

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


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

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


Sentinel   (2003-02-22 04:09:00) [7]

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

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

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


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

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


TankMan   (2003-02-21 22:49:00) [8]

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


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

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:40:00) [10]

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


Sentinel   (2003-02-21 17:03:00) [11]

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

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 16:23:00) [12]

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


Clickmaker   (2003-02-21 11:25:00) [13]

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


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

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


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

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


TankMan   (2003-02-20 01:34:00) [16]

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


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

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


Ihor Osov'yak   (2003-02-13 02:15:00) [18]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо