Конференция "Компоненты" » компонент на основе RichEdit [D7, WinXP]
 
  • v_a_belousov (11.11.10 14:31) [0]
    Здравствуйте! Хочу сделать компонент вроде RichEdit только чтобы вид у него был как у старого листка или округленный, вообщем чтобы выбирался неким свойством Style например. С этим особых проблемы не возникает... во всяком случае пока. Но при изменении через SetWindowRgn область обрезается и текст соответственно так же. Подскажите пожалуйста каким образом задать границы вывода текста?
  • DimaBr © (11.11.10 14:49) [1]
    Устанавливайте регион по размерам больше чем RichEdit
  • v_a_belousov (11.11.10 14:53) [2]
    Спасибо, попробую. Но по моему в любом случае отсчет будет идти от верхней левой точки и значит обрезаться будет от туда же... или нет?
  • v_a_belousov (11.11.10 15:26) [3]

    > 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 то вид не изменится...
  • DimaBr © (12.11.10 08:39) [4]
    Положите RichEdit на TWinControl регион которого и корректируйте
  • v_a_belousov (12.11.10 13:02) [5]
    Да так получается, спасибо. Конечно немного не так как я хотел, но это уже что то. Только возник новый вопрос... каким образом в Design-time разрешить класть новый компонент только на TPanel к примеру?
  • {RASkov} © (12.11.10 13:08) [6]
    > [5] v_a_belousov   (12.11.10 13:02)

    type TMyRich class (TWinControl)
      Rich: T{Custom}RichEdit
    .....
    end;

  • {RASkov} © (12.11.10 13:17) [7]
    или

    type TMyRich = class(TRichEdit)
        private
         FParent: TWinControl;
    ....
    end;

  • v_a_belousov (12.11.10 13:36) [8]

    > {RASkov}

    Да проверил работает, спасибо) не додумался сам сначала что то)
  • DimaBr © (12.11.10 14:01) [9]
    Вам не нужно его класть на панель, Вам нужен наследник от TWinControl на котором лежит TRichEdit

    TMyRichEdit = class(TWinControl)
     fRich: TRichEdit

  • v_a_belousov (12.11.10 14:52) [10]

    > DimaBr

    Да, но для того чтобы вид у него был именно такой какой я задумал изначально приходится помучатся...
  • Vidog © (26.12.10 17:31) [11]

    > Да, но для того чтобы вид у него был именно такой какой
    > я задумал изначально приходится помучатся...


    Почему же? Задаем прозрачный регион у "себя". В процедурке Paint рисуем backbround. Далее создаем RichEdit, у которого Parent := Self;
    Вроде бы так должно быть :)
 
Конференция "Компоненты" » компонент на основе RichEdit [D7, WinXP]
Есть новые Нет новых   [134466   +3][b:0][p:0.001]