Как я могу получить основную форму Delphi IDE? - PullRequest
3 голосов
/ 09 июня 2009

Я пишу редактор свойств для Delphi и хотел бы, чтобы он отображался на правильном экране для поддержки нескольких мониторов. Чтобы разместить его, я бы хотел сослаться на «основную» форму для Delphi IDE.

Я пытался использовать свойство MainForm приложения и сам объект приложения, но ни один из них не работает. Я полагаю, что это потому, что MainForm на самом деле является скрытым экземпляром TApplication, на который ссылается Натана Вуллс в этой статье (поиск «форма заявки»):

http://www.installationexcellence.com/articles/VistaWithDelphi/Original/Index.html

Кто-нибудь знает, как получить дескриптор видимой главной формы для IDE. Я стараюсь избегать чего-то дурацкого, вроде итерации всех форм и поиска «CodeGear RAD Studio» в заголовке.

Ответы [ 2 ]

4 голосов
/ 09 июня 2009

Основная форма IDE - Application.MainForm. Мой быстрый тестовый пакет дизайна:

procedure DoStuff(Form: TCustomForm);
var
  S: string;
begin
  S := Form.Caption;
  Form.Caption := S + ' - this one';
  try
    ShowMessage(Format('%s [%s] on monitor %d', [Form.Name, Form.ClassName, Form.Monitor.MonitorNum]));
  finally
    Form.Caption := S;
  end;
end;

initialization
  DoStuff(Application.MainForm);

В моем случае это отображает «AppBuilder [TAppBuilder] на мониторе 0», и я вижу суффикс «- этот» в заголовке основной формы. Что не работает в вашем случае?

2 голосов
/ 09 июня 2009

IIRC главная форма называется TAppBuilder, поэтому что-то вроде FindWindow('TAppBuilder',nil) может быть отправной точкой для вас.

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