![]() |
|
|
#1
|
|||
|
|||
|
есть квадрат. нужно реализовать чтобы когда курсор был на угле. то можно было тянуть за этот угол
квадрат я нарисовал ![]() |
|
#2
|
||||
|
||||
|
Код:
При нажатии мыши: если координаты мыши около угла ставим глобальный флаг, сохраняем координаты мыши При движении мыши: если флаг из текущих координат мыши вычитаем сохраненные, получаем на сколько передвинулась мышь изменяем размер квадрата на новый используя эти значения При отпускании мыши: снять флаг |
|
#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; |
|
#5
|
|||
|
|||
|
буду исправлять
|
|
#6
|
|||
|
|||
|
все еще требуется решение
|
|
#7
|
||||
|
||||
|
Подсказки были, за 2 месяца мог бы и наваять.
|
|
#8
|
|||
|
|||
|
Цитата:
А по-хорошему это уже написано, надо искать на опен-сорс сайтах например в исходнике лазаруса может быть. |
|
#9
|
||||
|
||||
|
Не смеши, это настолько легко делается, что TShape-у просто тут делать нечего. А в API имеется функция, которая и соответственный рисунок на угол накладывает (тот полосатенький
). |
|
#10
|
|||
|
|||
|
зато шейпам можно установить курсор
и есть вероятность сделать одно решение, которое можно применить к любому визуальному компоненту одним вызовом функции у меня сложности возникли с тем, чтобы переопределить событие onmouse--- налету, сохранить предыдущий обработчик и вызывать его из своего и ещё непонятка, при движении одного shape должны двигаться ещё два смежных, вобщем забросил идею |
|
#11
|
|||
|
|||
|
Может кто сможет, из этой проги сделать квадрат чтобы тянуть его за углы, и он оставался квадратом только уменьшался или увеличивался. я пробывал что то не получается
|
|
#12
|
|||
|
|||
|
обязательно таскание за углы чтоли?
намного легче сделать так чтобы левая кнопка мыши например перемещала, а правая точно так же меняла размер ПС тот исходник не поможет |
|
#13
|
|||
|
|||
|
ребят помогите, очень-очень срочно нужно программу в паскале
http://www.delphisources.ru/forum/at...d=132464948 9 Последний раз редактировалось Vishenka, 23.12.2011 в 18:11. |