Показать сообщение отдельно
  #6  
Старый 15.06.2015, 12:33
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Для редактирования
Завести на форме несколько панелек(Можно использовать TPageControl)
и процедур типа таких
Код:
 type TForm1=class(TForm)
  ....
  private
    CurrentCircle:TCircle;
....
 end;

Procedure TForm1.EditFigure(F:TFigure);
Begin
  if Figure Is TCircle then begin
    // спрятать все панели, кроме панели для окружности,
    // или, если TPageControl, переключиться на нужную страницу
    CurrentCircle:=Figure As TCircle;
    ShowCircle();
  end
End;

Procedure TForm1.ShowCircle();
Begin
   EditCircleRadius.Text:=Format('%f',[CurrentCircle.Radius]);
   EditCircleX.Text:=Format('%d',CurrentCircle.Center.X]);
   EditCircleY.Text:=Format('%d',CurrentCircle.Center.Y]);
end;

При выборе фигуры в списке Вызвать EditFigure.

Соответственно на панельке для работы с окружностями нужны Едиты EditCircleRadius,EditCircleX и EditCircleY, а так же кнопки ButtonCircleSave и ButtonCircleCancel.

Код:
Procedure TForm1.ButtonCircleSave (Sender :TObject);
var
  O:TPoint;
begin
   CurrentCircle.Radius:=StrToFloat(EditCircleRadius.Text);
   O.X:=StrToInt(EditCircleX.Text);
   O.Y:=StrToInt(EditCircleY.Text);
   CurrentCircle.Center:=O;
end;
Procedure TForm1.ButtonCircleCancel (Sender :TObject);
begin
  ShowCircle();
end;

Остальное сам
Ответить с цитированием