Там нет замены для тестирования. Как насчет создания формы в коде, установки интересующих вас свойств и записи при вызове события resize.
Если вы извините за уродство кода, вот грубое доказательство концепции, которая тестирует все комбинации BorderStyle и Position без явного кодирования для каждой. Вы можете добавить больше свойств и сделать это так, как вам нравится. Такой инструмент, как CodeSite, сделает ведение журналов чище и проще.
Создайте приложение с 2 формами. Убедитесь, что второй не создан автоматически.
Во второй форме добавьте свойство и добавьте небольшой код регистрации в событие Resize формы:
private
FOnResizeFired: TNotifyEvent;
public
property OnResizeFired: TNotifyEvent read FOnResizeFired write FOnResizeFired;
end;
...
procedure TForm2.FormResize(Sender: TObject);
begin
if Assigned(FOnResizeFired) then
FOnResizeFired(self);
end;
В основной форме добавьте TypInfo к предложению использования и поместите кнопку и памятку в форму.
Добавить простую процедуру:
procedure TForm1.ResizeDetected(Sender: TObject);
begin
Memo1.Lines.Add(' *** Resize detected');
end;
Теперь добавьте следующее к событию ButtonClick:
procedure TForm1.Button1Click(Sender: TObject);
var
lBorderStyle: TFormBorderStyle;
lBorderStyleName: string;
lPosition: TPosition;
lPositionName: string;
lForm: TForm2;
begin
Memo1.Clear;
for lBorderStyle in [low(TFormBorderStyle) .. high(TFormBorderStyle)] do
begin
for lPosition in [low(TPosition) .. high(TPosition)] do
begin
lBorderStyleName := GetEnumName(TypeInfo(TFormBorderStyle), Integer(lBorderStyle));
lPositionName := GetEnumName(TypeInfo(TPosition), Integer(lPosition));
Memo1.Lines.Add(Format('Border: %s Position: %s', [lBorderStyleName, lPositionName]));
Memo1.Lines.Add(' Creating form');
lForm := TForm2.Create(self);
try
Memo1.Lines.Add(' Form Created');
lForm.OnResizeFired := ResizeDetected;
Memo1.Lines.Add(' Setting border style');
lForm.BorderStyle := lBorderStyle;
Memo1.Lines.Add(' Setting Position');
lForm.Position := lPosition;
Memo1.Lines.Add(' Showing form');
lForm.Show;
Memo1.Lines.Add(' Form Shown');
lForm.Close;
Memo1.Lines.Add(' Form Closed');
finally
FreeAndNil(lForm);
Memo1.Lines.Add(' Form Freed');
end;
end;
end;
end;
Вы заметите, что изменение размера срабатывает, когда некоторые свойства устанавливаются до отображения формы, и я вижу, что в некоторых комбинациях изменение размера срабатывает дважды при отображении формы. Интересно.