Есть ли в Delphi возможность сохранить элементы управления Form в том же порядке, что и DFM?

Я только что создал новое приложение VCL и поместил следующие элементы управления в форму в следующем порядке:

  1. Главное меню
  2. ToolBar
  3. Статус бар

Элементы управления отображаются в классе TForm в том порядке, в котором я добавил их в форму. Когда я сравниваю класс TForm с DFM, элементы управления располагаются в другом порядке.

Учебный класс:

type
  TForm5 = class(TForm)
    MainMenu1: TMainMenu;
    ToolBar1: TToolBar;
    StatusBar1: TStatusBar;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

DFM (свойства удалены для иллюстрации)

object Form5: TForm5
  object ToolBar1: TToolBar
  end
  object StatusBar1: TStatusBar
  end
  object MainMenu1: TMainMenu
  end
end

Я хотел бы заказать элементы управления в определении класса, чтобы они соответствовали файлу DFM. Есть ли возможность в IDE сделать это?

1 ответ

Как отмечено в комментариях к вопросу, в стандартной IDE такого механизма нет, и полезность любого такого механизма (или результата) сомнительна и в лучшем случае ограничена.

Но если вам абсолютно необходимо иметь какой-то порядок / организацию в этой области и вы не хотите располагать эти объявления вручную, то я бы просто периодически использовал инструмент редактора GE Sperts "Sort source lines", как требуется для поддержания порядка / группировка по вашему желанию.

Выберите объявления, которые вы хотите отсортировать и отсортировать по возрастанию или по убыванию в соответствии с предпочтениями.

Пока вы последовательно называете все свои компоненты, это даст вам любую "группировку", какую вы пожелаете, при условии, что вы реализуете ее с помощью порядка сортировки, воплощенного в соглашении об именах компонентов. например, все пункты меню начинаются с "mi...", все пункты меню File затем начинаются с "miFile..." и т. д. и т. д.

Тем не менее, вы в зависимости от ваших имен, чтобы определить итоговый порядок. Например, гипотетический набор пунктов меню " Файл" будет иметь вид:

miFileExit
miFileNew
miFileOpen
miFilePrint
miFileSave
miFileSeparator1
miFileSeparator2

Который почти наверняка не тот порядок, в котором они появляются в самом меню. Но почему это должно иметь значение, непонятно, и, как способ облегчить расположение объявлений, альфа-сортировка, скорее всего, будет полезна человеку, у которого в голове нет копии порядка объявлений компонентов постоянной формы.

Другие вопросы по тегам