Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 25.04.2014
Сообщений: 69

Объясните условие перемещения сближающихся компонентов

09.10.2014, 21:02. Показов 654. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
int x0,y0,xn,yn;
bool flag1=false;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
DoubleBuffered=true;
xn=Label1->Left;
yn=Label1->Top;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Label1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
flag1=true;
x0=X;
y0=Y;        
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Label1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
if (flag1)
  {
  Label1->Left+=X-x0;
  Label1->Top+=Y-y0;
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Label1MouseUp(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
if (abs(Label1->Left-Shape1->Left)<100 && abs(Label1->Top-Shape1->Top)<100)
  {
    Label1->Left=Shape1->Left;
    Label1->Top=Shape1->Top;
  }
    else
      {
      Label1->Left=xn;
      Label1->Top=yn;
      }
      flag1=false;
}
Объясните почему в строке : if (abs(Label1->Left-Shape1->Left)<100 && abs(Label1->Top-Shape1->Top)<100) , вместо 100 не может быть ноль? и что будет если поставить ноль и убрать модуль?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.10.2014, 21:02
Ответы с готовыми решениями:

Объясните условие
for(int i=0;i&lt;size;++i) if(!(arr&amp;1)) printf(&quot;%d &quot;,arr); printf(&quot;\n2:\n&quot;); for(int i=size-1;i&gt;=0;--i) ...

Объясните условие
Имеются числа А1,А2,...,АN и B1,B2,...,BN. Составить из них N пар (Аi, Bj) таким образом, чтобы сумма произведений пар была максимальна...

Объясните условие задачи
Подскажите пожалуйста, что требуется сделать в задании.

3
 Аватар для ПерС
587 / 490 / 371
Регистрация: 05.11.2013
Сообщений: 1,271
Записей в блоге: 6
10.10.2014, 09:04
Это Builder, Для него есть отдельная ветка
почему в строке ... вместо 100 не может быть ноль?
потому что расстояния мнжду объектами не может быть меньше 0 пикселов
что будет если поставить ноль и убрать модуль?
условие сработает когда Label1 оказался левее и выше Shape1
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
10.10.2014, 20:30
Нет, "если поставить ноль и убрать модуль", условие сработает, когда Left и Top панели одновременно станут меньше, чем Left и Top шейпа.

В нынешнем виде, благодаря abs(), условие отработает, когда панель кажется с любой стороны шейпа в радиусе 100 пикселей. Правда, радиус визуально не симметричен, а отцентрован относительно левого верхнего угла каждого из компонентов.
0
 Аватар для ПерС
587 / 490 / 371
Регистрация: 05.11.2013
Сообщений: 1,271
Записей в блоге: 6
11.10.2014, 06:34
когда Left и Top панели одновременно станут меньше, чем Left и Top шейпа
ну, не так выразился, хотел сказать левый верхний угол Label1 оказался левее и выше левого верхнего угла Shape1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.10.2014, 06:34
Помогаю со студенческими работами здесь

Объясните условие задачи
Опишите функцию деления двух чисел с плавающей запятой, обработайте ошибку переполнения снизу (underflow) и ошибку переполнения сверху...

объясните условие задачи
Не понимаю условие задачи. Нужно составить алгоритм Есть иерархическая структура начальства 1. У директора руководителей нет 2. У...

Объясните условие задачи
задані одновимірні масиви (вектори) цілих чисел зі знаком v1(m) v2(n) v3(k) .Видати вектор з максимальним скалярним добутком серед векторів...

Объясните условие задачи
Здрасьте! Прошу Вашей помощи! Есть условие задачи, которое Я не совсем понимаю. Можете объяснить что нужно сделать? Спасибо за...

Объясните условие для графика
Доброе время суток. Кто нить сможет рассказать про условие? D=100, P=10. if ((mas1 &gt;= (D /P)*j) &amp;&amp; (mas1 &lt; (D/P)*(j+1))) ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru