Помощь - Поиск - Пользователи - Календарь
Полная версия: Image. Ограничения
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Desktop_4
На image1 рисуеться цикл состоящий из точек и прямых...
Точки можно двигать по Image1...
Как сделать что бы йх нельзя было двигать за видемые границы Image1 ?
volvo
Цитата
Как сделать что бы йх нельзя было двигать за видемые границы Image1
Ты для начала покажи, как ты их рисуешь, чтобы их МОЖНО было двигать...
Desktop_4
Код

procedure TGraph.DrawVertex(Point: TPoint; Num: Integer);
begin
    Image.Canvas.Pen.Color := clBlack;
    Image.Canvas.Ellipse(Point.X - PointWidth, Point.Y - PointWidth, Point.X + PointWidth, Point.Y + PointWidth);
    if VIsSelected(Num) then
        Image.Canvas.Ellipse(Point.X - (PointWidth + 5), Point.Y - (PointWidth + 5), Point.X + (PointWidth + 5), Point.Y + (PointWidth + 5));

    Image.Canvas.Font.Color := clBlue;
    Image.Canvas.TextOut(Point.X, Point.Y, IntToStr(Num));
end;


procedure TGraph.DrawEdges;
var i, j: Integer;
begin
    for i := 1 to High(E) do
        for j := i+1 to High(E[i]) do begin
            if E[i][j] > 0 then begin
                Image.Canvas.Pen.Color := E[i][j];
                        
                Image.Canvas.MoveTo(V[i].X, V[i].Y);
                Image.Canvas.LineTo(V[j].X, V[j].Y);
            end;
        end;
end;


procedure TGraph.Draw;
var i: Integer;
begin
    Image.Canvas.FillRect(Image.ClientRect);

    DrawEdges;

    for i := 1 to High(V) do
        DrawVertex(V[i], i);
end;
Desktop_4
Никто не знает ?
вот процедура с помощью которой перетягиваются точки
как поставить ограничение, что бы курсор не мог двигаться за пределы image?

---

volvo
Ты даешь какую-то отрывочную информацию, а потом спрашиваешь, знает ли кто-нибудь... Я что, должен знать, что такое MoveVertex? И вообще Vertex это у тебя что? Как я могу посоветовать тебе что-то, не зная логики работы функции?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.