Главная страница
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.012 c
1-10256
Hollander
2003-07-19 22:56
2003.08.04
В системе открыли файл моей прогой...


1-10228
LLOyD
2003-07-19 22:35
2003.08.04
Электронная трассировка


1-10255
PrettyFly
2003-07-20 13:22
2003.08.04
Framы - диверсанты ;-)


9-10073
Runner
2003-02-05 20:32
2003.08.04
Если я программист на Assembler’e ?


8-10305
wowik_c
2003-04-11 09:47
2003.08.04
Картинка в окне