Теперь доступны для скачивания из библиотеки "From Borland" следующие инфорационные файлы о Delphi: DELBKS.TXT -=> Delphi BookList (список книг о Delphi) DEL_FS.ZIP -=> Delphi Fact Sheet (страница фактов) DEL_ QI.ZIP -=> Delphi Quick Info Sheet (страница краткой информации)
Создайте TPanel, установите свойство alignment в bottom и расположите на ней вашу кнопку. Если вы не хотите, чтобы панель была видимой на форме, сбросьте флаг ctl3d, установите bevels в none и parentcolor = true.
Вы не можете это сделать во время проектирования. Чтобы сделать это во время выполнения программы, добавьте следующую строку в обработчик события формы OnCreate:
Help1.Caption := #8 + Help1.Caption; |
Электронная справка по теме создания компонентов (Component Writer's Help) содержит более глубокие сведения, кроме того, вы можете купить исходный код VCL и изучить это "в подлиннике".
Выберите на форме необходимые компоненты и воспользуйтесь пунктом меню Edit | Tab Order.
{$D SCRNS AVE:NameOfScreenSaver} |
Для корректной работы хранителя экрана необходимо в обработчиках событий OnClick и OnKeyUp вызывать метод Close. В ответ на событие OnMouseMove необходимо осуществить проверку, и, если оно возникло НЕ первый раз, необходимо также вызвать метод Close.
CONST FirstTime : Boolean = True; begin IF NOT FirstTime THEN Close; |
Попробуйте удалить *.DSM-файл и перекомпилить ваш проект.
Откройте новый модуль и объявите необходимые вам глобальные структуры в секции interface (секция implementation должна оставаться пустой). Добавьте имя данного модуля в список USES тех модулей, для которых необходимо получить доступ к объявленным глобальным переменным.
Потому что Delphi должен работать с кодом при манипуляциях с формой. Delphi постоянно следит за тем, что вы делаете и изменяет код для отражения изменений на форме.
Добавьте \DELPHI\SOURCE\RTL70 к путям поиска вашего проекта.
Используйте вместо оператора "/" оператор "div":
MyLeft := (Screen.Left - Form1.Left) div 2; |
Или присвойте свойству Position вашей формы значение poScreenCenter.
Да, вы можете воспользоваться встроенным дебаггером. Первичный файл - файл с расширением *.PAS, который вы открывали как проект. Выберите "Open Project", измените тип файла с *.DPR на *.PAS и затем выберите программу BP7, которую вы хотите компилить.
Попробуйте установить:
listBoxName.items.add('xxx') listBoxName.itemIndex := (listBoxName.items.count-1) |
Нет. Попробуйте заполнить строку пробелами.
ОПРЕДЕЛЕНИЕ: Hard mode - это такое состояние Windows, когда невозможна никакая обработка сообщений. Это происходит при отрисовке меню и некоторых операциях ядра. Это означает такое состояние, когда Delphi не может "заморозить" ваше приложение, не блокируя Windows. Обычно это возникает при большом числе вызовов SendMessage. Как можно выйти из режима Hard mode: необходимо сильно "встряхнуть", ударить систему. Например, вполне достаточно вывести системное модальное окно, сообщающее о текущем режиме Hard mode! Коротко: установите дополнительную точку останова на строке *перед* той, которая сообщает системе о переходе в режим Hard. Вызов системного модального диалога обычно заставляет систему выйти из этого режима, после чего вторая точка останова сработает как обычно. Изложенный способ носит название "Маневр Мебиуса".
Примечание: Поскольку отладчик управляется сообщениями, он не может позволить вам остановить его в точке останова, если он думает что система находится в Hard mode, и если вы не предпримете в этой ситуации попытки выйти из Hard mode, система может зависнуть.
Да, возможно, но необходима небольшая квалифицированная подсказка. Если быть более точным, в Delphi можно загрузить BPW-программу. Выберите пункт меню Open Project или соответствующую кнопку на панели управления и в выпадающем списке типов файлов выберите *.PAS files. Это позволит загрузить BPW *.PAS-программы. Не забудьте добавить \DELPHI\SOURCE\RTL70 в пути поиска вашего проекта.
Delphi VCL основаны на RTTI и исключениях. Это уже "отбирает" примерно 120Kb от 'пустого' приложения. 200K вы получаете за счет добавочной информации или неоптимизированного компилятором кода. Обратите внимание на тот факт, что при добавлении второй кнопки размер вашего EXE-файла будет не 400K, а всего навсего 201K, т.е. после необходимого кода располагаются "обычные данные/код" с типичными (ожидаемыми) размерами. Вы можете немного уменьшить размер EXE, отмечая пукнт "Optimize For Size And Load Time" на странице "Linker" в диалоге OPTIONS|PROJECT.
Для использования двух мониторов необходимо, чтобы один из них был MDА-монитором (старый черно-белый стиль Hercules), а другой монитором стандарта VGA (или EGA, и т.п.). Они должны использовать два адресных пространства: $B000 для MDA и $B800 для VGA. После установки обоих мониторов можно сообщить BP IDE о наличии второго монитора в Options/Environment/StartUp. Монитор по умолчанию, стартующий BP IDE, будет отображать поток выходных данных программы.
ПРИМЕЧАНИЕ: после установки карты Hercules, ваша VGA карта будет доступна только как 8-битная. DELPHI данную характеристику не поддерживает.
Попробуйте:
with Application.MainForm. ActiveMDIChild as TEditForm do Save1Click(Sender); |
Или это:
if ActiveMDIChild is TEditForm do TEditForm( ActiveMDIChild).Save1Click(Sender); |
combobox1.text := 'Здесь происходит что-то странное!'; |
Это стандартное поведение выпадающего списка Windows при заданном стиле DropDownList. Идея этого стиля в том, что выводимый текст должен совпадать с одним из элементов списка. В этом случае правильным будет выбор одного из элементов:
combobox1.ItemIndex:=0; {предположим combobox1.Item[0] = 'Здесь происходит что-то странное!'} |
Попробуйте следующие обработчики событий:
procedure TStaffSearch.SpeedButtonCutToClipBoardClick(Sender: TObject); begin if (( ActiveControl ) is TCustomEdit ) then TEdit( ActiveControl).CutToClipBoard; end; procedure TStaffSearch.Delete1Click(Sender: TObject); begin if (( ActiveControl ) is TCustomEdit ) then TEdit( ActiveControl).ClearSelection; end; |
В обоих случаях вы должны определять какой элемент управления активен в настоящий момент и вызывать соответствующий случаю метод. Все элементы управления, позволяющие редактировать текст, являются наследниками TCustomEdit. Приведенный выше код определяет, является ли активный элемент наследником TCustomEdit, и, если да, вызывает соответствующий метод.
Инспектор Объектов (Object Inspector) отображает все опубликованные (published) свойства класса/объекта, и служит как для просмотра значений свойств, так и для их изменения. Инспектор Объектов не показывает методы класса.
Функционально разницы нет никакой. SetKey + некоторые возможности для работы с IndexFields + GotoKey эквивалентен простому FindKey. Если IndexFields для вас чрезвычайно сложен, программируйте с помощью последовательности SetKey.
Попробуйте:
type TDBNavCracker = class(TDBnavigator); ... if TDBNavCracker(DBNavigator1).Buttons[nbEdit].Enabled then...; |
Нет, для старых SQL links вы найдете обновления в редакции Delphi Client/Server, или можете получить это отдельно: Delphi + новые SQL Links.
При возникновении ошибки времени выполнения, Delphi генерирует исключение (или, правильнее сказать, создает объект исключительной ситуации). Если отмечена соответствующая опция в настройках среды, исключения будут перехватываться во время выполнения программы из-под Delphi, и Delphi будет перемещать курсор к строке, вызвавшей исключительную ситуацию. Тем не менее, программа при этом не завершает свою работу. Напротив, при возникновении исключительной ситуации программа не сможет окончить свою работу в автоматической режиме, что связано с возможностью поработать с программой в "предсмертном" режиме и найти источник ошибки.
Формы храняться в файлах DFM (в бинарном виде), но если вы откроете его (FILE|OPEN FILE) в редакторе IDE как текст, то сможете редактировать его непосредственно.
Delphi умеет воспроизводить с помощью TMediaPlayer avi-файлы, необходимо всего лишь установить тип файла, его имя, разместить компонент на TPanel и использовать метод open. Для воспроизведения AVI-файлов необходима обновленная версия "Video for Windows", установленная в вашей системе. При выполнении этих условий воспроизведение файлов AVI будет столь же легким, как и воспроизведение файлов WAV. Присвойте типу устройства AutoSelect, поместите компонент на панельку, задайте имя AVI-файла и воспроизведите его. Анимация появится в отдельном небольшом окошке.
Вам необходимо определить, какой символ (например, *) необходимо отображать при вводе пароля, и назначить его свойству Password в компоненте TEdit. Если вам не нужны символы при вводе, используйте символ пробела, #32. [000581]