-
Здравствуйте! Хочу сделать компонент вроде RichEdit только чтобы вид у него был как у старого листка или округленный, вообщем чтобы выбирался неким свойством Style например. С этим особых проблемы не возникает... во всяком случае пока. Но при изменении через SetWindowRgn область обрезается и текст соответственно так же. Подскажите пожалуйста каким образом задать границы вывода текста?
-
Устанавливайте регион по размерам больше чем RichEdit
-
Спасибо, попробую. Но по моему в любом случае отсчет будет идти от верхней левой точки и значит обрезаться будет от туда же... или нет?
-
> DimaBr
Может я что то не понимаю, но как сделать регион больше RichEdit? если регион к нему же и применяется? Например:
procedure TForm1.Button1Click(Sender: TObject);
var CR: LongWord; p: array[1..5] of TPoint;
begin
p[1].X := 50; p[1].Y := 50;
p[2].X := 50; p[2].Y := 500;
p[3].X := 500; p[3].Y := 500;
p[4].X := 500; p[4].Y := -50;
p[5].X := 50; p[5].Y := 50;
CR := CreatePolygonRgn(p, 5, Alternate);
SetWindowRgn(RichEdit1.Handle, CR, true);
end;
Каким образом тут сделать регион больше RichEdit'a? Если будет первая точка 0,0 то вид не изменится...
-
Положите RichEdit на TWinControl регион которого и корректируйте
-
Да так получается, спасибо. Конечно немного не так как я хотел, но это уже что то. Только возник новый вопрос... каким образом в Design-time разрешить класть новый компонент только на TPanel к примеру?
-
> [5] v_a_belousov (12.11.10 13:02)
type TMyRich class (TWinControl)
Rich: TRichEdit
.....
end;
-
или
type TMyRich = class(TRichEdit)
private
FParent: TWinControl;
....
end;
-
> {RASkov}
Да проверил работает, спасибо) не додумался сам сначала что то)
-
Вам не нужно его класть на панель, Вам нужен наследник от TWinControl на котором лежит TRichEdit
TMyRichEdit = class(TWinControl)
fRich: TRichEdit
-
> DimaBr
Да, но для того чтобы вид у него был именно такой какой я задумал изначально приходится помучатся...
-
> Да, но для того чтобы вид у него был именно такой какой
> я задумал изначально приходится помучатся...
Почему же? Задаем прозрачный регион у "себя". В процедурке Paint рисуем backbround. Далее создаем RichEdit, у которого Parent := Self;
Вроде бы так должно быть :)