Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
1 / 1 / 0
Регистрация: 10.03.2013
Сообщений: 20
1

Перемешение фигуры на TImage

05.05.2014, 17:28. Показов 416. Ответов 0
Метки нет (Все метки)

На Image изображено несколько фигур, необходимо реализовать перемещение этих фигур с помощью мыши. Сделал следующим образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
void TForm1::ImageDraw() {
    Image->Picture->Bitmap->FreeImage();
    Image->Picture->Bitmap = NULL;
 
    for(int i = 0 ; i < vResultTerms.size() ; i++){
        Image->Canvas->Font->Size = sizeFont;
        Image->Canvas->Rectangle(vResultTerms[i].X , vResultTerms[i].Y , vResultTerms[i].X + Image->Canvas->TextWidth(vResultTerms[i].getFileTerm()) + 20                                                        , vResultTerms[i].Y + Image->Canvas->TextHeight(vResultTerms[i].getFileTerm()) + 20);
        Image->Canvas->TextOut(vResultTerms[i].X + 10 , vResultTerms[i].Y + 10, vResultTerms[i].getFileTerm());
    }
}
 
void __fastcall TForm1::ImageMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) {
    int iResultTerms = vResultTerms.size();
    Image->Canvas->Font->Size = sizeFont;
    for(int i = 0 ; i < iResultTerms ; i++) {
        TRect TR(TPoint(vResultTerms[i].X , vResultTerms[i].Y), TPoint(vResultTerms[i].X + Image->Canvas->TextWidth(vResultTerms[i].getFileTerm()) + 20
                                                                     , vResultTerms[i].Y + Image->Canvas->TextHeight(vResultTerms[i].getFileTerm()) + 20));
        if(PtInRect(TR, TPoint(X,Y))) {
            if(Button == mbLeft) bControlImage = true;
            else bControlImage = false;
            indexControlImage = i;
            break;
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ImageMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{
    if(bControlImage) {
        vResultTerms[indexControlImage].X = X; vResultTerms[indexControlImage].Y = Y;
        ImageDraw();
    }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::ImageMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
{
    indexControlImage = -1;
    bControlImage = false;
}
//---------------------------------------------------------------------------
Все работает отлично, фигуры с помощью мыши перемещаются, но теперь нельзя переместить саму форму на которой находится Image. Почему?
1

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2014, 17:28
Ответы с готовыми решениями:

Как по нажатию мыши менять TImage и перерисовывать на него bmp с другого TImage?
Есть два TImage. На Image1 картинка TBitmap, Image1 растянут на всю форму. При нажатии на Image1 и...

Мерцание компонента Timage и перемещение Timage при нажатии
Здравствуйте! Помогите убрать мерцание компонента Timage при изменении размера. Нашел в...

Сделать перемешение по стрелкам меню
Помогите доработать меню. Дали задание сделать перемешение по стрелкам, ну и выбор по энтеру....

panel + pictureBox перемешение с помошью курсора
Как правильно cделать перемещение большой картинки на panel с помощью курсора, картинка не должна...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2014, 17:28

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Переместить Dock с Memo и убрать дальнейшее перемешение
Всем доброго времени суток! У меня очередная &quot;гениальная&quot; идея - зачем создавать еще одну форму в...

Could not find a match for 'TImage::TImage()'
Решил поработать с классами. Ну и заодно разобраться с firemonkey. Сразу же нарвался на такую...

Как сделать перемешение Movie Clip по клику мыши в нужное место?
Здравствуйте,я хочю сделать чтоб Movie Clip при клике куда угодно &quot;ходил за мышкой&quot; но только при...

Перемешение данных с Excel с двух файла в третий или с листа1 и ласта2 в лист3 в одном файле
Система работает следующим образом: Мне скидуют файл &quot;Ф1&quot; в котором перечень магазинов на которые...

Вводить название фигуры, выводить формулу для вычисления площади этой фигуры
Вводить название фигуры (треугольник, квадрат, ромб, прямоугольник) выводить формулу для вычисления...

Наложить чертёж плоской фигуры на проекцию этой фигуры
Стоит задача наложить чертёж земельного участка на фотографию этого участка. Участок обозримого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.