Главная страница
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.018 c
1-10291
Alex300
2003-07-22 09:33
2003.08.04
Проблема с курсором


4-10526
Leon
2003-06-03 14:33
2003.08.04
Сохранение через реестр


14-10353
Катерина
2003-07-18 11:02
2003.08.04
До свидания!


3-10108
McSimm2
2003-07-14 14:12
2003.08.04
---|Ветка была без названия|---


6-10342
AndrewK
2003-05-27 14:45
2003.08.04
Как можно организовать оповещение на другую машину?