Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


jarto last won the day on May 15

jarto had the most liked content!

About jarto

  • Rank

  • Birthday 02/11/1970

Profile Information

  • Gender
  • Location


  • Company name
    The Smart Company AS
  • Sector
    Information technology
  • Position
    Development Manager

Smart Mobile Studio

  • Edition

Recent Profile Visitors

961 profile views
  1. Making some progress. The generated index.html is correct. The issue seems to be in the way the SMS internal server serves the page. I found some messages that if the server sends an encoding, the browser will switch to that. So that's where I'm going to look next.
  2. I can also reproduce the problem. The characters are properly encoded in utf-8 as they should be. The page headers also contains: <meta charset="UTF-8" /> But still my browser switches the encoding it uses to Western. If I change it to Unicode in the browser settings, the characters are viewed correctly. This is weird...
  3. TW3ScrollBox is a scroll box, where you have more control over how scrolling is done and what indicators you can use. In this control, scrolling is done by code, so the control looks and behaves the same way on different browsers and mobile devices. TW3NativeScrollBox is basically just a normal div-element, where we set the necessary properties to make it scrollable. But the browsers and mobile devices themselves do the scrolling. So scroll speed and how things look like vary between devices. For example, in mobile devices there are not usually any scroll bars to save space. I'm not sure which version of SMS you're using. The earlier versions of TW3ScrollBox required that you created evertything inside it's Content and called UpdateContent so it would recalculate everything. In newer versions it became easier to use.
  4. If you want to do tricks like these, you should use a TW3DIVHtmlElement instead of a TW3Label. Using br -tags to add space between paragraphs is also not recommended: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/br says: Note: Do not use <br> to create margins between paragraphs; wrap them in <p> elements and use the CSS margin property to control their size. So, using a div you can do for example: W3DIVHtmlElement1.InnerHtml:='<p>today</p><p></p>weather<br>sunny';
  5. Can you send an e-mail to jea at smartmobilestudio.com and ask for the educational license? Please cc me jt at smartmobilestudio.com
  6. jarto

    Scroll form

    As your code is inside Form1 already, you can simply do: Self.NativeScrolling:=True; Or even: NativeScrolling:=True; The form scrolling is a trickier problem as the memo captures the swipes and uses them to move the cursor or paint text. One way to solve it is to add a transparent control on top of the memo, but it's definitely not an optimal solution: procedure TForm1.InitializeForm; begin inherited; NativeScrolling:=True; var ScrollHelper:=TW3CustomControl.Create(Self); ScrollHelper.SetBounds(W3Memo1.BoundsRect); ScrollHelper.Transparent:=True; ScrollHelper.OnClick:=lambda W3Memo1.BringToFront; W3Memo1.SetFocus; end; W3Memo1.OnLostFocus:=lambda ScrollHelper.BringToFront; end; W3Memo1.OnResize:=lambda ScrollHelper.SetBounds(W3Memo1.BoundsRect); end; end; Some JS guru could probably tell a better solution.
  7. There is no support for selecting and changing multiple controls at the moment. The Alpha version can't be used with a trial license.
  8. @Huseyin SEKER Here's a simpler version that does the same. It collects the editboxes to an array that you can access directly. Makes the code simpler and more robust. Also note that you don't have to declare the size of the array. var editBoxes: array of TW3EditBox; Self.ForEach(function(const Child: TW3TagContainer): TEnumResult begin if (Child is TW3EditBox) and (TW3EditBox(Child).TagValue=2) then editBoxes.Add(Child); result:=erContinue; end); editBoxes[1].Text:='some text';
  9. jarto

    Android Permissions

    I haven't sent SMS messages myself but with the plugins that I've used in the past, I have not had to specifically do the part that asks for permissions. The plugin and the phone itself take care of that once I try to use the functionality.
  10. You can also use ForEach: var EditBoxCount: Integer := 0; Self.ForEach(function (const Child: TW3TagContainer): TEnumResult begin if Child is TW3EditBox then begin inc(EditBoxCount); TW3EditBox(Child).Text:=IntToStr(EditBoxCount); end; result:=erContinue; end);
  11. It's not a good idea to try to hack this by using GetChildById and changing styles. Using BackgroundThemes is one way of doing it. But if you want complete control over how a cell is rendered, make your own column class from TW3StringGridTextColumn and override the GenerateHtml -function in it. That way you can use every trick there is in css. For example: TW3MyCoronaColumn = class(TW3StringGridTextColumn) public function GenerateHtml(GridLine: TW3RenderedGridLine; ColumnIndex, CurrentLeft: Integer): String; override; end; ... function TW3MyCoronaColumn.GenerateHtml(GridLine: TW3RenderedGridLine; ColumnIndex, CurrentLeft: Integer): String; begin var ItemId:=Grid.Handle.id+'_row_'+IntToStr(GridLine.DataIndex)+'_col_'+IntToStr(ColumnIndex); GridLine.ItemIds.Add(ItemId); result:='html code for the cell'; end; You can have a look at how TW3StringGridTextColumn generates the html as an example.
  12. Another important fix to handling of aligns is available.
  13. This is now fixed in the Alpha channel
  14. @Tim Koscielski Thank you. I can reproduce the problem. Resizing the form will do, which means that something goes wrong during the initial resize right after the form has been created. Gonna have a look. Edit: Can you try removing this from line 4595 in SmartCL.Components.pas and see if it fixes the problem? RemoveFromComponentState([csAligning]); //Remove this line
  15. Form navigation code is in SmartCL.Application.pas: Application.GotoFormByRef(aForm: TW3CustomForm; Effect: TFormEntryEffect = feNone); Application.GotoForm(aName: String; Effect: TFormEntryEffect = feNone); While the earlier versions required you to create forms in code, 3.0 does it automatically during startup. You can control, which forms are created in Project Options.
  • Create New...