«Умные программисты используют Delphi!» Теперь все больше и больше людей начинают использовать Delphi. Однако, в конце концов, есть несколько экспертов, и такие новички, как я, повсюду, ха -ха. Поскольку я новичок, у меня, естественно, есть много очень хороших вопросов, например, как это настроить и как это написать ... Итак, ниже я сделаю краткую речь, основанную на небольшом опыте, который я накопил и Общие небольшие вопросы на форуме.
== Системные приложения ==
А. Delphi заменил большое количество часто используемых элементов управления, таких как Delphi5, и Delphi6, выпущенный в этом году, в 1,5 раза больше, чем в Delphi5. С таким большим количеством элементов управления, даже при разрешении 1024*768, они не могут отображать все свои компонентные панели, и действительно неудобно нажимать эти две маленькие кнопки, чтобы каждый раз отображать больше панелей! Однако, добавив следующее значение ключа реестра, панель компонента может быть автоматически расширен:
[Hkey_current_user/Software/Borland/delphi/x.0/extas]
"AutoPalettEselect" = "1"
(Примечание: x.0 Указывает номер версии вашего Delphi; если нет дополнительных основных ключей, просто создайте новый, то же самое ниже)
B. Каждый раз, когда я создаю новую форму, а затем устанавливаю его шрифт и размер ... это действительно хлопотно! Затем добавьте следующее значение ключа и позвольте системе автоматически установить его:
[Hkey_current_user/Software/Borland/delphi/x.0/formDesign]
"DefaultFont" = "宋体, 9, _"
(Примечание: _ представляет пространство, а также может быть заменен жирным шрифтом (жирным шрифтом) и т. Д.)
C. Настройте рабочую среду, чтобы сделать ее более подходящей для вас.
• Настройки панели инструментов. Щелкните правой кнопкой мыши на панели инструментов Delphi, выберите «Настроить», затем выберите необходимую кнопку и перетащите инструмент и перетащите нежелательные. Я часто использую: Открыть, открыть, сохранить, сохранить все, отменить, повторно под стандартной панелью инструментов; Компонентная палитра панели инструментов.
• Установите макет окна. Чтобы иметь возможность эффективно писать программы, важно разумно организовать каждое окно. Мои обычно используемые Windows: Инспектор объектов, менеджер проекта (просмотр | Диспетчер проектов), Смотрейный список (запустить | Добавить Watch ...).
После настройки каждой формы нажмите кнопку «Сохранить текущий рабочий стол» на панели инструментов на рабочем столе, чтобы сохранить.
• Установите цвет дисплея. Сделайте цвет кода больше в соответствии с вашими привычками, что способствует четкому мышлению при написании. Инструменты | Параметры редактора Открыть свойства редактора, выберите вкладку «Цвет» и установите цвет кода. Вот только несколько часто используемых:
Шепос: пустое пространство, то есть фон;
Комментарий: комментарий;
Зарезервированное слово: зарезервированные слова;
Строка: String;
Номер: номер;
Точка выполнения: текущая строка выполняется (то есть строка, которая прибывает, когда F7 вступает в);
Включенный перерыв: точка останова;
Строка ошибки: ошибка произошла строка;
D. Освоение некоторых ярлыков в Delphi Programming может значительно повысить эффективность и не заставит вас скучать по слишком много скучных настроек. Вот несколько ярлыков, которые я часто использую:
ESC: выберите контейнер выбранного в настоящее время компонента (обычно панель, Groupbox, Form и т. Д.);
Ключ стрелка Ctrl+: перемещает выбранную компонент на один пиксель;
Ctrl+Shift+Клавиши стрелки: переместите выбранную компонент в большую сетку (аналогично эффекту сдвига в сдвиге в фейерверках, а затем перемещение с клавишами со стрелками);
Клавиши Shift+Dragon: отрегулируйте размер выбранного компонента, по одному пикселю за раз;
Shift+Выберите компоненты: удерживайте клавишу Shift и нажмите на компонент с помощью мыши.
CTRL+Left Mouse Кнопка: Используйте другие функции в процедуре (например, пользовательский процесс). непосредственно перейдите к реализации части этой функции, называемой. Я использовал эту функцию больше всего, делая мне очень удобным для меня найти модули!
Ctrl+Shift+C: объявьте метод в объекте, затем наведите курсор на него, нажмите Ctrl+Shift+C, чтобы установить базовую структуру для ее реализации, например:
Tform1 = class (tform)
Частный
{Частные объявления}
публичный
{Публичные объявления}
Процедура шахта;
конец;
Поместите курсор на линию шахты процедуры, нажмите Ctrl+Shift+C, и следующий код будет автоматически вставлен в устройство:
Процедура tform1.mine;
Начинать
конец;
== Операции формы ==
В программах с несколькими формами Delphi по умолчанию создает их все, когда начинается программа (она просто скрыта, отображается только одна основная форма), так что те формы, которые временно не нужны, начинают занимать много пространства памяти. Таким образом, нам нужно перенести те формы, которые на данный момент не начались из «Авторизованных форм» в «доступные формы» на вкладке «Формы» проекта меню | Параметры ... Таким образом, создание и выпуск этих форм требуют кода для реализации.
А. Сравнение двух способов создания формы. Для этих неавтоматически созданных форм мы должны создать их, прежде чем показать (self) или создать (приложение). Например, form2.creat (self) и form2.create (приложение), но в чем разница между ними? На самом деле, между ними не существует большой разницы.
Но если владелец принадлежит к другому окну или управлению, когда его владелец будет выпущен, то, что будет выпущен. Ключевым отличием является то, кто управляет ресурсами формы. Созданные в первом методе, ресурсы формы управляются программистом;
B. Несколько способов выпустить формы. Поскольку он должен сохранить память, используемая форма должна «выходить» на память. Здесь я перечислю несколько подобных методов:
(1)
Процедура tform1.button1click (отправитель: tobject);
Начинать
......
Если форма2 = ноль, тогда
Form2: = tform2.create (приложение);
Form2.showmodal;
......
конец;
Процедура tform2.close (отправитель: tobject; var action: tcloseaction);
Начинать
MODALRESULT: = мрнон;
Действие: = Cafree;
Form2: = nil;
конец;
(2)
Процедура tform1.button1click (отправитель: tobject);
Начинать
Если не назначено (form2), то тогда
Начинать
Application.createform (tform2, form2);
пытаться
Form2.showmodal;
Окончательно
Form2.free;
Form2: = nil;
конец;
конец
еще
Form2.showmodal;
конец;
(3)
Процедура tform2.button1click (отправитель: tobject);
Начинать
Form2.close;
Form2.release;
конец;
== контроль использование
А. Знаменитый пакет управления Rxlib написан тремя русскими экспертами и очень выдающийся! Тем не менее, контента слишком много, и его нелегко использовать его хорошо. Я просто скажу здесь несколько очков, чтобы Rxrichedit.
• Многие люди спрашивали, как установить rxlib, это кажется немного сложным, ха -ха, так что я также скажу это, кстати:
Запустите rxinst.exe для установки Rxlib Into/Program Files/Borland/delphi5 (или 6)/rx, затем откройте Delphi, выберите File/Open ... и Turn rxctl5.dpk, rxdb5.dpk, rxbde5.dpk после открытия. , нажмите Compile, продолжайте открывать: DCLRX5.DPK, DCLRXDB5.DPK и DCLRXBD5.DPK.
• Дополнительное свойство. Настройка по умолчанию Win98-нет проблем с меню правой кнопкой мыши, но когда установлено значение FALSE, меню ярлыков будет появляться дважды подряд; Но когда он ложь будет отображаться нормально. Следовательно, для совместимости системы необходимо определить текущую версию ОС:
Процедура tformmain.formcreate (отправитель: tobject);
вар
OSVI: Osversioninfo;
......
Начинать
Osvi.dwosversioninfosize: = sizeof (osversioninfo);
GetVersionex (OSVI);
case osvi.dwplatformid of
1: rxrichedit1.allowobjects: = true;
2: rxrichedit1.allowobjects: = false;
конец;
.........
конец;
Но я не знаю, почему у этого атрибута такая проблема, поэтому я надеюсь, что эксперт даст мне несколько советов.
• Событие OnurlClick. Rxrichedit автоматически преобразует адреса веб -страницы в формат гиперссылки, но конкретное поведение по -прежнему требует написания кода само по себе, в противном случае эти адреса станут пустыми оболочками:
Процедура tformmain.rxrichedit1urlclick (отправитель: tobject; const urltext: string; кнопка: tmousebutton);
Начинать
Если кнопка = mbleft тогда
Shellexecute (handle, nil, pchar (urltext), nil, nil, sw_show);
конец;
B. Чтобы сохранить память и оптимизировать работу, мы всегда динамически создаем компоненты. Но после того, как он использовал его, если он не будет очищен из памяти во времени, это пойдет против нашего первоначального намерения. Но как «убить» созданный компонент? Это просто освобождает пространство памяти, на которое указывается редактирование, но указатель не устанавливается на NIL. сгенерировано .... МИСТАК. Следовательно, нам нужно привести к тому, что указатель после бесплатного редактирования: = nil или freeandnil (только действителен в Delphi5), чтобы обеспечить нормальную работу в будущем.
C. Отображает подсказку текста каждого элемента управления в строке состояния. Можно использовать событие этого приложения Onhint, но, поскольку приложение является несовместимым объектом, можно использовать следующий метод:
......
публичный
Процедура DisplayHint (отправитель: Tobject);
конец;
......
Процедура tform1.displayhint (отправитель: Tobject);
Начинать
Statusbar1.simpletext: = getLonghint (application.hint);
конец;
Процедура tform1.formcreate (отправитель: tobject);
Начинать
Application.onhint: = DisplayHint;
конец;
Таким образом, текст, отображаемый в панели состояния, такой же, как и коробка приглашения (маленькая желтая коробка, которая автоматически появляется). Что если вы хотите, чтобы текст подсказки в строке состояния был более подробным? Фактически, пока свойство контроля написано так: Myhint | Это просто Myhint!, Содержание до «|» может отображаться в поле «Помогая» (HINT Box), а контент после »| "отображается в строке состояния. Сейчас.
D. Некоторые ключевые моменты в использовании ListView. Ниже приведен двухколонный список в качестве примера.
→ Добавить линию:
с ListView1 do
Начинать
ListItem: = items.Add;
Listitem.caption: = 'Содержание первого столбца';
Listitem.subitems.add ('Содержание второго столбца);
конец;
→ Clear ListView1:
ListView1.items.clear;
→ Получите номер строки выбранной в настоящее время строки и удалите текущую строку:
Для i: = 0 to listview1.items.count-1 do
Если ListView1.items [i]. Selection Then //ilistview1.selected.index
Начинать
ListView1.items.delete (i);
конец;
Конечно, ListView имеет событие OnSelectiTem, которое может определить, какую строку вы выбрали, и назначить его глобальной переменной.
→ Операция чтения строки и столбца:
Edit1.text: = listView1.items [i] .caption;
Edit2.text: = listView1.items [i] .subitems.strings [0];
Edit3.text: = listView1.items [i] .subitems.strings [1];
По аналогии, весь столбец можно считать с помощью цикла.
→ Переместить фокус на одну линию:
Для i: = 0 to listview1.items.count-1 do
If (listview1.items [i]. Selected) и (i> 0) Then Then
Начинать
ListView1.setFocus;
ListView1.items.item [i-1]. Selected: = true;
конец;
Однако в Delphi6 ListView имеет атрибут itemindex, так что просто
ListView1.setFocus;
ListView1.IteMindex: = 3;
Вы можете установить фокус.
== Другие ==
• Чтобы оптимизировать программное обеспечение и сделать его более совершенным, динамические массивы часто используются при использовании массивов. При объявлении, например: A: массив строки, а затем перед использованием массива, SetLength (A, 3) устанавливает длину массива на 3, то есть A [0], A [1], A [2], Вот и все. Когда необходимо расширить длину массива, снова: добавляются личные (A, 5), затем A [3] и A [4], а в предыдущем a [0], a [1], a [2] Значение, не будет очищено; 2] автоматически очищаются из памяти. ПРИМЕЧАНИЕ. Динамические массивы начинаются с «0», поэтому после SetLength (a, 1) High (a) = 0! !
Наконец, когда этот динамический массив больше не используется, а программа еще не вышла, чтобы сохранить память, использовать: a: = nil, чтобы выпустить этот массив, и теперь она действительно достигает «Зеленая и защита окружающей среды» :)
• Вопрос «Как получить путь к текущей программе, работающей», часто можно увидеть на форумах. Действительно, эта функция время от времени используется в программировании. На самом деле есть несколько функций, которые могут достичь этого эффекта:
→ getCurrentDirectory (): функция WinApi, конкретное использование заключается в следующем:
вар
MyCurrentDir: массив [0..144] char;
Начинать
GetCurrentDirectory (sizeof (mycurrentdir), mycurrentdir);
Mycurrentdir: = mycurrentdir+'/mysoftname.exe';
конец;
→ getCurrentDir (): функция, инкапсулированная GetCurrentDirectory Delphi, использование простое: mycurrentDir: = getCurrentDir. Окончательный формат: C:/Windows/System
Существуют также функции, которые могут непосредственно получить путь: ExtractFilePath (Paramstr (0)), ExtractfilePath (Application.Exename) и т. Д.
• Сообщения о выключении системы, перезапуска и т. Д. Это также вопрос, который люди задают, и я упомяну об этом здесь:
Выключение: exitWindowsex (ewx_shutdown, 32);
Перезапуск: exitwindowsex (ewx_reboot, 32);
Выход: exitWindowsex (ewx_logoff, 32);
Power Off: exitWindowsex (EWX_Poweroff, 32);
• В Delphi, в дополнение к использованию #39, как справиться с «одиночными кавычками» в программе (например, ShowMessage)? Оба '' 'и' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' Фактически, четыре одиночных кавычка представляют собой одну цитату, то есть «», вторая и третья указывают, что это «», а первое и четвертое указывает, что это тип символа. Ха -ха, очень интересно :)
• Китайские проблемы в Showmessage. Кнопки в Showmessage находятся в электронном тексту, что заставляет людей чувствовать себя некомфортно. На самом деле, после нашего DIY, мы можем сделать их все на китайском языке.
Сначала сохраните текущий проект, а затем выберите Project | Языки | Добавить ... Появится диалоговое окно «Добавить язык», выберите проект, который вы хотите для китайского (вы также можете настроить папку), Далее; Китай) », Далее; Найдите элемент «const_smsgdlgok» в списке, измените его рисунок «Китайский (переведенный)» на «OK» (Original)) и выйдите после сохранения. Теперь запустите программу снова, ха -ха, это просто китайская кнопка?
Тем не менее, диалоговое окно «Сообщение ShowMessage» очень простое и может отображаться для разработчиков во время отладки системы. Но поскольку это слишком просто, я рекомендую не использовать такие диалоговые окна в официальной версии программного обеспечения. Кроме того, лучше всего использовать Messagebox вместо ShowMessage, чтобы уменьшить размер программного обеспечения. !