Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.04;
Скачать: CL | DM;

Вниз

И снова прозрачный Edit   Найти похожие ветки 

 
Endi ©   (2003-07-18 01:59) [0]

Помогите кто-нибудь!!!
Необходимо создать Edit, но он должне быть прозрачным, то есть символы должны вводится поверх рисунка. Решается это все элементарно с помощью messages, но проблема в том, что этот Edit лежит не на форме, а на панели.
Сообщения посылаются родителю, а в данном случае родитель - Panel, а форма ничего не получает, поэтому не реагирует на все позывы.


 
Ученик ©   (2003-07-20 23:54) [1]

FSavePanelWindowProc: TWndMethod;
procedure PanelWindowProc(var Message: TMessage);

procedure TForm1.PanelWindowProc(var Message: TMessage);
begin
with Message do
if (Msg = WM_CtlColorEdit) and (LParam = Edit1.Handle) then
SetBkMode(WParam, TRANSPARENT);
if Assigned(FSavePanelWindowProc) then
FSavePanelWindowProc(Message)
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
FSavePanelWindowProc := Panel1.WindowProc;
Panel1.WindowProc := PanelWindowProc;
SetWindowLong(Panel1.Handle, GWL_STYLE, GetWindowLong(Panel1.Handle, GWL_STYLE) and
not WS_CLIPCHILDREN);
SetWindowLong(Edit1.Handle, GWL_EXSTYLE,
GetWindowLong(Edit1.Handle, GWL_EXSTYLE) or WS_EX_TRANSPARENT);
Edit1.Brush.Style := bsClear
end;

procedure TForm1.Edit1Change(Sender: TObject);
var
R: TRect;
begin
R := Edit1.BoundsRect;
InvalidateRect(Panel1.Handle, @R, False)
end;


 
Endi ©   (2003-07-21 03:00) [2]

К сожалению это работает но не до конца, проблема в том, что окну , к которому мы применяем WindowProc, изменяет некоторые свои свойства на свойства формы, например: укажем Edit1 - получим Edit c задним фоном как у формы(сквозная прозрачность), укажем Panel1 - получим панель с Caption:=Form1, да еще и символы не стираются, а друг на друга накладываются.



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

Текущий архив: 2003.08.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
14-10441
yurez
2003-07-17 17:59
2003.08.04
Граждане. помогите найти алетрер. горю :(


14-10449
KaPaT
2003-07-18 13:29
2003.08.04
Кто-нибудь сталкиваля с этим бредом???


3-10097
vopros
2003-07-14 11:59
2003.08.04
Как в таблицу добавить поле


1-10257
Piroman
2003-07-19 11:36
2003.08.04
Переменные


7-10483
Boris K.
2003-05-22 19:17
2003.08.04
Помогите плиз, советом - как программно записать в MBR?