|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
"Прозрачный" TEdit на PageControl'е
Замучался уже "взламывать" Edit. Может кто знает?
Нужно сделать так, что бы TEdit на PageControl'е был того-же цвета, как и сама страничка (с учетом темы). Как известно, если стоит классическая тема в XP или прога работает в Win2000, то цвет странички PageControl'a стоит в clBtnFace. Под XP в дизайн-тайме все тоже самое, но!!! в момент выполнения ее цвет явно не clBtnFace!!! Как поймать этот цвет или сделать TEdit прозрачным. Что пробовал: 1. Добавить убрать csOpaque у Edit'а в ComponentStyle момент создания формы. 2. Отловить цвет кисти канвы странички PageControl'а и поставиь его Edit'у. 3. Просто подобрать нужный цвет среди системных у Delphi. Ничего из перечисленного не помогло. Может кто знает правильный путь? |
#2
|
|||
|
|||
Что-то у Вас странно. На PageControl'е только элементы TabSheet, а уже на них кидаем Edit. Во-вторых, цвет кнопки - серый, а окно Edit'а так и называется "окно" (я, чтоб глаза не портить вместо белого цвета поставил жёлто-оранжевый). А в конце вообще не понятно: Вам надо отрегулировать цвет Edit'а или TabSheet'а (если они есть)?
|
#3
|
|||
|
|||
Естественно, Edit'ы ложаться на TabSheet'ы. Цвет TabSheet'а зависит от темы, цвет Edit'а - один из системных, но его можно сменить. Я хочу сделать так, как в диалоге Properties самой винды, когда внешне не видно, что строка лежит в edit'е, но ее можно выделить и скопировать. Для этого надо либо сделать edit прозрачным, либо "отловить" нужный цвет и поставить его edit'у.
|
#4
|
|||
|
|||
ну что, никто не знает как это сделать???
|
#5
|
|||
|
|||
видимо никто не знает
|
#6
|
||||
|
||||
Код:
Edit1.BorderStyle:=bsNone; Edit1.Color:=GetFormImage.Canvas.Pixels[PageControl1.Left + TabSheet1.Left, PageControl1.Top + TabSheet1.Top]; Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. Последний раз редактировалось The Shadow, 11.05.2008 в 10:08. |
#7
|
|||
|
|||
Жестоко.
Я вот думал в сторону мож кто знает theme API... что бы просто из системы получить цвет... но и так хорошо, если будет работать... |
#8
|
|||
|
|||
Не совсем работает. Под темой не тот цвет все-таки дает, зараза.
Но это лучший вариант на данный момент. Для тех, кто в будущем захочет воспользоваться этим способом. Правильный код вот: Код:
var AFormImage : TBitmap; begin Edit1.BorderStyle:=bsNone; AFormImage := GetFormImage; Edit1.Color := AFormImage.Canvas.Pixels[PageControl1.Left + TabSheet1.Left, PageControl1.Top + TabSheet1.Top]; AFormImage.Free; |