Как-то переопределить процедуры по умолчанию Delphi во время разработки? - PullRequest
2 голосов
/ 22 января 2010

Как-нибудь переопределить процедуры по умолчанию Delphi во время разработки?

Мне нужно переопределить InstanceSize во время разработки, я сделал это во время выполнения, используя метод FastCode:

FastcodeAddressPatch(FastcodeGetAddress(@SInstanceSize), @TWinControl.RfInstanceSize);

Но есть ли способ сделать это во время разработки?

Ткс в совете

Ответы [ 2 ]

4 голосов
/ 22 января 2010

«Время разработки» - это на самом деле просто «время выполнения», но в контексте IDE, а не в контексте вашей программы. Поместите свой код в пакет времени разработки и загрузите его в IDE. Среда IDE вызовет все процедуры Register в модулях вашего пакета, после чего вы сможете запустить любой необходимый код.

  1. Создать новый проект пакета (файл .dpk).
  2. Установите настройки проекта так, чтобы это был пакет времени разработки.
  3. Добавить новый пустой блок к нему.
  4. Добавьте процедуру в раздел интерфейса с именем Register. Он должен иметь заглавную букву R и остальные строчные.
  5. Реализуйте эту процедуру так, как вы хотите (например, поместив ваш вызов на FastcodeAddressPatch там).
  6. Скомпилируйте и установите пакет.

Я немного настороженно отношусь к тому, что, похоже, вы пытаетесь сделать на шаге 5, но я позволю вам решить это самостоятельно.

1 голос
/ 22 января 2010

Если под «во время разработки» вы имеете в виду «изменить поведение ваших компонентов в конструкторе форм», это то, что вы действительно не должны пытаться делать. Конструктор форм является частью IDE, которая представляет собой весь код Delphi, выполняемый в BDS.exe. Если вы изменяете TObject в Form Designer, вы изменяете его для всей IDE, что может привести к катастрофическим результатам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...