![]() |
|
#1
|
||||
|
||||
![]() Допустим есть TImage размером 256х256 в него загрузено изоражение 1024х768. Как двигать попиксельно изображение внтури Image?
|
#2
|
||||
|
||||
![]() Что ты имеешь ввиду???
Анимацию??? Или просто в Image видно только часть изображения??? Посмотри на функцию BitBlt...удобна для создания спрайтов...и не только... Копирует часть изображения в другое... В начале был Бит, потом Байт и только потом появилось Слово... Последний раз редактировалось NIch, 04.03.2010 в 14:26. |
#3
|
||||
|
||||
![]() нет. не анимацию. нужно загружать в Image карту города и спомощю мышки передвигатся по ней.
|
#4
|
||||
|
||||
![]() Обязательно в Image???
Код:
var Map : TBitMap; begin Map := TBitMap.Create; Map.LoadFromFile('Map.bmp'); BitBlt (Form1.Canvas.Handle,//на какую форму вывести изображение 100, 100, 256, 256, //2 координаты и размеры изображения Map.Canvas.Handle,//какую картинку вывести 0, 0,//координаты начала прямоугольника картинки должны изменяться SRCCOPY);//способ копирования изображения , бывают разные end; Выводится изображение способом SRCCOPY на Form1 размером 256х256 по координатам 100, 100, взятое из Map. При этом из Map берется только кусок 256х256 начиная с 0, 0 (в данном случае)... При движении мыши ты должен пересчитывать последние координаты... В начале был Бит, потом Байт и только потом появилось Слово... |
#5
|
||||
|
||||
![]() Большое спасибо NIch!!! Буду пробывать.
Если не сложно еще показать маленький пример как обрабатывать движение мыши. Только учусь работать с графикой... |
#6
|
||||
|
||||
![]() Есть такие события как MouseMove, MouseUp, MouseDown...
Обрабатывай эти события...У них в параметрах есть переменные X и Y мыши... Поэкспериментируй с таким кодом и все поймешь... Код:
onMouseDown(X, Y ...) или Move или Up и т.д. begin ShowMessage('X = '+IntToStr(X)+' Y = '+IntToStr(X)); end; В начале был Бит, потом Байт и только потом появилось Слово... |
#7
|
||||
|
||||
![]() Зачем использовать TImage, если для работы с большими картинками специально сделан компонент TScrolBox.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#8
|
||||
|
||||
![]() Может и вариант...А как его найти???
В начале был Бит, потом Байт и только потом появилось Слово... |
#9
|
|||
|
|||
![]() А зачем его искать?))
|
#10
|
||||
|
||||
![]() Ну дык, как его на форму кинуть, где, в какой панели его взять???
Или это сторонний компонент??? Чуть позже... Ага нашел, но ведь он не работает с изображениями, по сабжу нужно на него Image кидать размером с изображение... В начале был Бит, потом Байт и только потом появилось Слово... Последний раз редактировалось NIch, 05.03.2010 в 10:26. |
#11
|
|||
|
|||
![]() Ну дык и в чем проблема в нем динамически image создать по размерам картинки, хотя у image-a насколько я помню есть свои проблемы при работе с большими картинками. В идеале здесь нужен компонент с буферизацией, тогда работать будет быстро и надежно)
|
#12
|
||||
|
||||
![]() Спасибо NIch буду пробывать твой вариант с BitBlt. А на счет Image то не обязательно просто ищу вариант как работать с картами. Возможно будут еще какие-то решения?
|
#13
|
||||
|
||||
![]() 2 Asinkrit
Ну дык, а кто говорит, что есть какая то проблема??? Я вообще предложил выше отказаться от TImage и работать непосредственно с изображением и рисовать прямо на форме... 2 movnet Кой какой опыт есть, если что обращайся, че нить придумаем... В начале был Бит, потом Байт и только потом появилось Слово... Последний раз редактировалось NIch, 05.03.2010 в 11:30. |
#14
|
||||
|
||||
![]() NIch опыта работы с графикой практически 0.
![]() |
#15
|
||||
|
||||
![]() Ну вот вам пример работы с большой картинкой.
Код:
procedure TForm43.FormCreate(Sender: TObject); Var Img: TImage; begin Img := TImage.Create(Self); Img.Parent := ScrollBox1; Img.Picture.LoadFromFile('YouBitmap.bmp'); Img.Width := Img.Picture.Width; Img.Height := Img.Picture.Height; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |