Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2011, 00:19   #1
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
Хорошо

наконец то нашел!
не остаеца ничего, кроме текста и курсора

Edit1.BordelStyle := bsNone;
Edit1.BevelEdges - все поставить False

Код:
implementation

{$R *.dfm}
 
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;

end.
но при выделении текста появляеца какоито фон, в области выделения
как его убрать?

могу дополнит
после снятия выделения, под текстом, именно под текстом, появляеца фон,
в моем случае ето красныи, у меня тема такая,
но как толко начинаеш редактирование, ввод или удаление текста, фон становица сново прозрачным
кто нибуд, скажите в чем дело и как с етим бороца
VirusN13

Последний раз редактировалось Stilet; 12.01.2011 в 15:49.
ArtGrek вне форума Ответить с цитированием
Старый 14.01.2011, 12:37   #2
xexxex
Пользователь
 
Регистрация: 31.07.2010
Сообщений: 52
По умолчанию

попробуй так
WM_CTLCOLORSTATIC:
begin
SetBkMode(WParam, TRANSPARENT);
Message.Result := GetStockObject(NULL_BRUSH);
end;
xexxex вне форума Ответить с цитированием
Старый 15.02.2011, 14:14   #3
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

в результате етого кода при запуске едит выглядит так(рис.1)
Код:
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;
а во время рдактирования(рис.2)
Код:
Procedure TForm1.WMCtlColorEdit(var Message: TWMCtlColorStatic);
Begin
 IF Message.ChildWnd=Edit1.Handle then SetBkMode(Message.ChildDC,TRANSPARENT);
 inherited;
End;

procedure TForm1.Edit1Change(Sender: TObject);
Var 
   R:TRect;
Begin
 R:=Edit1.BoundsRect;
 InvalidateRect(Handle,@R,False)
end;
как получить и при загрузке програмы едит как на втором рисунке, многим ведь ето интересно, но умельца пока не нашлось
помогите пожалуста
Изображения
Тип файла: jpg errorEdit.JPG (1.6 Кб, 235 просмотров)
Тип файла: jpg rightEdit.JPG (1.4 Кб, 208 просмотров)
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 15.02.2011, 14:26   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Хм... я использовал TAdvEdit из TMS. Там есть свойство Transparent.
_SERGEYX_ вне форума Ответить с цитированием
Старый 15.02.2011, 14:36   #5
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Так устроит ?
sshot-1.png
Всего-навсего комбинация из TLabel и ТBevel.
TLabel.Caption меняется по событию FormKeyDown().
asmodey1 вне форума Ответить с цитированием
Старый 15.02.2011, 15:23   #6
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Хм... я использовал TAdvEdit из TMS. Там есть свойство Transparent.
в TSM много компонент, у меня до него руки видимо не дошли,
если выделить текст появляеца тот же фон, но при запуске уже етого нет, спасибо, за небольшое продвижение
Цитата:
Всего-навсего комбинация из TLabel и ТBevel.
у меня шас так, но у Label нет курсора что б видеть где печатаеш
а Bevel вообше не к чему, нужен чистыи текст с курсором, но Canvas не хочеца использовать

Цитата:
спасибо, за небольшое продвижение
спасибо, за большое продвижение, ето то что нужно, старыи код придавал такои еффект, все работает как надо СПАСИБО +++++
VirusN13

Последний раз редактировалось ArtGrek; 15.02.2011 в 15:32.
ArtGrek вне форума Ответить с цитированием
Старый 15.02.2011, 18:24   #7
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Цитата:
Сообщение от ArtGrek Посмотреть сообщение
у меня шас так, но у Label нет курсора что б видеть где печатаеш
Странно... А у меня есть
Это символ такой - "|"
asmodey1 вне форума Ответить с цитированием
Старый 15.02.2011, 18:44   #8
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Цитата:
Это символ такой - "|"
надо будет делать мигание, ето еше 1 таимер, у меня их уже многовато, потом перестановку если работать с текстом
ето лишние строки кода, а я и так тут неумея создавать компоненты, написал 4 юнита по 300 строк, но спасибо за за предложение
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 14.09.2011, 03:15   #9
Тоба
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 86
По умолчанию

Цитата:
кто нибуд, скажите в чем дело и как с етим бороца
Код:
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.WMCtlColorEdit(var Message: TWMCtlColorStatic);
Begin
 IF Message.ChildWnd=Edit1.Handle then SetBkMode(Message.ChildDC,TRANSPARENT);
 inherited;
End;

procedure TForm1.Edit1Change(Sender: TObject);
Var 
   R:TRect;
Begin
 R:=Edit1.BoundsRect;
 InvalidateRect(Handle,@R,False);
end;
Код:
 InvalidateRect(Handle,@R,true);
................................... ..................................
Кто в курсе - как сделать тоже самое,только на WinAPI
Код:
 Edit1.Brush.Style:=bsClear;

Последний раз редактировалось Тоба; 14.09.2011 в 03:35.
Тоба вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
надписи на кнопках и едит боксах нужны кириллицей Darck Angel Общие вопросы C/C++ 3 17.04.2010 11:19
Как определить есть ли в едит курсор Яр|/||< (^_^) Общие вопросы Delphi 4 21.02.2010 15:26
Просчет и Едит 4321 Общие вопросы Delphi 15 18.11.2008 21:13
зашифровка едит bmb_66 Компоненты Delphi 2 10.04.2008 11:25
Едит subsonic Общие вопросы Delphi 6 27.01.2008 10:21