Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Builder Как нарисовать флаг Канады? нз, как нарисовать флаг Канады, помогите.. https://www.cyberforum.ru/ cpp-builder/ thread1702476.html Xe10 рисования текста C++ Builder
Ребята подскажите как в Xe10 воспользоваться функцией drawtext, TextOutA как я полагаю не реализованна... Цель нарисовать на картинке буквы, но что то совсем не выходит, подскажите плиз
C++ Builder [C++ Error] Unit1.cpp(12): E2141 Declaration syntax error Здравствуйте! Это моя первая тема, поэтому простите за ошибки и неточности. Суть вопроса в том, что проект компилировался, работал и вдруг начал выдавать ошибку. Я прошу сейчас постараться ответить, ЧТО не нравится компилятору в "TForm *Form1" (12 строка)? Unit1.cpp: //--------------------------------------------------------------------------- #include <vcl.h> #include <typeinfo.h> https://www.cyberforum.ru/ cpp-builder/ thread1702362.html C++ Builder По строчная запись в файл Здравствуйте. Есть ли в Builder класс, который может записывать строку в файл. На данный момент использую StringList(загружаю файл в память, дописываю новые данные, сохраняю в файл), но, это может выйти боком, ведь если будет происходить загрузка большого файла в память, то она может просто напросто закончится. Прошу помощи. Спасибо за внимание. https://www.cyberforum.ru/ cpp-builder/ thread1702346.html
C++ Builder Сохранение и заполнение StringGrid
Помогите сделать заполнение StringGrid1 с помощью файла, матрица матрица формируется в ручную(её размеры) вот код сохранение StringGrid1 void __fastcall TForm3::N3Click(TObject *Sender) { if(SaveDialog1->Execute()){TStringList *pStrings = new TStringList; for(int i=0; i <= StringGrid1->RowCount; i++) { pStrings->Add(StringGrid1->Cells + " " +...
C++ Builder Запуск exe с параметром Доброго времени! Вопрос, скорей всего неоднократно обсуждался, но все же, проблема в следующем: как запускать .exe файл с параметрами? https://www.cyberforum.ru/ cpp-builder/ thread1702262.html
C++ Builder Задано число элементов последовательности n. Написать программу нахождения всех чисел, кратных введенному числ https://www.cyberforum.ru/ cpp-builder/ thread1702135.html
Задано число элементов последовательности n. Написать программу нахождения всех чисел, кратных введенному числу и таких, что не превышают 300. Считать, что числа последовательности вводятся по одному.
Работа с файлами - не могу разобатся C++ Builder
Помогите пожалуйста немогу понять где ошибка
C++ Builder Перерисовка точек через координаты при масштабировании Несколько тем назад спрашивала про масштабирование) Совсем ничего придумать не могу. есть Image, который масштабируется, но на всем есть точки Shape, нужно чтобы они при изменении масштаба оставались на тех же местах относительно рисунка, понимаю, что надо удалить все точки старые и по новому перерисовать по координатам из таблицы, предварительно пересчитав из через масштаб. но не могу это... https://www.cyberforum.ru/ cpp-builder/ thread1702100.html C++ Builder Запустить Color Dialog и перекрасить вершину в другой цвет Всем доброго времени суток. Задача такая.При нажатии на канве у меня рисуется вершина графа (обычный кружок) и заносятся координаты точек в массив типа TPoint.Как сделать что бы при нажатии на вершину запускался Color Dialog и можно было перекрасить вершину в другой цвет? Программу прилагаю https://www.cyberforum.ru/ cpp-builder/ thread1702024.html
C++ Builder Переписать программу сортировки подсчетом через stringgrid
Нужно создать два stringgrid в одном елементи массива а в другом должен быть уже отсортированный массив методом подсчета. Массив одномерный с елементами типа int сортировка по возрастанию вот код на C++ не могу понять как запихнуть его в stringgrid . include <iostream> using namespace std; int a; int c; int main() { int n;//количество элементов в массиве
C++ Builder Хочу узнать ответы с .exe файла https://www.cyberforum.ru/ cpp-builder/ thread1701727.html
Никак не могу узнать ответы с этой программы
93 / 77 / 12
Регистрация: 26.07.2013
Сообщений: 553
04.04.2016, 13:17  [ТС] 0

Не перемещается TShape - C++ Builder - Ответ 8976534

04.04.2016, 13:17. Показов 1468. Ответов 9
Метки (Все метки)

Ответ

- Насколько я понял, Вы делаете следующие вещи:
- 1) В среде создаете фиктивный Шейп Shape1 (можно даже с 0-ми размерами, чтобы не был виден).
- 2) Опять же в среде создаете для него обработчик Shape1MouseMove.
- 3) А потом в обработчике перемещения мыши на форме управление передается обработчику перемещения мыши
на фиктивном Шейпе (с объектом - динамический Шейп).
С отладчиком убедился, что работают только следующие обработчики:
FormMouseDown();
FormMouseMove();
FormMouseUp();

Shape1MouseMove();
shpMouseDown();
- Все остальные обработчики НЕ РАБОТАЮТ (не вызываются вообще). Я их вообще выключил или удалил!
Переменные X_Save и Y_Save (мои) и OldX и OldY (Ваши) - НЕ РАБОТАЮТ вообще. Я их закомментировал или удалил!
- И тем не менее проект работает правильно.

- Показываю листинг последнего (облегченного) проекта, хотя полного понимания, как оно все работает нет:
Файл Unit1.h:
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
42
43
44
45
46
47
48
49
50
//##### ..... #####
// .........
class   TForm1  : public    TForm
{
 
__published:    // IDE-managed Components
    TShape *Shape1;
    void __fastcall FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y);
    void __fastcall FormMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y);
 
//- void __fastcall Shape1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
//-          int X, int Y);
    void __fastcall Shape1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
//- void __fastcall Shape1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
//-          int X, int Y);
    void __fastcall FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
 
 
 
private:    // User declarations
    // указатель на динамический Шейп.
    TShape*     shp;
 
    //##### ..... #####
//- // для сохранения координат Мыши.
//- int     X_Save;
//- int     Y_Save;
    // признак Нажатия левой клавиши Мыши.
    bool    IsMouseDown;
 
    // обработчик нажатия клавиши мыши на Шейпе.
    void __fastcall  TForm1::shpMouseDown( TObject*  Sender, TMouseButton  Button, TShiftState  Shift,
        int  X, int  Y );
//- // обработчик перемещения клавиши мыши на Шейпе.
//- void __fastcall  TForm1::shpMouseMove( TObject*  Sender, TShiftState  Shift,
//-     int  X, int  Y );
//- // обработчик отпускания клавиши мыши на Шейпе.
//- void __fastcall  TForm1::shpMouseUp( TObject*  Sender, TMouseButton  Button, TShiftState  Shift,
//-     int  X, int  Y );
 
public:     // User declarations
    // конструктор.
    __fastcall  TForm1(TComponent* Owner);
 
};
//------------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//------------------------------------------------------------------------------
Файл Unit1.cpp:
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
//##### ..... #####
// радиус динамического Шейпа по оси X.
int     shp_rad_x = 4;
// радиус динамического Шейпа по оси Y.
int     shp_rad_y = 12;
 
 
//##### ..... #####
// конструктор.
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    // фиктивный Шейп - НЕ имееи размеров.
    Shape1->Width = 0;
    Shape1->Height = 0;
    // фиктивный Шейп - невидим.
    Shape1->Visible = false;
    // указатель на динамический Шейп.
    shp = NULL; //(TShape*)
 
    // признак Нажатия левой клавиши Мыши.
    IsMouseDown = false;    //(bool)
}
 
//##############################################################################
// .........    //(РАБОТАЕТ !)
void __fastcall  TForm1::FormMouseDown( TObject*  Sender, TMouseButton  Button, TShiftState  Shift,
    int  X, int  Y )
{
    // *** динамический "Шейп". ***
    // создать динамический "Шейп".
    shp = new   TShape( this );
    shp->Parent = this;
    // размеры.
    shp->Width = shp_rad_x*2;
    shp->Height = shp_rad_y*2;
    // положение.
    shp->Top = Y - shp_rad_y;
    shp->Left = X - shp_rad_x;
    // цвет.
    shp->Brush->Color = clAqua;
    // динамические обработчики.
    shp->OnMouseDown    = &shpMouseDown;
//- shp->OnMouseMove    = &shpMouseMove;
//- shp->OnMouseUp      = &shpMouseUp;
    // .........
    shpMouseDown( Sender, Button, Shift,    //(TObject*, TMouseButton, TShiftState,)
            X - shp->Left, Y - shp->Top );  //(int, int)
}
 
// .........    //(РАБОТАЕТ !)
void __fastcall     TForm1::FormMouseMove( TObject*  Sender, TShiftState  Shift, int  X, int  Y )
 
{
    if ( shp    && IsMouseDown )
    {
        Shape1MouseMove(
            shp, Shift,
            X - shp->Left - shp_rad_x,  //(чтобы курсор мыши бы все время
            Y - shp->Top - shp_rad_y ); // посередине динамического Шейпа.)
    }
}
 
// .........    //(РАБОТАЕТ !)
void __fastcall  TForm1::FormMouseUp( TObject*  Sender, TMouseButton  Button, TShiftState  Shift,
    int  X, int  Y )
{
    // .........
    delete  shp;
    shp = NULL;
}
 
//##############################################################################
// .........    //(РАБОТАЕТ !)
void __fastcall  TForm1::shpMouseDown( TObject*  Sender, TMouseButton  Button, TShiftState  Shift,
    int  X, int  Y )
{
//- X_Save = X;
//- Y_Save = Y;
    IsMouseDown = true;
}
 
//##############################################################################
//-int      OldX = 0;
//-int      OldY = 0;
 
// .........    //(РАБОТАЕТ !)
void __fastcall TForm1::Shape1MouseMove(TObject *Sender, TShiftState Shift, int X,
          int Y)
{
    if ( IsMouseDown )
    {
        TShape*     shape = static_cast<TShape*>(Sender);
        shape->Left += X;   // - OldX;
        shape->Top += Y;    // - OldY;
    }
}


Вернуться к обсуждению:
Не перемещается TShape C++ Builder
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2016, 13:17
Готовые ответы и решения:

OnDblClick на TShape
Прошу помощи: Как реализовать OnDblClick на TShape?

динамический TShape
динамически создаю компоненты TShape.потом хочу левым кликом мыши по одному компоненту сохранить...

особенности TShape
При рисовании по форме зарисовывается Shape и его приходистя обновлять. При этом автоматически...

Наследование от TShape
Пишу класс наследник от TShape. Не получается переопределить конструктор... Выдает ошибку: ...

9
04.04.2016, 13:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.04.2016, 13:17
Помогаю со студенческими работами здесь

Компонент TShape
Здравствуйте всем) Скажите, пожалуйста, можно ли закрашивать Shape не полностью, а в процентном...

Вращение TShape
Доброго времени суток! Возникла такая проблема... Пишу в Builder. На форме динамически...

Равномерное движение TShape
Появилась проблемка. Есть фигура, которая движется по прямой, задающейся 2 точками. Высчитал...

Движение TShape вместе с TImage
Изображение движется с помощью мыши. ПКМ ставит TShape на изображении. Нужно что бы при движении...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru