Search the Community
Showing results for tags 'help'.
-
Hello! I'm very new to UNIGUI and I'm having some trouble creating responsive forms. I Have a form with a single panel that has the table layout, and I am trying to change the layout properties at runtime, whne the panel is rezized: procedure TfAgencia.UniPanel7Resize(Sender: TUniControl; OldWidth, OldHeight: Integer); var StrErr: string; begin try case OldWidth >= 800 of True: begin if not TResources.GetInstance.ResponsiveFormFields(UniPanel7, 16, StrErr) then Abort; end; False: begin if not TResources.GetInstance.ResponsiveFormFields(UniPanel7, 1, StrErr) then Abort; end; end; except On e: Exception do begin TSweetAlert.GetInstance.Execute(Alert, StrErr, TAlertType.atInfo); end; end; end; I created the responsivefields function to make a more generic solution: function TResources.ResponsiveFormFields(Painel: TUniPanel; ColSize: Integer; out StrErr: string): Boolean; var i: Integer; begin try StrErr := 'Somente Paineis com Layout "table" são suportados por esta função.'; if Painel.Layout <> 'table' then Abort; with Painel do begin JSInterface.JSAssign('layout.columns', [ColSize]); JSInterface.JSCode(#1'.setConfig({cellpadding:5});'); JSInterface.JSCode(#1'.setConfig({columnWidth:''' + Trunc(Painel.Width / ColSize).ToString + 'px''});'); end; for i := 0 to pred(Painel.ControlCount) do begin if Painel.Controls[i] is TUniDBEdit then begin With (Painel.Controls[i] as TUniDBEdit) do begin CreateOrder := i; JSInterface.JSProperty('width', '98%'); JSInterface.JSProperty('columnWidth', Trunc(Painel.Width / ColSize).ToString + 'px'); if Tag = 0 then Tag := LayoutConfig.ColSpan; if ColSize = 1 then JSInterface.JSProperty('colspan', 1) else JSInterface.JSProperty('colspan', Tag); end; end; if Painel.Controls[i] is TdbSelect then begin with (Painel.Controls[i] as TdbSelect) do begin CreateOrder := i; if Tag = 0 then Tag := LayoutConfig.ColSpan; if ColSize = 1 then LayoutConfig.ColSpan := 1 else LayoutConfig.ColSpan := Tag; end; end; end; Painel.JSInterface.JSCall('updateLayout', []); StrErr := ''; Result := True; except Result := False; end; end; All of this ALMOST works as intended, but some properties are not changing or reflecting in the HTML: cellpadding columnWidth width Can someone help me and point out what is wrong here? I already tried different methods of injecting these properties, such as: JsAssign, JSProperty, JSConfig, JSCode.
- 13 replies
-
Hi, I need expert feedback. My company used Delphi to develop most of our desktop applications. None of us has any experience with web scripting. Our company wants to develop a web-based exam center. The exams will usually show text, video, voice, and MOQ questions. The max number of users who will take an exam at the same time might exceed 9000. I suggest using UniGUI to develop the solution for this exam center, but I need to be assured of the following: 1. Can UniGUI support this number of users at the same time? 2. What Hardware specs are required? 3. What infrastructure is required (e.g., servers, bandwidth, load balancers, SSL, and DBMS). Your help is appreciated.