Помогите. Запутался с аутовизом + Flowto

отредактировано 04:34 Раздел: FastReport 4.0
Привет. Помогите решить проблему. Чего то совсем запутался голова не варит :) (Пятница ?)


На форме есть 3 мемки.

Мемо1 лежит на верху, и задает некую длину. Это так сказать мерный метр :)

Предположим у него длина 10.

Мемо2 Лежит под ним и выводит некие данные.

Мемо3 Лежит под Мемо2 и является целью для FlowTo Memo2.



ЗАДАЧА.
Если ширина Мемо2 с данными вышла меньше чем длина Мемо1 (т.е. тех самых 10),
то сделать ей AutoWidth := True - чтобы она уменьшилась до своего миниамального размера (это принципиально, т.к. по условию задачи мне надо будет приставить рядом еще одну мемку - ну не суть короче - в общем это НЕОБХОДИМОСТЬ)

Если ширина Мемо2 с данными больше чем длина Мемо1, то надо отключить AutoWith, сделать
ее длину равной длине Мемо1, и включить FlowTo на мемо3. Т.е. сделать чтобы ее длина стала



Прикладываю прожект.
В нем я в Мемо2 вписал очень длинный текст - что мемка аж вылазит за длину печатного листа. Соответсвтенно мне нужно сделать чтобы она уменьшилась до длины Мемо1 и оставшийся текст перенесся в Мемо2.
В приложеном прожекте ширина то уменьшается, а вот переноса нету...


Также в этом же прожекте еще 3 мемки они показывают что я хочу если текст маленький - чтобы произошол автосайзин - это работает. И вот мне нужно чтобы вот эти два условия работали взаимно !!! Когда надо уменьшались, когда надо расширялись..

Я чего то запутался в конец... Подскажите как решить трабл плиз...


PS. Если чего то не ясно в задаче - спрашивайте, уточню.c

Комментарии

  • отредактировано 04:34
    Если инетерсно я этот же вопрос задал на SQL.ru...

    http://sql.ru/forum/actualthread.aspx?bid=...47937&pg=-1
  • отредактировано 04:34
    Привет. В прикрепленном архиве ваш проект, который я немного изменил. Идея вот в чем:
    1. Memo2.AutoWidth установить в False
    2. Сделать Memo2.Width изначально равным Memo1.Width
    3. Memo3.AutoWidth установить в True
    4. Memo3.Width сделать равным 0
    5. Весь ваш скрипт, заменить на следующий:
    procedure Memo2OnAfterData(Sender: TfrxComponent);
    begin
      if Memo3.Width = 0 then Memo2.AutoWidth := True;
    end;
    
    begin
    
    end.
    



  • отредактировано 04:34
    ДА работает ! )))

    Круто.

    И на SQL подсказали как решить - теперь у мну целых два решения )))


    Спасибо )

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.