Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Image. Ограничения

Автор: Desktop_4 31.05.2007 2:40

На image1 рисуеться цикл состоящий из точек и прямых...
Точки можно двигать по Image1...
Как сделать что бы йх нельзя было двигать за видемые границы Image1 ?

Автор: volvo 31.05.2007 2:42

Цитата
Как сделать что бы йх нельзя было двигать за видемые границы Image1
Ты для начала покажи, как ты их рисуешь, чтобы их МОЖНО было двигать...

Автор: Desktop_4 31.05.2007 2:50

Код

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 1.06.2007 4:28

Никто не знает ?
вот процедура с помощью которой перетягиваются точки
как поставить ограничение, что бы курсор не мог двигаться за пределы image?


---


Автор: volvo 1.06.2007 4:48

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