Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.10.2011, 11:35
BIG_BO BIG_BO вне форума
Прохожий
 
Регистрация: 09.10.2010
Сообщения: 29
Репутация: 10
По умолчанию Помогите с прогой

есть квадрат. нужно реализовать чтобы когда курсор был на угле. то можно было тянуть за этот угол
квадрат я нарисовал
Вложения
Тип файла: rar lab2.rar (51.0 Кбайт, 7 просмотров)
Ответить с цитированием
  #2  
Старый 12.10.2011, 16:06
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Код:
При нажатии мыши:
если координаты мыши около угла
  ставим глобальный флаг, сохраняем координаты мыши

При движении мыши:
если флаг
  из текущих координат мыши вычитаем сохраненные, получаем на сколько передвинулась мышь
  изменяем размер квадрата на новый используя эти значения

При отпускании мыши:
снять флаг
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 12.10.2011, 16:09
BIG_BO BIG_BO вне форума
Прохожий
 
Регистрация: 09.10.2010
Сообщения: 29
Репутация: 10
По умолчанию

так тяжело. примерчик бы
Ответить с цитированием
  #4  
Старый 12.10.2011, 22:17
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

У тебя столько ляпов в программе, что для начала их исправь. К примеру:
Код:
procedure MyNCPaint(Wnd : HWND; Msg: UINT; wParam, lParam : Longint);
var
  R, R1   : TRect;
  ps      : TPaintStruct;
  Context : HDC;
  Font    : HFONT;
  Pen     : HPEN;
  Brush   : HBRUSH;
begin
  Context := GetWindowDC(Wnd);
  GetClientRect(Wnd, R);

  SelectObject(Context, Pen);    // А ты создавал?
  selectobject(context, brush);  // А ты создавал?

  ExtFloodFill(context, 0, 50, brush, FLOODFILLSURFACE);

  DeleteObject(pen);             // Удаляем несозданное?
  DeleteObject(brush);           // Удаляем несозданное?

  Ellipse(Context, 600, 0, 630, 30);
  Font := CreateFont(30, 50, 0, 0, FW_Normal, 0, 0, 0,
    DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
    DEFAULT_PITCH, 'Tahoma');
  SelectObject(Context, Font);
  DrawText(Context, 'Hey Arnold', -1, R, DT_LEFT);

  DeleteObject(Font);         // Удаляем выбранный в контекст объект?
  ReleaseDc(hwnd, context);
end;
и это, только маленькая толика из всех ляпов.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 14.10.2011, 17:13
BIG_BO BIG_BO вне форума
Прохожий
 
Регистрация: 09.10.2010
Сообщения: 29
Репутация: 10
По умолчанию

буду исправлять
Ответить с цитированием
  #6  
Старый 02.12.2011, 14:25
BIG_BO BIG_BO вне форума
Прохожий
 
Регистрация: 09.10.2010
Сообщения: 29
Репутация: 10
По умолчанию

все еще требуется решение
Ответить с цитированием
  #7  
Старый 02.12.2011, 21:20
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Подсказки были, за 2 месяца мог бы и наваять.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #8  
Старый 03.12.2011, 11:05
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

Цитата:
есть квадрат. нужно реализовать чтобы когда курсор был на угле. то можно было тянуть за этот угол
квадрат я нарисовал
я начинал такое: есть tshape, вызовв функции и делаются ещё 4 черных tshape (наследников-tshape, или даже panel), которые при создании получают хедл того первого встают куда надо и при движении меняют его размер, я чёта начял но забросил, если надо могу выложить что есть, если ты сможешь доделать.
А по-хорошему это уже написано, надо искать на опен-сорс сайтах например в исходнике лазаруса может быть.
Ответить с цитированием
  #9  
Старый 03.12.2011, 21:14
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Не смеши, это настолько легко делается, что TShape-у просто тут делать нечего. А в API имеется функция, которая и соответственный рисунок на угол накладывает (тот полосатенький ).
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #10  
Старый 04.12.2011, 09:32
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

зато шейпам можно установить курсор
и есть вероятность сделать одно решение, которое можно применить к любому визуальному компоненту одним вызовом функции
у меня сложности возникли с тем, чтобы переопределить событие onmouse--- налету, сохранить предыдущий обработчик и вызывать его из своего
и ещё непонятка, при движении одного shape должны двигаться ещё два смежных, вобщем забросил идею
Ответить с цитированием
  #11  
Старый 21.12.2011, 16:20
BIG_BO BIG_BO вне форума
Прохожий
 
Регистрация: 09.10.2010
Сообщения: 29
Репутация: 10
По умолчанию

Может кто сможет, из этой проги сделать квадрат чтобы тянуть его за углы, и он оставался квадратом только уменьшался или увеличивался. я пробывал что то не получается
Вложения
Тип файла: rar Лаб2 massiv.rar (55.4 Кбайт, 4 просмотров)
Ответить с цитированием
  #12  
Старый 22.12.2011, 10:05
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

обязательно таскание за углы чтоли?
намного легче сделать так чтобы левая кнопка мыши например перемещала, а правая точно так же меняла размер
ПС тот исходник не поможет
Ответить с цитированием
  #13  
Старый 23.12.2011, 18:05
Vishenka Vishenka вне форума
Прохожий
 
Регистрация: 23.12.2011
Сообщения: 1
Репутация: 10
По умолчанию

ребят помогите, очень-очень срочно нужно программу в паскале
http://www.delphisources.ru/forum/at...d=132464948 9
Изображения
Тип файла: jpg z_9f63c1d8.jpg (93.1 Кбайт, 7 просмотров)

Последний раз редактировалось Vishenka, 23.12.2011 в 18:11.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:42.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter