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

Вниз

Прозрачный TEdit   Найти похожие ветки 

 
Endi   (2003-07-14 17:44) [0]

Кто-нибудь, помогите!!!
Не могу понять, как сделать TEdit прозрачным, или, вообще, какой-нибудь компонент для ввода с клавиатуры, но чтобы печаталось прям поверъ картинки.
Пробывал изменять у Edit"а свойсто ControlStyle на csOpaque, но и это ничего не дало.
Заранее всем спасибо за помощь!!


 
Семен Сорокин   (2003-07-14 17:48) [1]

посмотри ф-ю SetLayeredWindowAttributes
а также реализацию AlphaBlend в Forms.pas


 
Endi   (2003-07-14 19:03) [2]

Уже смотрел, но проводя аналогии у меня все равно получилось сделать тоже самое только с формами.


 
VMcL   (2003-07-14 19:17) [3]

А WS_EX_LAYERED TEdit"у задал?


 
Endi   (2003-07-14 19:42) [4]

А как я могу это сделать, если WS_EX_LAYERED это для окон?


 
Song   (2003-07-14 19:48) [5]

А как я могу это сделать, если WS_EX_LAYERED это для окон?

SetWindowLong() + GWL_EXSTYLE


 
Endi   (2003-07-14 20:07) [6]

А по точнее, у меня все выглядит так:

SetWindowLong(edit1.Handle,GWL_EXSTYLE,GetWindowLong(edit1.Handle,GWL_EXSTYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes(edit1.Handle,RGB(0,0,0),100,LWA_ALPHA);



 
Ученик   (2003-07-14 21:44) [7]

>Endi © (14.07.03 17:44)

Наверно, для всех Windows :-)

procedure WMCtlColorEdit(var Message : TWMCtlColorStatic); message WM_CTLCOLOREDIT;


procedure TForm1.WMCtlColorEdit(var Message : TWMCtlColorStatic);
begin
if Message.ChildWnd = Edit1.Handle then
SetBkMode(Message.ChildDC, TRANSPARENT);
inherited
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(Handle, GWL_STYLE, GetWindowLong(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(Handle, @R, False)
end;

>какой-нибудь компонент для ввода с клавиатуры, но чтобы
>печаталось прям поверъ картинки
Возможно это умеет RichEdit


 
Endi   (2003-07-15 00:24) [8]

Попробывал, но проблема задним фоном вводимого текста так и не решилась. Да и еще вдобавок при попытке стереть текст ничего не получается - прямо на Edit"е прорисовывается движение курсора, а если включен WMCtlColorEdit, то стереть вообще не получается, при выключенном старые буквы можно заменить на новые...

Пока писал это сообщение обнаружил, чтобы все прекрасно работало достаточно заменить в InvalidateRect(Handle, @R, False) с false на true. А если у Edit"а отключить все его прибамбасы, типа границ и трехмерности, то получиться, что вводишь текст прям поверх кртинки!!! :)


 
Ученик   (2003-07-15 07:23) [9]

Подключил манифест, совсем беда :(,
а в предыдущем случае BorderStyle=bsNone, но и с ним попробовал, все прилично :-)



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

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

Наверх




Память: 0.46 MB
Время: 0.005 c
3-91642
АТ
2003-07-04 16:29
2003.07.28
При переносе приложения c одной машины на др. исчез русский шрифт


14-91868
Radionov Alexey
2003-07-11 07:26
2003.07.28
Цветовая задачка.


6-91789
sapsi
2003-05-22 09:02
2003.07.28
Передача файлов через сокеты


3-91660
Nikola62
2003-07-05 15:22
2003.07.28
Колесо мыши в DbGride


14-91903
Knight
2003-07-11 01:04
2003.07.28
Apache





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