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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2009, 16:27   #1
SanekIrk
Пользователь
 
Аватар для SanekIrk
 
Регистрация: 10.07.2008
Сообщений: 87
По умолчанию Перерисовка RichEdit

Хочу перерисовать RichEdit, на форуме покопался, нашел только через событие onDraw. Расскажите по подробней как оно работает.
SanekIrk вне форума Ответить с цитированием
Старый 14.09.2009, 16:36   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Перерисовать RichEdit? Зачем? Можно "обновить" его так: RichEdit1.Refresh; Кажись у него есть еще и Repaint.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 14.09.2009, 16:39   #3
SanekIrk
Пользователь
 
Аватар для SanekIrk
 
Регистрация: 10.07.2008
Сообщений: 87
По умолчанию

Мне надо например углы у него округлить или цвет рамки поменять.
SanekIrk вне форума Ответить с цитированием
Старый 14.09.2009, 16:43   #4
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Так бы сразу и сказал. Два выхода - поставить другой компонент или поизвращаться на onPaint или onDraw, как там у него...
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 14.09.2009, 16:43   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

новый компонент писать скорее всего нужно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.09.2009, 16:47   #6
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Округлить углы рамки можно например таким способом: Поставить Border в none и поставить рисунок на фон, в котором нарисовать хотя витиевато-колецевато-округленные углы.
Рисунок фона - здесь
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 14.09.2009 в 16:51.
Alex Cones вне форума Ответить с цитированием
Старый 14.09.2009, 16:59   #7
SanekIrk
Пользователь
 
Аватар для SanekIrk
 
Регистрация: 10.07.2008
Сообщений: 87
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Округлить углы рамки можно например таким способом: Поставить Border в none и поставить рисунок на фон, в котором нарисовать хотя витиевато-колецевато-округленные углы.
Рисунок фона - здесь
Не плохая идея. Спасибо за ответ.
SanekIrk вне форума Ответить с цитированием
Старый 14.09.2009, 17:01   #8
SanekIrk
Пользователь
 
Аватар для SanekIrk
 
Регистрация: 10.07.2008
Сообщений: 87
По умолчанию

Накопал компонент RichView. Есть описания на него?
SanekIrk вне форума Ответить с цитированием
Старый 14.09.2009, 17:40   #9
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Экспериментируйте:
Код:
procedure MakeRounded(Control: TWinControl);
 var
   R: TRect;
   Rgn: HRGN;
 begin
   with Control do
   begin
     R := ClientRect;
     rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 20, 20);
     Perform(EM_GETRECT, 0, lParam(@r));
     InflateRect(r, - 5, - 5);
     Perform(EM_SETRECTNP, 0, lParam(@r));
     SetWindowRgn(Handle, rgn, True);
     Invalidate;
   end;
 end;

procedure TForm1.Button1Click(Sender: TObject);
begin
makerounded(richedit1);
end;
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 15.09.2009, 00:31   #10
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
Мне надо например углы у него округлить или цвет рамки поменять.
Ну... На крайний случай можно использовать sRichEdit (из набора AlphaSkins) - при некоторых скинах рамка бывает скруглённой или цветной...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C#: перерисовка форми Natok Общие вопросы .NET 9 02.06.2009 20:03
Перерисовка канвы Bayazet Мультимедиа в Delphi 4 09.04.2009 22:14
перерисовка канвы Bayazet Общие вопросы Delphi 14 27.01.2009 16:02
Перерисовка на Image SERG1980 Мультимедиа в Delphi 9 09.04.2008 10:24
Перерисовка формы satana Общие вопросы Delphi 4 18.09.2007 19:42