Конференция "KOL" » Проблема с обработкой WM_PAINT в OnMessage
 
  • L`Autour © (12.09.08 09:22) [0]
    Суть: прога с двумя панелями, на первой панели есть Memo, который нужно отрисовывать вручную, когда он не в фокусе.

    Используя такой код:
    function TForm1.MemoValue1Message(var Msg: tagMSG;
     var Rslt: Integer): Boolean;
    begin
     Result := False;
     if (Msg.message = WM_PAINT)and
       (Form.ActiveControl <> MemoValue1) then
       //тут пока отрисовки нет
       Result := True;
    end;



    Получаю проблему с отрисовкой всего содержимого второй панели. Она отрисовывается, только если выполнять перемещение формы.
  • exero © (12.09.08 09:33) [1]
    Может быть все же рисовать в OnPaint, как Кладов в своей книжке завещал?
  • L`Autour © (12.09.08 10:32) [2]
    Тогда придется в OnPaint делать самому две процедуры отрисовки: по умолчанию (для редактирования) и своей (отрисовка символов уникода в ANSI проге), вместо возможной одной.
  • exero © (12.09.08 10:56) [3]
    А сразу Unicode использовать по каким-то причинам нельзя?
  • L`Autour © (12.09.08 11:20) [4]
    В 98SE и Me не прокатит.

    А с нормальной прорисовкой остальных компонент уже справился. Надо было добавить в обработке WM_PAINT MemoValue1.ValidateRect(Msg.hwnd, nil);
 
Конференция "KOL" » Проблема с обработкой WM_PAINT в OnMessage
Есть новые Нет новых   [134432   +18][b:0][p:0.001]