Текущий архив: 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.48 MB
Время: 0.008 c