|
#1
|
|||
|
|||
Помогите с прогой
есть квадрат. нужно реализовать чтобы когда курсор был на угле. то можно было тянуть за этот угол
квадрат я нарисовал |
#2
|
||||
|
||||
Код:
При нажатии мыши: если координаты мыши около угла ставим глобальный флаг, сохраняем координаты мыши При движении мыши: если флаг из текущих координат мыши вычитаем сохраненные, получаем на сколько передвинулась мышь изменяем размер квадрата на новый используя эти значения При отпускании мыши: снять флаг jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
так тяжело. примерчик бы
|
#4
|
||||
|
||||
У тебя столько ляпов в программе, что для начала их исправь. К примеру:
Код:
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
|
|||
|
|||
буду исправлять
|
#6
|
|||
|
|||
все еще требуется решение
|
#7
|
||||
|
||||
Подсказки были, за 2 месяца мог бы и наваять.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#8
|
|||
|
|||
Цитата:
А по-хорошему это уже написано, надо искать на опен-сорс сайтах например в исходнике лазаруса может быть. |
#9
|
||||
|
||||
Не смеши, это настолько легко делается, что TShape-у просто тут делать нечего. А в API имеется функция, которая и соответственный рисунок на угол накладывает (тот полосатенький ).
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#10
|
|||
|
|||
зато шейпам можно установить курсор
и есть вероятность сделать одно решение, которое можно применить к любому визуальному компоненту одним вызовом функции у меня сложности возникли с тем, чтобы переопределить событие onmouse--- налету, сохранить предыдущий обработчик и вызывать его из своего и ещё непонятка, при движении одного shape должны двигаться ещё два смежных, вобщем забросил идею |
#11
|
|||
|
|||
Может кто сможет, из этой проги сделать квадрат чтобы тянуть его за углы, и он оставался квадратом только уменьшался или увеличивался. я пробывал что то не получается
|
#12
|
|||
|
|||
обязательно таскание за углы чтоли?
намного легче сделать так чтобы левая кнопка мыши например перемещала, а правая точно так же меняла размер ПС тот исходник не поможет |
#13
|
|||
|
|||
ребят помогите, очень-очень срочно нужно программу в паскале
http://www.delphisources.ru/forum/at...d=132464948 9 Последний раз редактировалось Vishenka, 23.12.2011 в 18:11. |