![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перемещение изображения с использованием CopyRect [D6, WinXP]
alex300474 © (2008-12-16 14:19:00)Пишу графический редактор, для перемещения изображения использую:
image2.Canvas.CopyRect(Rect(0,0,image2.Width,image2.Height),
image1.Canvas,Rect(OriginX,OriginY,OriginX+image2.Width,OriginY+image2.Height));
При первом перемещении всё работает. При последующих, в сдвигаемой области отображается не всё выделенное изображение, причём размер изображения в сдвигаемой области ограничен размером выделенным при первом перемещении. Пример сдвига изображения повзаимствовал из примера: http://blackman.hoha.ru/primer/2204/paintbrush.zip. В этом примере таже проблемма.
Я потратил уже много времени, моей компетенции не хватает, прошу помощи.
Заранее благодарен,Алексей.
Eraser (2008-12-19 16:35:00) [1]> [6] Омлет (17.12.08 22:58)
аргументируй.
использование TImage это по-сути [5] доведенный до совершенства и автоматизированный.
Омлет (2008-12-17 22:58:00) [2]> Eraser © (16.12.08 20:11) [3]
> лучше для перемещения используй отдельный компонент TImage, удобнее будет и возможностей больше.
Я бы не советовал ))
KilkennyCat (2008-12-16 23:14:00) [3]и вообще, странно все выглядит.
Создай два TRect, нормально пропиши вычисление их координат, тогда все и увидишь. В твоем оригинале думать сложно, особенно когда в имадже1 используются координаты имадже2... читабельный вариант будет выглядеть так:
ImageReceiver.Canvas.CopyRect(RectReceiver, ImageTransmitter.Canvas, RectTransmitter);
и ищи ошибку в вычислении RectTransmitter, локализация точнее и не надо будет грешить на CopyRect
KilkennyCat (2008-12-16 23:06:00) [4]
> А каков механизм этого обрезания?
> OriginX, OriginY,OriginX+image2.Width,OriginY+image2.Height)
Eraser (2008-12-16 20:11:00) [5]> [0] alex300474 (16.12.08 14:19)
лучше для перемещения используй отдельный компонент TImage, удобнее будет и возможностей больше.
alex300474 (2008-12-16 19:26:00) [6]А каков механизм этого обрезания? Такое складывается впечатление что параметры (высота,ширина) не устанавливаются, т.е. устанавливаются но для области меньшей чем первая.
KilkennyCat (2008-12-16 16:36:00) [7]Сохрани исходное изображение в буфер. Его и двигай, копируя туда, куда надо, и сколько надо. Таким образом, ты его не обрежешь.