Главная страница
    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
1-91741
Igit
2003-07-13 12:34
2003.07.28
Извлечение ресурсов.


7-91919
Freeze
2003-05-16 12:58
2003.07.28
Как запустить командную строку с параметрами в Win2k


1-91727
Vovanx
2003-07-15 04:27
2003.07.28
TFileStream и String


11-91700
Miek
2002-11-04 21:15
2003.07.28
глобальный затык в KOL-проекте


14-91888
Soft
2003-07-11 19:07
2003.07.28
Что движет россиянами





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