Неправильное поведение / Ошибка в delphi2010 «метод извлечения» - PullRequest
7 голосов
/ 26 июля 2011

Я сталкиваюсь с этой проблемой, когда пытаюсь извлечь метод в операторе if. я не смог найти ни одного сообщения об ошибке на нем.

procedure TForm1.BitBtn3Click(Sender: TObject);
var
  x: integer;
  b: boolean;
begin
  if true then
    x := 8    //********************** i try to extract this line
  else
    x := 6;

  showmessage(inttostr(x));
end;

результат, который я получаю:

procedure TForm1.BitBtn3Click(Sender: TObject);
var
  x: integer;
  b: boolean;
begin
  if true then
    newMethode
  else
    x := 6;

  showmessage(inttostr(x));
end;

и новый метод:

procedure TForm1.newMethode;
var
  x: Integer;
begin
  x := 8;
end;

Кто-нибудь может проверить, как обстоят дела с Delphi XE? Кто-нибудь знает, было ли это сообщено?

Ответы [ 2 ]

4 голосов
/ 26 июля 2011

Это ошибка в рефакторинге "Extract Method".

В качестве альтернативы вы можете использовать рефакторинг «Извлечь метод» из ModelMaker Code Explorer инструмент рефакторинга. По цене 99 евро это относительно дешевый инструмент, работающий с Delphi 5 и более поздних версий, а недавние обновления 9.0.5 значительно улучшили свой рефакторинг метода извлечения, так что я не долгое время пользовался встроенным в Delphi.

Два больших преимущества:

  • запускает диалоговое окно метода-редактора, где вы можете изменить и изменить порядок параметров, которые затем отражаются в извлеченном и вызывающем коде
  • оставляет исходный код в (* *) комментарии на случай, если что-то не получается, или вам нужно сослаться на него

Кроме того, он помещает закладки (пронумерованные 7, 8 и 9) в коде для облегчения навигации между извлеченным кодом и сайтом вызова.

Настоятельно рекомендуется.

0 голосов
/ 26 июля 2014

Ответ о методе извлечения можно найти по адресу Запись в блогах Oracle

...