Volk65 Posted March 29 Share Posted March 29 Привет всем! Создаю панель в Runtime и присваиваю: Pan.ClientEvents.ExtEvents.Values['OnAfterrender'] := 'function OnAfterrender(sender)'+ ' { sender.setBodyStyle("background-color:'+ColorToHtml(C1)+'; -webkit-border-radius: 5px; -khtml-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px");'+ ' sender.setBodyStyle("border-color", "'+ColorToHtml(C1)+'");'+ ' sender.setBodyStyle("border-width" , "0px");'+ ' }'; Панель создается и отображается, как и задумано. Потом я хочу поменять цвет рамки и выполняю: Pan.ClientEvents.ExtEvents.Values['OnAfterrender'] := 'function OnAfterrender(sender)'+ ' { sender.setBodyStyle("background-color:'+ColorToHtml(clRed)+'; -webkit-border-radius: 5px; -khtml-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px");'+ ' sender.setBodyStyle("border-color", "'+ColorToHtml(clRed)+'");'+ ' sender.setBodyStyle("border-width" , "2px");'+ ' }'; Но рамка не меняет цвет. Или надо какое-то другое событие использовать вместо OnAfterrender, или надо как-то обновить кнопку на клиенте, может быть вызвать какую-нибудь функцию. Как это реализовать? Quote Link to comment Share on other sites More sharing options...
Sherzod Posted March 29 Share Posted March 29 Добрый день, Да, нужен другой подход. Quote Link to comment Share on other sites More sharing options...
Sherzod Posted March 29 Share Posted March 29 7 minutes ago, Sherzod said: Да, нужен другой подход. Например: 1. OnCreate -> procedure TMainForm.UniFormCreate(Sender: TObject); begin UniPanel1.ClientEvents.ExtEvents.Values['OnAfterrender'] := 'function OnAfterrender(sender)'+ '{'+ ' sender._setStyles = function(color) {'+ ' sender.setBodyStyle("-webkit-border-radius: 5px; -khtml-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px");'+ ' sender.setBodyStyle("background-color", color);'+ ' sender.setBodyStyle("border-color", color);'+ ' sender.setBodyStyle("border-width" , "2px");'+ ' };'+ ' sender._setStyles("red");'+ '}'; end; 2. RunTime -> procedure TMainForm.UniButton1Click(Sender: TObject); begin UniPanel1.JSInterface.JSCall('_setStyles', ['green']); end; 1 Quote Link to comment Share on other sites More sharing options...
Volk65 Posted March 29 Author Share Posted March 29 Спасибо попробую. 1 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.