Доброго времени суток!
Поискал по форуму, не нашёл ответа на мой вопрос, поэтому задам таки, хотя, догадываюсь эти грабли не только мне попадались.
Сюжет такой: использую TWebBrowser. Мне хочется, чтобы в Win и Android работало одинаково.
Соответственно, для Win использую ShDocVw, для Android - FMX.WebBrowser.
uses
.......................
{$IFDEF MSWINDOWS}
SHDocVw, Vcl.Controls
{$ELSE}
FMX.WebBrowser
{$ENDIF};
Объект создаю в Run Time, создаётся и там и там нормально, но затык в Parent'e. Там стоит TLayout, в котором он и должен нарисоваться. С Android'ом всё в порядке. В Win - либо ошибка при компиляции, либо в случае вот этого текста - AV как раз в строке где назначается Parent. Сам понимаю, что TWinControl(TLayout) - ахинея полная.
if FBrowser = nil then
begin
FBrowser := TWebBrowser.Create(nil);
{$IFDEF MSWINDOWS}
TWinControl(FBrowser).Parent := TWinControl(Self.Layout2);
FBrowser.Align := alClient;
{$ELSE}
FBrowser.Parent := Self.Layout2;
FBrowser.Align := TAlignLayout.alClient;
{$ENDIF}
end;
FBrowser.Navigate(AURL);
Как быть с этим? Научите. В FM я совсем новый человек.
Понимаю, что TLayout можно для Win заменить на TPanel. Но к чему тогда вообще все визуальные средства, если всё ручонками в RT создавать...