x11 Posted March 26, 2021 Share Posted March 26, 2021 В зависимости от разных условий, некоторые визуальные элементы в браузере отображать не следует. Например, TUniPanel, TUniEdit, TUniContainerPanel. И это следует делать в событии onReady фрейма. Я понимаю, что достаточно Visible или Hide, но это не очень подходит, т.к. элемент в браузер все равно передается с CSS-свойством Display: None и его можно потом отобразить с помощью DevTools. А очень желательно, чтобы этих элементов в браузере не было, чтобы они не передавались с бэкэнда сервера. Пробовал просто удалять элементы перед показом фрейма (UniPanel1.Free), но есть проблемы. Например, появляются утечки памяти или вообще элемент в браузер все равно передается и виден на страничке. Quote Link to comment Share on other sites More sharing options...
x11 Posted March 30, 2021 Author Share Posted March 30, 2021 up Quote Link to comment Share on other sites More sharing options...
Sherzod Posted March 30, 2021 Share Posted March 30, 2021 On 3/26/2021 at 5:55 PM, x11 said: Пробовал просто удалять элементы перед показом фрейма (UniPanel1.Free), но есть проблемы. Например, появляются утечки памяти или вообще элемент в браузер все равно передается и виден на страничке. On 3/26/2021 at 5:55 PM, x11 said: И это следует делать в событии onReady фрейма. Добрый день, Используйте OnCreate событие. Quote Link to comment Share on other sites More sharing options...
x11 Posted March 30, 2021 Author Share Posted March 30, 2021 Я понимаю, но проблема в том, что создается фрейм, а потом, после создания назначаются разные свойства, в зависимости от которых и нужно скрывать некоторые элементы. with TfrdParentEditObj.Create(t) do begin Name := 'frdParentEditObj' + T.PageIndex.ToString; Parent := T; fCurrTabSheet := T; fCurrSuperType := ST; ShowHideElements; EditMode := aEditMode; IDObj := idObject; DoAfterCreate; Show; end; как ДО создания фрейма назначить свойства, если фрейма если не существует? Quote Link to comment Share on other sites More sharing options...
x11 Posted March 30, 2021 Author Share Posted March 30, 2021 В общем, попытался сделать с помощью костыля, т.е. перенес определение нужного свойства в OnCreate но всё равно куча AV потом вываливается t.Tag := ORD(ST); with TfrdParentEditObj.Create(t) do ... ... procedure TfrdParentEditObj.UniFrameCreate(Sender: TObject); begin inherited; if not assigned(self.owner) then begin -ошибка- exit; end; if self.Owner is TUniTabSheet then begin fCurrSuperType := TSuperType((self.Owner as TUniTabSheet).Tag);// получаем переденное свойство ShowHideElements;// уничтожаем ненужные элементы end else -ошибка- end; куча исключений вываливается уже поcле Show, после всего моего кода, где-то в недрах uniGUI или в недрах RTL в модуле SYSTEM class function TObject.InheritsFrom(AClass: TClass): Boolean; Quote Link to comment Share on other sites More sharing options...
x11 Posted July 27, 2021 Author Share Posted July 27, 2021 up Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.