Delphi как новый язык программирования Windows пользуется все большей популярностью среди программистов и энтузиастов из-за его множества замечательных функций. Следующие десять советов охватывают широкий круг тем, и я надеюсь, что они принесут пользу энтузиастам Delphi.
1. Похоже на вб. Функция doevents.
Вы можете обнаружить, что в Delphi нет эквивалента vb. doevents, поэтому иногда мы не сможем заставить Windows реагировать на несколько одновременных событий. Фактически, объект приложения Delphi включает аналогичный метод: PROcessMessage. Вы можете вызвать application. ProcessMessage для завершения, как vb. Та же функциональность, что и doevents в .
2. Вызовите NetscapeNavigator в Delphi.
Учитывая популярность Интернета, задумывались ли вы когда-нибудь о том, чтобы запустить браузер Netscape в вашей программе Delphi и отобразить домашнюю страницу по указанному вами WWW-адресу? Следующая программа может выполнить эту функцию.
программа Netscape;
используетDDEMan;
процедураGo??toURL(sURL: string);
вар
dde:TDDEClientConv;
начинать
dde:=TDDEClientConv. Создать (ноль);
сдаддедо
начинать
//указать местоположение Netscape. Exe
ServiceApplication:='c: s32program etscape. Exe';
//активируем NetscapeNavigator
SetLink('Netscape', 'WWW-Активировать');
RequestData('0xFFFFFFFF');
//перейти к указанному URL-адресу
SetLink('Netscape', 'WWW-OpenURL');
RequestData(sURL+',,0xFFFFFFFF,0x3,,,');
ЗакрытьСвязь;
конец;
дде. Бесплатно;
конец;
начинать
GotoURL('http://www.yahoo.com/');
конец.
3. Форматированный целочисленный вывод.
Относительно большие числа при выводе будут трудно читаемыми. Отобразить числа с пометками разделов в Delphi довольно просто: xxxxx. подпись: ΚFormatFloat(′#′, 524667500).
4. Получайте подсказки во время компиляции.
В Delphi2.0 при компиляции вы можете попросить компилятор дать вам некоторые подсказки, например, какие переменные объявлены, но никогда не используются. Мы знаем, что вы можете контролировать, хотите ли вы, чтобы Delphi делал это, с помощью параметров в меню, но что, если из-за каких-то особых потребностей вам нужно, чтобы Delphi предлагал вам только указанный сегмент кода? Пожалуйста, обратитесь к следующим процедурам.
{$ХИНТОН}
процедураTform1. Button1Click (Отправитель: TObject);
вар
Х: целое число;
начинать
конец;
{$HINTOFF}
5. Сменить обои Windows95.
Вы можете легко изменить обои в Delphi, следуя следующей процедуре.
процедураChangeIt;
вар
Рег: Трегинифиле;
начинать
Рег: ΚTRegIniFile. Создать('Панель управления')
;
Рег. WriteString('рабочий стол', 'Обои',
'c: pwin95forest. бмп');
Рег. WriteString('рабочий стол', 'TileWallpaper
','1');
Рег. Бесплатно;
SystemParametersInfo(SPI-SETDESKWALLPAPER, 0
, ноль, SPIF-SENDWININICHANGE);
конец;
6. Получите дату последнего использования файла.
В Win95 появилась новая функция, позволяющая получить последнюю дату обращения к файлу. Знаменитое программное обеспечение CleanSweapforWin95 использует эту функцию как одну из основ для определения частого доступа к файлу. В Delphi мы можем реализовать эту функцию с помощью следующей программы.
functionGetFileLastaccessTime(sFileName:string):TDate??Time;
вар
ffd:TWin32FindData;
дфт: DWord;
лфт: TFileTime;
ч: РУЧКА;
начинать
//получить информацию о файле
ч: ΚWindows. FindFirstFile(PChar(sFileName), ffd);
if(INVALID―HANDLE―VALUEΙΛh), то
начинать
//мы ищем только один файл, socloSEНаш "найти"
Окна. НайтиЗакрыть(ч);
//конвертируем FILETIME в локальный FILETIME
FileTimeToLocalFileTime(ffd.ftLastAccessTime, lft);
//конвертируемFILETIME вDOStime
FileTimeToDosDateTime(lft,LongRec(dft).Hi,LongRec(dft).Lo);
// наконец, конвертируем DOStimetoTDateTimeforuseinDelphi'snativedate/timefunctions
Результат: ΚFileDateToDateTime(dft);
конец;
конец;
GetFileLastAccessTime() вернет дату последнего доступа к указанному вами файлу в формате Delphi TdateTime.
7. Красочные этикетки.
Нас больше не удовлетворяют простые метки, предоставляемые Delphi. Можем ли мы использовать разные шрифты и цвета для меток, чтобы расширить наши возможности производительности? Ответ — да, и нет необходимости в элементах управления, предоставляемых третьими сторонами. Нам просто нужно умело использовать TRichEdit, предоставляемый самой Delphi. Сначала удалите границу элемента управления TRichEdit: RichEd??it1. BorderStyle: ΚbsNone также устанавливает атрибут «только для чтения» в значение true: RichEd??it1; ReadOnly: ΚTrue; Затем вы используете программное обеспечение, такое как write, для создания текста в формате RichText, который можно отобразить с помощью следующего оператора:
Богатое редактирование1. PlainText:ΚFalse;
Богатое редактирование1. Линии. LoadFromFile('c: est.rtf');
8. Как запретить Win95 отображать критические ошибки.
Независимо от того, как вы неоднократно отлаживаете свою программу, после передачи ее пользователю могут возникнуть непредвиденные ошибки. Как предотвратить отображение белого окна Win95 и сообщение пользователям о том, что произошла досадная неожиданная ошибка? Мы можем сделать это:
вар
wOldError??Режим: Word;
начинать
//сказатьwin??dowstoignorecriticalerrorsandsavecur??renterrormode
wOldError??Mode: ΚSetEr??rorMode (SEM-FAILCRITI??CALERRORS);
пытаться
//код, который может генерировать критическую ошибку, идите сюда. . .
окончательно
//возврат к предыдущему режиму ошибки
SetErrorMode(wOldErrorMode);
конец;
конец;
В основном используйте SetErrorMode() для выполнения этой функции.
9. На какой объект только что щелкнули мышкой.
В Win95 правая кнопка мыши играет большую роль. Однако по историческим причинам использование правой кнопки недостаточно эффективно даже в Delphi. Следующая программа может подсказать вам, как узнать имя объекта. просто щелкнул правой кнопкой мыши. Сначала создайте всплывающее меню, а затем следующий код сообщит вам имя объекта, который вы только что щелкнули правой кнопкой мыши: Popup??Menu1. PopupComponent. ИмяКласса.
10. Проверьте, не менялись ли компакт-диск или другие диски.
Самый простой способ проверить, был ли изменен компакт-диск или диск, — проверить номер его тома. Вы можете просто использовать следующую функцию, чтобы вернуть серийный номер тома диска GetDiskVolSerialID («E»). Код функции следующий:
functionGetDiskVolSerialID (cDriveName: char): DWord;
вар
dwTemp1, dwTemp2:DWord;
начинать
GetVolumeInformation(PChar(cDriveName+':'), Nil, 0, ΝResult, dwTemp2, dwTemp2, Nil, 0);
конец;