Изменение Image при resize
Если можно - помогите начинающему, проблема следующая:
Мне нужно изменить TImage при resize формы - ну т.е. как бы событие отлавливается и размер пересчитывается (проверял), однако собственно графика как выводилась в прежний размер - так же в тот размер и выводится (компонент увеличивается, а задействованная область остается прежней) - никакие Repaint - не помогают. Как я понимаю вопрос достаточно тривиальный - но день угробил ничего путного не откопал...
С уважением, Алексей.
У TImage есть свойство Stretch, установите его в true, тогда содержимое будет растягиваться во весь размер TImage, если только это изображение не иконка.
Итого, что удалось реализовать:
TForm->ScrollBox->TImage
На последнем отрисовываю ЭКГ. Но я не могу программно изменять заданный размер имиджа. Т.е. ситуация, о какой я спрашивал первоначально была как выяснилась для первоначального имджа меньше размера формы.
Теперь я устанавливаю его больше - но очень большой (более 5000 * 800) он не берет - ругается, и например если после его программно изменять - без толку, игнорирует... Пока мне размера хватает, но что делать, если потребуется больше?
С уважением, Алексей.
А что, если вместо TScrollBox и TImage воспользоватья TChart и TLineSeries или TFastLineSeries? С прокруткой TChart отлично справляется, подписи на осях и так далее, и тому подобное, включая масштабирование и многостраничную печать.
Мне надо просто отразить зависимость и в нужных местах вставить некоторые текстовые фрагменты ( расчетные характеристики пульса, аритмий и пр.). Никакой другой сервис TChart - координатные оси, сетка и пр. мне категорически не нужен. В этом режиме его реально использовать?
Еще раз извините мою некомпетентность в данном вопросе.
Да, конечно можно, посмотрите пример, который идёт вместе с билдером, каталог Examples\Teechart. Там много интересного.
Как я понял каждый кусок графика пишется в свою серию - соответственно на 40 - 60 серии все это дело подвисает ( EOutOfResources ). Т.е. как я понимаю, получается, что в лоб, что по лбу - TImage нельзя задать слишком большим, а на TChart нельзя разместить неограниченное число серий.
Вопрос таков: я понимаю ситуацию правильно и мне надо изменять алгоритм и выводить в компонент только кусок файла - или я таки не разобрался с этим компонентом?
Ну на крайний случай, сделайте два TChart, ну три. Да хоть восемь.
Снимаем ЭКГ, 12 отведений (12 графиков) ну скажем несколько минут. Т.е. чтобы график был читабелен я на одной серии (в моем понимании - куске графика идущем слева - направо) могу разместить в зависимости от разрешения экрана отрезок ну скажем в 800 - 1000 отсчетов ( около 5 секунд ). Т.е. имею 12 графиков на 5 секунд. Далее я продолжаю отрисовку ниже (компонент размещен на ScrollBox), снова 12 графиков и т.д. Общий размер обрабатываемого файла - порядка Мб., общее число отсчетов приближается к 1 000 000 - вероятно это слишком много?
С уважением, Алексей.
Т.е. я на данный момент хотел бы определиться в принципе - могу ли я сразу отобразить всю ЭКГ пациента, какой бы длины она ни была - если рано или поздно программа повиснет (ну не на 50 - так на 150 серии) то уж лучше планировать отображение выбранного фрагмента файла...
Да нет, не нужны такие трудности. TChartSeries - контейнер данных. Не нужно на каждый 5-секундный отрезок времени заводить новую серию. Всего серий будет у Вас 12 штук, данные будут там содержаться за полный сеанс ЭКГ. А отображаться они могут с любым увеличением, за это отвечают свойства Minimum и Maximum компонента TChartAxis. Ещё раз посмотрите пример из комплекта билдера, как производится масштабирование и прокрутка.
Все, спасибо огромное, дошло, сейчас буду разбираться... Извините за непонятливость - Builder я действительно вторую неделю как вижу...