Установка последний пакет обновления. Обычно, я воздушный поток это так или иначе.
Препятствуют тому, чтобы приложения крали фокус. http://xphelpandsupport.mvps.org/how_do_i_prevent_applications_fr.htm
Копия мои приложения командной строки ( основные команды Unix ) и приложения SysInternals .
Windows Updates
инструменты разработчика Установки как Visual Studio, Eclipse, VirtualBox, и т.д.
я больше склоняюсь к наличию основанных на сервисе приложений как SQL Server быть установленным на основе, выровнял Виртуальную машину и работал оттуда. Тем путем у меня только есть он выполнение, когда я должен, и я могу расширить жизнь производительности своей установки Windows.
Ну, очевидно, что для решения точно предусмотрено наследование формы проблема, которую вы пытаетесь решить. Любое решение, вероятно, каким-то образом имитирует наследование формы.
Не могли бы вы сделать что-нибудь настолько простое, как глобальный поиск в вашем коде "= class (TForm)" и замена класса TForm либо вашей существующей базовой формой, либо новый, упрощенный базовый класс формы с только той функциональностью, которая вам нужна?
В противном случае вы можете попытаться изменить сам исходный класс TForm, чтобы иметь желаемое поведение позиционирования. Очевидно, изменение предоставленных классов немного опасно.
Если вы не собираетесь использовать общую базовую форму, я бы посоветовал разместить невизуальный компонент в каждой форме. Этот компонент может привнести желаемое поведение в базовую форму. Если вы хотите иметь различное поведение в разных формах, дайте вашему компоненту свойство роли, которое определяет, какую роль должна иметь эта форма, и затем он может вводить различные характеристики на основе этой роли.
Кстати, у вас также может быть невизуальное наследование форм, что является моим предпочтительным методом создания общего базового класса для всех форм. Он также имеет преимущество добавления свойств в форму, а затем на основе этих свойств вы можете изменить роль или поведение формы.
Не зная больше о вашем приложении,Я бы посоветовал добавить код позиционирования к каждой форме индивидуально - преимущества отсутствия базового класса заключаются в том, что это упрощает создание определенных форм, которые работают немного по-другому, и сохраняет всю логику формы вместе в одном место.
Обычно я использую для этого событие FormShow, используя процедуру SetBounds (). С другими элементами управления, не относящимися к форме, вы можете сделать то же самое, переопределив сообщение CMShowing.
I took your idea of OnModalBegin and ran with it. The following is a "Hack", but it seems to work. To test simply drag around the form and click the button.
procedure TMainForm.Button1Click(Sender: TObject);
var
mForm: TForm;
begin
mForm := TForm.create(self);
mform.width := 300;
mform.height := 300;
mForm.ShowModal;
mForm.Free;
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
application.OnModalBegin := modalbegin;
end;
procedure TMainForm.FormShow(Sender: TObject);
begin
if Screen.FormCount>1 then begin
screen.forms[Screen.FormCount-1].left := round((screen.forms[Screen.FormCount-2].left + screen.forms[Screen.FormCount-2].width/2) - screen.forms[Screen.FormCount-1].width/2);
screen.forms[Screen.FormCount-1].top := round((screen.forms[Screen.FormCount-2].top + screen.forms[Screen.FormCount-2].height/2) - screen.forms[Screen.FormCount-1].height/2);
application.processmessages;
screen.forms[Screen.FormCount-1].Caption := inttostr(screen.forms[Screen.FormCount-1].top)+','+inttostr(screen.forms[Screen.FormCount-1].left);
end;
end;
procedure TMainForm.ModalBegin(Sender: TObject);
begin
if Screen.FormCount>=0 then
screen.forms[Screen.FormCount-1].OnShow := FormShow;
end;