Archiv der Kategorie: FireMonkey

FAF – FireMonkey App Framework – Basics

Some basics of the framework

  • Application.Mainform is the one and only „MainWindow“ which is visible throughout the lifecycle of an app
  • „MainWindow“ is used as a container for any other „view“ of the app
  • a view is a layout carried by hidden form which is created / disposed as needed
  • use of TForm as container for easy definition of layouts per device in IDE
  • a view is displayed by changing parent to „MainWindow“
  • going down in view hierarchy a view is put on a „history“ stack
  • going up in hierarchy current view is disposed and view on top of „history“ stack is displayed
  • „Back“ button is checking for special handling by a view before stack
  • view templates: splash, login, about, settings, main, list, image etc
  • on startup all necessary views are registered with an alias, formclass, etc

work in progress

  • notifications
  • preferences
  • persistent settings
  • application events
  • SQLite integration
  • multi language

Delphi 10.x :: THTTPClient replaced with Indy

After all this trouble – minimum 4 weeks lost – I replaced THTTPClient with Indy TidHTTP. Not too much work and the basics worked within an hour or two.
One new problem introduced by Indy was that TidMultiPartFormData did not work as expected. For a quick solution wrote data in a TStringStream and sent instead.

SideEffect: The app did not work when compiled in 10.1 Berlin. Now it does !

Delphi 10.1 :: Font.Style internal (*.fmx) replaced by StyleExt

This is a label in FireMonkey in 10.0 Seattle

[Delphi]
object Label1: TLabel
Align = Center
AutoSize = True
StyledSettings = [Family]
Size.Width = 79.000000000000000000
Size.Height = 24.000000000000000000
Size.PlatformDefault = False
TextSettings.Font.Size = 18.000000000000000000
TextSettings.Font.Style = [fsBold]
TextSettings.FontColor = claGold
TextSettings.WordWrap = False
Text = ‚Test App‘
end
[/Delphi]

and this in 10.1. Berlin

[Delphi]
object Label1: TLabel
Align = Center
AutoSize = True
StyledSettings = [Family]
Size.Width = 74.000000000000000000
Size.Height = 24.000000000000000000
Size.PlatformDefault = False
TextSettings.Font.Size = 18.000000000000000000
TextSettings.Font.StyleExt = {00070000000000000004000000}
TextSettings.FontColor = claGold
TextSettings.WordWrap = False
Text = ‚Test App‘
end

[/Delphi]

Delphi 10.x :: iOS Output: Err=Unable to mount Developer Disk Image. (E800000E)

Next error … becoming a real nightmare.

  • Xcode up-to-date
  • Command line tools installed and up-to-date
  • Certificate valid and up-to-date
  • Provisioning profile valid and up-to-date
  • SDK up-to-date
  • iPhone iOS up-to-date
  • iPhone registered as developer device
  • iPhone Provisioning profile installed
  • tested that Xcode can compile, deploy and run an app on my iPhone

Anything missing or else I can do ?

EDIT:
Maybe I found the reason for as I checked and found

  • Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/9.3  (13E230)/DeveloperDiskImage.dmg
  • but with latest iOS update we have iOS 9.3 (13F69)

Is this causing all the trouble now ???

Delphi 10.x :: Unable to install package. (e8008015)

For a week now I am searching for a solution for the problem with error e8008015 when trying to a iPhone for testing.
And why the heck do I mostly have to reboot my Mac after shutting down PAServer-17-0 ? EIdCouldNotBindSocket ! This is ridiculous, annoying and frustrating.

Funny, just now my VM froze after clicking on „Test Connection“ in Connection Profile Manager  ( without words… )

So do it again Sam !

  • Kill delphi …
  • shutdown VM
  • reboot Mac
  • start VM
  • start PAServer-17.0
  • start Delphi
  • try deploy, pray and hope …
  • Nope, again e8008015

I have one developer account, one certificate, one provisioning profile, one device !
On the Mac is all set, so what ???

Delphi 10.X :: Android SDK Management – why an Installation with every Delphi Version ?

IMHO this is another strange thing with the whole IDE IOptions / Setup:
Every Delphi Version installs a copy of the Android SDK in
„C:\Program Files (x86)\Embarcadero\Studio\XX.0\PlatformSDKs“ (about 1.5 GB)
BUT
There is also this $(BDSPLATFORMSDKSDIR) environment variable, in this folder the OS x and iOS SDKs are installed

So why not also install Android here and manage it for all Delphi Versions ?

Delphi 10.0 Seattle :: Problems with an app in iOS (Simulator)

Testing an app for IOS I run into  problems – app is working 100% on Android:

  1. TEdit (ControlType = Styled) looses focus in iOS Simulator (QC Embarcadero RSP-14856)
  2.  A form containing controls with control type = Platform crashes on Form.DisposeOf
  3. TEdits (ControlType = Platform) when hiding containing Layout.visible := False edits still visible

Now how pack these problems in a working Demo for a bug report without publishing most of the source code ? Some work ahead …