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

Вниз

Невидимая панелька TPanel   Найти похожие ветки 

 
ARTEMKA   (2003-10-28 23:29) [0]

Мастера подскажите плз, как сделать чтоб панель (TPanel) сама не прорисовалась, но чтоб компанент TImage был на нём. если делаю просто Panel1.Visible:=false; то становится не видимый и Image на нём.
Если знаете плз подскажите,Спасибо


 
Юрий Федоров   (2003-10-28 23:36) [1]

Panel1.Caption:=EmptyStr;
Panel1.BevelInner:=bvNone;
Panel1.BevelOuter:=bvNone;


 
ARTEMKA   (2003-10-29 01:14) [2]

НЕ получается, мне нужно чтоб панель вообще не была видна под Image"ом он у меня с прозрачностью


 
ARTEMKA   (2003-10-29 02:39) [3]

Мастера помогите плз, я в шоке


 
Tumcoat   (2003-10-29 04:25) [4]

А ты не пробовал Panel делать по размеру Image?


 
Думкин   (2003-10-29 07:21) [5]

А зачем вообще нужна панель?


 
ARTEMKA   (2003-10-29 13:19) [6]

я написал компанент на основе TImage добавил оброботчики событий MouseEnter и MouseLeave. Сама форма у меня обрабатывает ещё WM_NCHITTEST, потому что она не прямоугольной формы. Так вот получается так что когда мышь проходит над компонентом, NCHITTEST перехватывает это и обработчик MouseEnter не срабатывает, а когда под Image есть панелька то всё нормально. НО ВОПРОС в том что мне нужно чтоб панель не рисовалась вообще, а только IMAGE на нём. Сам Image с прозрачностью поэтому за ним видна панелька.


 
ZEE   (2003-10-29 13:51) [7]

думаю вопрос как рах в WM_NCHITTEST
на до просто выкусывать из него ректангл имаджа -
если на апи - то примерно так (у меня так):
WM_NCHITTEST:
begin
GetCursorPos(Pt);
ScreenToClient(wnd,Pt);
if (Pt.Y<16)and(Pt.X>15)and(Pt.X<Rct.Right-55)
then result:=htCaption
else result:=DefWindowProc(wnd,msg,wparam,lparam);
end;


зы: в if конечно свое условие запихнешь...


 
ARTEMKA   (2003-10-29 14:32) [8]

ZEE>>> Да я так и сделал теперь перехватывается MouseLeave и MouseEnter , но не обрабатывается MouseDown и MouseUp , как сделать?


 
ZEE   (2003-10-29 14:37) [9]

> ARTEMKA (29.10.03 14:32) [8]
> Да я так и сделал теперь перехватывается MouseLeave
> и MouseEnter , но не обрабатывается MouseDown и MouseUp
> , как сделать?
т.е.? если отключить WM_NCHITTEST - то MouseDown/Up работает, а если включить - нет?
если так - то дело все в томже - ищи грабли в обработке мессаджа...
правда может у тебя еще какие-нить WM_NC... есть - тогда надо еще и там посмотреть...


 
ARTEMKA   (2003-10-29 15:16) [10]

обрабатываются только WM_NCHITTEST; WM_MOUSEACTIVATE; WM_PAINT; WM_SIZE;
В MOUSEACTIVATE исключается только вторая кнопка мыши:
inherited;
if Msg.LParamHi = 516 then Msg.Result:= MA_NOACTIVATEANDEAT;

грабли найти не могу


 
ZEE   (2003-10-29 15:24) [11]

а все-таки - без хиттеста маусап/даун работает?


 
ARTEMKA   (2003-10-29 21:49) [12]

>>> ZEE>> да ты прав без хиттеста всё работает!!
Но возникает другая проблема, моя форма не прямоугольная и в ней мне нужно осуществить изменение размеров. В хиттесте я определяю области где должны быть перетаскивания.
if PointToRect(x,y,i-20,j-35,i,j) then Message.Result := HTBOTTOMRIGHT
else if PointToRect(x,y,i-10,30,i,j-35) then Message.Result := HTRIGHT ......

как же обойтись без него?


 
ARTEMKA   (2003-10-29 22:59) [13]

ZEE подскажи а, а то я уже всё испробывал кажется, если что моя АСЯ 281014903


 
ARTEMKA   (2003-10-29 23:56) [14]

даже SetLayeredWindowAttributes не подходит



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

Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.032 c
6-41838
Незнайко
2003-09-12 16:01
2003.11.13
Как по удал. IP узнать Name?


1-41487
AAZ72
2003-10-28 15:00
2003.11.13
Преобразование строки в название класса


1-41582
AndriyS
2003-10-27 13:22
2003.11.13
Разделитель целой и дробной части


1-41299
Vasek
2003-10-30 12:58
2003.11.13
Fast Report


14-42076
VEG
2003-10-23 17:30
2003.11.13
HyperTerminal





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