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

Вниз

Как сделать 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.008 c
6-70418
Евген
2003-03-24 14:35
2003.05.22
Передача команды (строки) с одного компа на другой.


3-70162
Vanoshka
2003-05-02 13:22
2003.05.22
Базы данных InterBase


14-70475
Maximilian
2003-05-01 19:09
2003.05.22
Проигрывание .BIK роликов в Delphi


14-70477
Дмитрий К.К.
2003-05-03 13:58
2003.05.22
Именинники 3 мая


4-70574
Smok_er
2003-03-21 13:29
2003.05.22
Вопрос про system tray icon





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский