Главная страница
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.01 c
8-10311
Opera
2003-04-08 22:26
2003.08.04
Плеер


14-10436
Zn
2003-07-17 18:20
2003.08.04
Почему приложения Microsoft загружаются быстрее?


1-10192
Альф
2003-07-17 16:11
2003.08.04
Можно ли из множества целых составить строку ?


1-10229
McSimm2
2003-07-21 08:43
2003.08.04
Api Timer


14-10378
Soft
2003-07-16 18:13
2003.08.04
Поучительный рассказ по поводу лицензионного софта