Правило 1: Создайте отряд для каждого класса (Один класс, один отряд)
Всегда имейте это в виду: частная (PRivate) и защищенная (protected) части класса скрыты только от классов и процедур в других модулях. Поэтому, если вы хотите эффективной инкапсуляции, вам следует обеспечить, чтобы каждый класс A использовал отдельный модуль. Для некоторых простых классов, например тех, которые наследуются от других классов, вы можете использовать общий модуль. Однако количество классов, использующих один и тот же модуль, ограничено: не помещайте более 20 сложных классов в простой модуль.
Правило 2: Назовите компоненты
Также важно использовать описательные имена для компонентов. Самый распространенный способ имени — начать со строчной буквы класса плюс функции компонента, например BtnAdd или editName.
Правило 3: Назовите события
Еще важнее дать соответствующие имена методам обработки событий. Если вы дадите компоненту подходящее имя, системное имя ButtonClick по умолчанию станет BtnAddClick. Хотя мы можем догадаться о функции этого обработчика событий по имени, я думаю, что лучше использовать имя, описывающее функцию метода, чем использовать имя, присвоенное Delphi. Например, событие OnClick кнопки BtnAdd можно назвать AddToList. Это сделает вашу программу более читабельной, особенно когда вы вызываете обработчик событий в других методах класса, и поможет программистам выбирать один и тот же метод для похожих событий или разных компонентов.
Правило 4: Используйте методы формы
Формы являются классами, поэтому код формы организован по методам. В форму можно добавить обработчики событий. Эти обработчики выполняют специальные функции и могут вызываться другими методами. Помимо методов обработки событий, в форму можно добавить специально определенные методы выполнения действий и методы доступа к состоянию формы. Лучше добавить в форму несколько общедоступных (Public) методов для вызова других форм, чем для того, чтобы другие формы могли напрямую управлять ее компонентами.
Правило 5: Добавляйте конструкторы форм
Вторая форма, создаваемая во время выполнения, предоставляет специальные конструкторы в дополнение к конструктору по умолчанию (унаследованному от класса TcomComponent).
Предлагаю вам перегрузить метод Create и добавить необходимые параметры инициализации. Конкретный код можно найти в следующем коде:
Общественный
Конструктор Create(Text:string): повторно ввести перегрузку;
Конструктор TformDialog.Create(Text:string);
Начинать
Унаследовано Create(приложение);
Edit1.Text:=Текст;
Конец;
Правило 6: Избегайте глобальных переменных
Глобальных переменных (определенных в разделе интерфейса модуля) следует избегать. Ниже приведены некоторые рекомендации о том, как это сделать.
Если вам нужно сохранить дополнительные данные для формы, вы можете добавить некоторые личные данные в класс формы. В этом случае каждый экземпляр формы будет иметь собственную копию данных. Вы можете использовать переменные модуля (переменные, определенные в разделе реализации модуля) для объявления данных, которые совместно используются несколькими экземплярами класса формы.
Если вам необходимо совместно использовать данные между различными типами форм, вы можете определить их в основной форме для обеспечения совместного использования или использовать глобальную переменную, использовать методы или свойства для получения данных.
Правило 7: Никогда не используйте Form1 внутри класса Tform1.
Вам следует избегать использования определенного имени объекта в методах класса. Другими словами, вам не следует использовать Form1 непосредственно в методах класса TForm1. Если вам действительно нужно использовать текущий объект, вы можете использовать ключевое слово Self.
Правило 11: Раскрытие свойств компонентов
Когда вам нужно получить доступ к состоянию другой формы, вам не следует обращаться к ее компонентам напрямую. Потому что это объединит код других форм или других классов с пользовательским интерфейсом, а пользовательский интерфейс часто является самой изменяемой частью приложения. Лучший подход — определить свойство формы для свойства компонента, к которому вам нужен доступ. Для этого вы можете использовать метод Get для чтения состояния компонента и метод Set для установки статуса компонента.
Если теперь вам нужно изменить пользовательский интерфейс и заменить существующий компонент другим компонентом, то все, что вам нужно сделать, это изменить методы Get и Set, связанные со свойствами этого компонента, без необходимости искать и изменять все формы, которые ссылайтесь на этот компонент и исходный код класса. Подробные методы реализации см. в коде ниже:
частный
функция GetText:String;
процедура SetText(const Value:String);
общественный
Текст свойства:Строка;
прочитать GetText, написать SetText;
функция TformDialog.GetText:String;
начинать
Результат:=Редактировать1.Текст;
конец;
процедура TformDialog.SetText(const Value:String);
начинать
Edit1.Text;=Значение;
конец;
Правило 16: Наследование визуальной формы
При правильном применении это может стать мощным инструментом. По моему опыту, чем крупнее проект, который вы разрабатываете, тем он ценнее. В сложной программе вы можете использовать разные иерархии форм для обработки полиморфизма в группе связанных форм.
Визуальное наследование форм позволяет вам использовать некоторые общие действия нескольких форм: вы можете использовать общие методы, общие свойства, даже обработчики событий, компоненты, свойства компонентов, методы обработки событий компонентов и т. д.
Для получения дополнительной информации посетите: http://lincosoft.go.nease.net/.