Потому что Delphi использует действительно полностью объектно-ориентированный подход, самый быстрый компилятор в мире на сегодняшний день и ведущую технологию баз данных, особенно ее полную совместимость с Windows API, а также отличные возможности автоматической генерации кода... люди увидели это всего за короткое время. За последние несколько лет Delphi выделился среди многих инструментов разработки! Именно многочисленные превосходные качества Delphi позволяют программистам разрабатывать прикладные программы профессионального уровня за короткий период времени, выполняя при этом очень мало работы!
Как говорится: «Давайте сделаем лучше!» Как нам в полной мере использовать преимущества Delphi для более быстрого проектирования программ?
1. В полной мере используйте полное совместное использование кода (Jubang):
Цель этого не просто «лениться», это еще и способ оптимизировать программный код. Конечно, первое, на что следует обратить внимание, — можно ли им поделиться (это очень просто, посмотрите, включено ли оно в выпадающую коллекцию события), а второе, на что следует обратить внимание, — будет ли « проблема" после обмена, потому что правильность - это первый шаг. Заниматься оптимизацией необходимо только тогда, когда она гарантированно правильна!
Например: мы выдаем подтверждающее сообщение перед тем, как пользователь удалит данные:
ПРОЦЕДУРА TForm1.Table1BeforeDelete(DataSet: TDataSet);
начинать
//Подтверждаем удаление записи
if MessageBox(дескриптор, «Вы уверены, что хотите удалить текущую запись?», «Подтвердить», MB_IconQuestion+MB_ДаНет)=IDNO, тогда
Прервать;
конец;
Затем, если вы готовы позволить пользователю подтвердить удаление записи данных, вы можете полностью поделиться этим кодом в событии TDataSet.BeforeDelete (BeforeDelete для Table2, BeforeDelete для Table3...). Удача случается не каждый день, иногда все не так прямо и просто...
Слово «As» чрезвычайно полезно не только в английском, но и в Delphi! Это вступает в игру, когда мы хотим использовать код для нескольких «похожих» компонентов: нам нужно написать код только для одного из них.
Например, если мы хотим, чтобы цвет фона группы текстовых полей редактирования менялся на коричневый, когда они получают фокус ввода, и восстанавливал системный цвет, когда они теряют фокус, мы можем поделиться таким кодом (пусть события каждого в поле редактирования текста поделитесь следующим кодом):
процедура TForm1.Edit1Enter(Отправитель: TObject);
начинать
(Отправитель как TEdit).color:=ClTeal //Получаем фокус ввода;
конец;
процедура TForm1.Edit1Exit(Отправитель: TObject);
начинать
(Отправитель как TEdit).color:=ClWindow //Потерян фокус ввода;
конец;
Приведенный выше пример кажется слишком конкретным. Что, если я уделяю особое внимание только некоторым компонентам? Продолжая использовать приведенный выше пример, например, есть два поля ввода текста, которые требуют ввода цифр. Чтобы привлечь внимание пользователя, цвет меняется на синий при получении фокуса, но я все равно не хочу писать. код для каждого компонента отдельно.
Чтобы решить эту проблему, вы можете использовать атрибут Tag компонента. Сначала присвойте ненулевые и неравные теги компонентам, подлежащим специальной обработке (следует отметить, что Delphi не будет проверять равенство значений тегов). и вы должны контролировать это сами во время проектирования); затем напишите код следующим образом, вы все равно можете поделиться:
процедура TForm1.Edit1Enter(Отправитель: TObject);
начинать
дело (Отправитель как TEdit).Тег
10,20:(Отправитель как TEdit).Color:=clBlue //Текстовое поле для ввода чисел
еще
(Отправитель как TEdit).Color:=clTeal //Другие текстовые поля;
конец;
конец;
(Предполагается, что следующие замечания относятся к условиям Delphi по умолчанию)
1. Используйте ключевое слово Self:
Возможно кто-то думает, что я ошибаюсь! На самом деле, то, что я хочу вам здесь представить, это очередная "фишка" "штатного обидчика" автора (в силу его плохой памяти). Иногда мы не можем вспомнить точное имя компонента. В настоящее время, если вы вернетесь к форме, чтобы подтвердить его еще раз (большинство моих друзей должны быть такими), было бы слишком жаль. Это особенно экономит время, если вы используете Self, поскольку Self в Delphi явно ссылается на форму, в которой находится компонент. Поэтому мы можем ввести Self, а затем запятую, чтобы активировать код Delphi. После завершения система сразу отобразит выпадающий список, содержащий все компоненты формы и свойства самой формы, из которого можно выбрать необходимые компоненты. Таким образом можно избежать необходимости переключаться между формами и таблицами.
2. Используйте автодополнение кода (Code Completion):
Нам больше не нужно запоминать слишком много деталей параметров благодаря функции заполнения кода Delphi. Прежде чем объяснить это подробно, я хочу быть немного многословным. Сочетания клавиш по умолчанию для завершения кода Delphi будут конфликтовать с некоторыми сочетаниями клавиш, которые мы использовали (например, сочетание клавиш Ctrl+Пробел конфликтует с сочетаниями клавиш для открытия и закрытия). метод ввода китайских иероглифов). Поэтому сначала решите эту проблему.
Конечно, завершение кода обычно активируется автоматически, но не думайте, что все будет хорошо, я думаю, Delphi стоит поучиться у VB для этой технологии. Как я могу это сказать? Например: когда вы вводите StrToint(edit1., Delphi не будет автоматически отображать свойства edit1. В это время вы будете использовать Ctrl+Space для активации завершения кода. Delphi кажется запутанным, особенно при глубокой вложенности. .
3. Используйте параметры кода:
Горячая клавиша активации — Ctrl+Shift+Пробел. Эта функция также автоматически реализуется Delphi. Как упоминалось выше, когда мы переключаемся вперед и назад или перемещаем курсор, эта функция исчезнет. Когда нам нужно подтвердить определенные параметры функции, мы можем открыть ее с помощью этой горячей клавиши. .
4. Используйте шаблоны кода:
Эта технология еще раз отражает превосходную технологию инженеров команды разработчиков Delphi компании Inprise и их благородные моральные качества, которые всегда думают о пользователях! (Я просто не хочу слышать о том, что Microsoft переманила другого человека)
Горячая клавиша активации — Ctrl+J. Механизм реализации этой функции аналогичен механизму заполнения кода, за исключением того, что он не является автоматическим. Конечно, самым интересным аспектом является то, что пользователи могут определять свои собственные шаблоны. Например, заданный автором шаблон: ярлык -> код «msg» -> «MessageboxMessageBox(
handle,'|',',MB_Icon...+MB_...);", как только я ввожу msg и затем нажимаю Ctrl+J, весь код "выделяется" и перемещает курсор в то место, где Я должен добавить свой отзыв, это так здорово!
Примечание. Если вы определили для себя много симпатичных шаблонов и не хотите их выбрасывать, вы можете также создать резервную копию файла Delphi32.dci в каталоге Delphi4Bin и перезаписать его этим файлом после переустановки Delphi.
Эту тему не следовало бы писать здесь, но я не могу не...
1. Если вы можете использовать обозреватель объектов для его установки напрямую, не влияя на нормальную работу программы, нет необходимости писать код:
Поскольку эта тема слишком обширна, вот только один пример: например, вы хотите реализовать автоматические подсказки в строке состояния в Delphi4, не будучи слишком «резкими».
Условие «Подсказка», нам больше не нужно определять процесс (ShowMyHint(...)) как раньше, а затем инициализировать его там, где программа
Присвойте ее значение событию OnHin Tapplication. Потому что просто установите для свойства AutoHint строки состояния значение True! Конечно, кажется, что она может только
Отображается на первой панели (это когда нет слишком «жестких» условий). Конечно, упрекните меня в многословии, некоторые друзья не знают Delphi’s Hint
Атрибуты состоят из двух частей. Здесь не место для разговоров. Если вам интересно, посетите личную домашнюю страницу автора www.zg169.net/~delphiok (только что открылась).
Чжан, дел еще не так много).
2. Сохраните код:
Если вы можете написать меньше кода, нет необходимости писать больше кода. Если вы можете его усовершенствовать, нет необходимости в избыточности:
Например, следующие два фрагмента кода реализуют одну и ту же функцию. Какой фрагмент вы предпочитаете использовать?
Первый фрагмент кода:
если ToolButton1.Down=истина, то
начинать
Dbgrid1.показать;
DelBtn.Enabled:=истина;
конец
еще
начинать
Dbgrid1.Скрыть;
DelBtn.Enabled: = ложь;
конец;
Фрагмент кода второй:
Dbgrid1.Visible:=ToolButton1.Down;
DelBtn.Enabled:=ToolButton1.Down;
Поэтому после того, как мы закончим писать программу, нам следует не просто заняться корректировкой программы, но и прожарить программный код.
3. Сохраните переменные:
Некоторые программисты определяют переменные там, где они не нужны, и определяют избыточные переменные там, где переменные необходимы. Лично я считаю, что это нехорошо.
Привычки, особенно привычка определять глобальные переменные на каждом шагу, еще более сомнительны. Некоторые читатели могут подумать, что я скряга. Сегодняшние скорости процессоров слишком высоки.
Какая сейчас эпоха... Но я просто покажу вам кусок кода, и вы поймете:
процедура TForm1.Button1Click(Отправитель: TObject);
Вар s1,s2:Строка;
начинать
s1:=Inputbox('data','Пожалуйста, введите имя пользователя',');
если s1<>', то
начинать
Btn_Name.Enabled:=Истина;
s2:=Inputbox('data','Пожалуйста, введите адрес пользователя',');
если s2<>', то
Btn_Adress.Enabled:=Истина;
конец;
конец;