Jump to content

Search the Community

Showing results for tags 'fmx'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Delphi Questions and Answers
    • Algorithms, Data Structures and Class Design
    • VCL
    • FMX
    • RTL and Delphi Object Pascal
    • Databases
    • Network, Cloud and Web
    • Windows API
    • Cross-platform
    • Delphi IDE and APIs
    • General Help
    • Delphi Third-Party
  • C++Builder Questions and Answers
    • General Help
  • General Discussions
    • Embarcadero Lounge
    • Tips / Blogs / Tutorials / Videos
    • Job Opportunities / Coder for Hire
    • I made this
  • Software Development
    • Project Planning and -Management
    • Software Testing and Quality Assurance
  • Community
    • Community Management

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start




Found 95 results

  1. I gonna run python script in separate thread. My PythonEngine has IO field assigned with TPythonGUIInputOutput component What is the correct way to synchronize output (e.g. print("Hello World!") to Delphi's TMemo component? As far as I know VCL is not thread safe... Thank you.
  2. not sure if others are having this issue with Rad Studio 11.1 seems when you call TDialogService.InputQuery and want to get a user input string it acts really strange, the ok button acts as the cancel button and the cancel button acts as the ok button and the value of the input from the user can't be obtained? TDialogService.InputQuery('Please Enter Search Term', ['Info'], [search_word], procedure (const AResult : TModalResult; const values: array of string) begin if AResult<.mrOK2 then exit; // Exit; NewString:=Values[0]; // gets the value of the string input from the user end // end of dialog code ); // final end any help would be kindly appreciated.
  3. jptf59

    FMX Groupbox run-time display issue

    Hello, I am not an expert with FireMonkey and I am at a loss how to solve this problem : Config : Windows 10 - Win 32 platform - RAD STUDIO 10.4.2 Delphi ( Sydney) I use a few GroupBoxes that display nicefully in the EDI , like this : On the contrary at Run time they all show like this, that is with the headers struck out by the very frame of the groupbox whereas the textstyle is normall : I tried Groupboxes with other applications ( Test.dproj with TGroupBox) without any issue at run-time . I doubt whether this comes from my code because it does not impact the style of the GroupBoxes that remains by default but then what ??? Any idea ? I join the FMX text defining the groupbox above : object GroupBoxRoute: TGroupBox StyledSettings = [Family, Size, FontColor, Other] Position.X = 424.000000000000000000 Position.Y = 216.000000000000000000 Size.Width = 177.000000000000000000 Size.Height = 153.000000000000000000 Size.PlatformDefault = False Text = 'On Ground' TextSettings.Font.StyleExt = {00070000000000000004000000} TabOrder = 56 object Label55: TLabel StyledSettings = [Family, Size, FontColor] Position.X = 24.000000000000000000 Position.Y = 32.000000000000000000 Size.Width = 33.000000000000000000 Size.Height = 25.000000000000000000 Size.PlatformDefault = False TextSettings.Font.StyleExt = {00070000000000000004000000} Text = 'COG' TabOrder = 42 end object Label56: TLabel StyledSettings = [Family, Size, FontColor] Position.X = 24.000000000000000000 Position.Y = 72.000000000000000000 Size.Width = 33.000000000000000000 Size.Height = 25.000000000000000000 Size.PlatformDefault = False TextSettings.Font.StyleExt = {00070000000000000004000000} Text = 'SOG' TabOrder = 38 end object Label57: TLabel StyledSettings = [Family, Size, FontColor] Position.X = 128.000000000000000000 Position.Y = 32.000000000000000000 Size.Width = 33.000000000000000000 Size.Height = 25.000000000000000000 Size.PlatformDefault = False TextSettings.Font.StyleExt = {00070000000000000004000000} Text = #176 TabOrder = 41 end object Label58: TLabel StyledSettings = [Family, Size, FontColor] Position.X = 128.000000000000000000 Position.Y = 72.000000000000000000 Size.Width = 33.000000000000000000 Size.Height = 25.000000000000000000 Size.PlatformDefault = False TextSettings.Font.StyleExt = {00070000000000000004000000} Text = 'kts' TabOrder = 39 end object EdCOG: TEdit Touch.InteractiveGestures = [LongTap, DoubleTap] TabOrder = 45 Text = '0' TextSettings.Font.StyleExt = {00070000000000000004000000} TextSettings.FontColor = claBlueviolet TextSettings.HorzAlign = Center Position.X = 72.000000000000000000 Position.Y = 32.000000000000000000 Size.Width = 49.000000000000000000 Size.Height = 21.000000000000000000 Size.PlatformDefault = False StyledSettings = [Family, Size] end object EdSOG: TEdit Touch.InteractiveGestures = [LongTap, DoubleTap] TabOrder = 44 Text = '0' TextSettings.Font.StyleExt = {00070000000000000004000000} TextSettings.FontColor = claBlueviolet TextSettings.HorzAlign = Center Position.X = 72.000000000000000000 Position.Y = 72.000000000000000000 Size.Width = 49.000000000000000000 Size.Height = 21.000000000000000000 Size.PlatformDefault = False StyledSettings = [Family, Size] end object Label59: TLabel StyledSettings = [Family, Size, FontColor] Position.X = 24.000000000000000000 Position.Y = 112.000000000000000000 Size.Width = 49.000000000000000000 Size.Height = 25.000000000000000000 Size.PlatformDefault = False TextSettings.Font.StyleExt = {00070000000000000004000000} Text = 'Drift' TabOrder = 36 end object Label60: TLabel StyledSettings = [Family, Size, FontColor] Position.X = 128.000000000000000000 Position.Y = 112.000000000000000000 Size.Width = 33.000000000000000000 Size.Height = 25.000000000000000000 Size.PlatformDefault = False TextSettings.Font.StyleExt = {00070000000000000004000000} Text = #176 TabOrder = 40 end object EdDeriv: TEdit Touch.InteractiveGestures = [LongTap, DoubleTap] TabOrder = 43 Text = '0' TextSettings.Font.StyleExt = {00070000000000000004000000} TextSettings.FontColor = claBlueviolet TextSettings.HorzAlign = Center Position.X = 72.000000000000000000 Position.Y = 112.000000000000000000 Size.Width = 49.000000000000000000 Size.Height = 21.000000000000000000 Size.PlatformDefault = False StyledSettings = [Family, Size] end end Thanks JP
  4. Chester Wilson

    Scaley drawings

    I have a problem with image scale being different under android and under windows. I have tried to simplify this for Delphi Praxis. It started with trying to draw a black box around tEdit components on Android, so you can actually see them! On windows, the image.scale is left to the default (1,1). On android (at least on my phone), it has to be set to (0.31, 0.31) or the results are weird / awful. To duplicate it, make a new FMX project in a simple window. On the form place a tImage and 2 x tEdit (with some text in each). Use the code below, and put Resize into the Form.Resize in the object inspector. Run it on android and on windows and you should see the oddity. I do not know whether there may be something about using / not using high DPI on the android: ClientWidth x ClientHeight shows as 338 x 660, whereas the Samsung S22 is supposed to have a screen of 1080 x 2340, but I do not know how to access this. I will be interested in your ideas and findings please. unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.Edit, FMX.Memo.Types, FMX.ScrollBox, FMX.Memo, FMX.Objects; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Image1: TImage; procedure FormResize(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: tForm1; implementation {$R *.fmx} procedure tForm1.FormResize(Sender: TObject); var Rect, e1Rect, e2Rect : tRectf; begin Image1.Position.X := 20; Image1.Position.Y := 30; Edit1.Position.X := 40; Edit1.Position.Y := 60; Edit2.Position.X := ClientWidth - Edit2.Width - 60; Edit2.Position.Y := 60; //Create rectangle positions for edit boxes with respect to the image. e1Rect := tRectf.Create( Edit1.Position.X - Image1.Position.X, Edit1.Position.Y - Image1.Position.Y, Edit1.Position.X - Image1.Position.X + Edit1.Width, Edit1.Position.Y - Image1.Position.Y + Edit1.Height); e2Rect := tRectf.Create( Edit2.Position.X - Image1.Position.X, Edit2.Position.Y - Image1.Position.Y, Edit2.Position.X - Image1.Position.X + Edit2.Width, Edit2.Position.Y - Image1.Position.Y + Edit2.Height); // --------------- Problem Area ------------------- //Need this for Android: Image1.Scale.X := 0.31; Image1.Scale.Y := 0.31; Image1.Height := 200 * 3; Image1.Width := 3 * (ClientWidth - 40); Image1.Bitmap.SetSize(round(Image1.Width), round(Image1.Height)); //Need this for Windows { Image1.Height := 200; Image1.Width := (ClientWidth - 40); Image1.Bitmap.SetSize(round(Image1.Width), round(Image1.Height)); } // ------------------------------------------------- Image1.Bitmap.Canvas.Stroke.Kind := tBrushKind.Solid; Image1.Bitmap.Canvas.Stroke.Color := tAlphaColorRec.Black; Image1.Bitmap.Canvas.Stroke.Thickness := 2; Image1.Bitmap.Canvas.BeginScene; //Colour the whole image first Image1.Bitmap.Canvas.Clear(tAlphaColorRec.Lightsalmon); //Now white out the bits where we want to place the edit boxes //Left one: Rect.Left := e1Rect.Left - 1; Rect.Right := e1Rect.Left + Edit1.Width + 1; Rect.Top := e1Rect.Top; Rect.Bottom := e1Rect.Top + Edit1.Height + 1; Image1.Bitmap.Canvas.ClearRect(Rect, tAlphaColorRec.Yellow); //Right one: Rect.Left := e2Rect.Left - 1; Rect.Right := e2Rect.Left + Edit2.Width + 1; Rect.Top := e2Rect.Top; Rect.Bottom := e2Rect.Top + Edit2.Height + 1; Image1.Bitmap.Canvas.ClearRect(Rect, tAlphaColorRec.Yellow); //Now draw the rectangles Rect.Left := e1Rect.Left - 1; Rect.Right := e1Rect.Left + Edit1.Width + 1; Rect.Top := e1Rect.Top - 1; Rect.Bottom := e1Rect.Top + Edit1.Height + 1; Image1.Bitmap.Canvas.DrawRect(Rect, 1); Rect.Left := e2Rect.Left - 1; Rect.Right := e2Rect.Left + Edit2.Width + 1; Rect.Top := e2Rect.Top - 1; Rect.Bottom := e2Rect.Top + Edit2.Height + 1; Image1.Bitmap.Canvas.DrawRect(Rect, 1); Image1.Bitmap.Canvas.EndScene; end; end.
  5. Make a cool demo using Skia4Delphi and Delphi 11.1 Alexandria, post it on GitHub, be the envy of all your friends, and maybe win a new M1 Mac Mini! Visit the official contest page: Skia4Delphi GUI Beauty Contest See also the latest Skia4Delphi webinar: Supercharge Your User Interface with Skia4Delphi - Webinar Replay - YouTube
  6. sjordi

    Tag editor?

    Hi, Before I start trying to create one myself, does anyone here know an FMX component to use tags with add, delete, move functionalities. Something looking like (a little cross to delete next to each tag text would be nice) or from this forum Thanks for any help. Steve
  7. v3.3.0 Added HeightMultiplier property to TSkLabel to change the default line height; Added tag properties to TCustomWordsItem of TSkLabel; Added TItemClickedMessage to intercept the OnClick of all TCustomWordsItem of TSkLabel controls; Improvements in the OnClick triggering of TSkLabel items; Fixed many issues in Windows when using Skia4Delphi Canvas (including combobox dropdown); Fixed wrong colors in iOS with services when using Skia4Delphi Canvas: IFMXTakenImageService, IFMXCameraService, IFMXPhotoLibrary and IFMXShareSheetActionsService; Fixed effects and filters issue in Metal when using Skia4Delphi Canvas; Fixed wrong text size when using Skia4Delphi Canvas (fixing problems with TMemo and TTMSFMXHTMLText); Fixed AV in TSkLabel when the text of a TWordsItem starts with a sLineBreak; Fixed case-insensitive of image formats when saving images; Fixed wrong draws with stroke thickness zero when using Skia4Delphi Canvas; Fixed black screen startup on iOS in simple forms with only shapes when using Skia4Delphi Canvas; Fixed specific cases of performance issues in Windows when using Skia4Delphi Canvas; Fixed projects of RAD Studio 11; Fixed popup menu exception in rasterization mode when using Skia4Delphi Canvas; Fixed modulate color problem before RAD Studio 11.1 (which involves TintColor and TintIconColor properties on mobile); Minor improvements and fixes. Github: github.com/skia4delphi/skia4delphi Website: skia4delphi.org
  8. Hello I am porting a project to FMX (from VCL). I use a TSaveDialog with Filter for the file extensions : SaveDialog1.Filter := 'Acrobat file PDF|*.pdf|'+ 'Excel file(*.xls)|*.xls|'; As the user has choice for some extensions, I use the 'OnTypeChange' event to know the chosen extension. But when I change the extension this event does'nt fire, but the 'OnShow' event fires ! I tried TOpenDialog with the same problem. Some informations : * Delphi Pro 10.3.1 (I tried Delphi 10.3.3) * Event 'OnFolderChange' does'nt fire. Any idea ? Is there any option I missed ? Or a known bug ? Thx
  9. v3.0.1 Increase default form quality of Skia4Delphi Canvas in Android and iOS; Improve documentation about Righ-To-Left text rendering with Skia4Delphi Canvas; Fixed demo in Android 11; Fixed exception in ExcludeClipRect; Fixed quality of DrawImage of Skia4Delphi Canvas; Fixed some wrong pixel format in Android and iOS (without metal) that caused wrong colors of TCameraComponet; Fixed opacity of TSkAnimatedImage, TSkLabel and TSkSVG when using Skia4Delphi Canvas; Fixed TSkSVG cache; Fixed compilation with FmxLinux; Fixed FontWeight in FmxLinux; Fixed PDF viewer of demo in FmxLinux; Fixed setup and improve the logs; Fixed build.sh script; Fixed chocolatey package; v3.0.2 Fixed pixelformat of TBitmap of Skia4Delphi Canvas; Github: github.com/skia4delphi/skia4delphi Website: skia4delphi.org
  10. Serge_G

    [FMX] Dll not found

    Hi, I was testing D11 and Python4Delphi components (Getit version) With VCL 32 bits and 64 bits application execute, 👍 good job Same program FMX but, if 64 bits is OK, 32 bits raise an exception. Any explication ?
  11. We have a few users that experience freezing and very slow response in our Android App. In Google Play Console, we get these ANR messages: The app works on 99% of the devices, so it is not a general problem, and we cannot reproduce it on our devices. What can be the reason for these problems? Another user has posted a StackOverflow question about this a year ago - but no answers: https://stackoverflow.com/questions/66657413/how-to-solve-anr-on-android-firemonkey PS. Could it be related to this warning ("Non-SDK API: Landroid/view/MotionEvent") that we also have? https://stackoverflow.com/questions/70350726/delphi-11-app-in-android-play-store-shows-warning-non-sdk-api
  12. Hi there, I was experimenting with the Android.template.xml, to use different API-related selections, to searate old and new Bluetooth settings. Some recommendations in the web point to this nice and clean solution, so separate APIs in the manifest: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="..."> <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30" /> <application ... /> </manifest> Using the android:maxSdkVersion and the android:usesPermissionFlags="neverForLocation" identifier would allow an easy control over different versions. Unfortunately this didn't work in my current setup, maybe I have to rry again with a clean project, but I see a failure "attribute neverForLocation is not available". This seems that targeting to API31 is needed, and I'm still under API30, in its D11 default setup. But I'm not sure why this message pops up, and is not simply ignored, if there is an unknown attribute. Probably this needs linked somehow to the API31, and API30 throws exception. To be rescued, maybe the android:maxSdkVersion might work under different versions in different configurations, to make Delphi compatible with several API's at the same time in one manifest ? To be clear, I'm not talking about the targetSdkVersion here, but if someone could make use of the android:maxSdkVersion attribute already. I'm curious if somebody has get this working as expected under Delphi. Beside that, what would be the best way to handle BluetoothLE under API30, to be compatible with old and new devices ?
  13. Vanar

    Delphi 11: Google SignIn

    Hi All! Does anyone have a Goolge account login implementation for Delphi 11? Examples like GoogleSignin tweaked for Delphi <11 don't work!
  14. Greetings Dear Delphians, Say we have 20 Forms in an App. We use these 6 lines to create 20 Forms at different places. Form1 := TForm1.Create; try Form1.ShowModal; finally Form1.Free; end; When refactoring we can see this is a lot of code duplication and we should encapsulate form creation in a procedure like this. procedure ShowForm ( ThisForm: TCustomForm ) ; begin ThisForm := TCustomForm(ThisFormClass.Create);//?? How to Get Form Class try ThisForm.ShowModal; finally ThisForm.Free; end; end; I only have problem in first line. how to get ThisForm parent class to call it. Is it even possible? If yes then how? What about FMX? Any help or pointer is appreciated. Thanks and stay blessed
  15. Hi, i have a multi platform app that i'm maintaining from a few time I'm getting used to debug problems, but when the app is stuck into the splashscreen and Delphi cannot even start the debug mode the problem begins. I used logcat but cannot really get any useful information. The last time i had this problem it was caused from some .so files in a wrong path and the code put into the initialization section to load those .so files was crashing my app. But this time i already fixed that and i already tried to comment out all the code into the initialization section. What can i try to understand why my app is stuck? Ide shows no errors, and this is my logcat The only error shown is "isHeavy hint type 1 for app" but i have no variable called isHeavy in my code so i really have no idea what is referring to 12-16 09:39:47.578: D/Launcher.CellLayout(3938): touch item:ShortcutInfo, id=99, itemType=0, user=UserHandle{0}, mIconType=0, pkgName=<my package name>, className=com.embarcadero.firemonkey.FMXNativeActivity, screenId=2, container=-100, cellX=3, cellY=3, spanX=1, spanY=1, isLandscapePos=false 12-16 09:39:47.598: D/Launcher_dispatchTouchEvent_View(3938): 39:47.597 View= mHCells=4 mVCells=6 mTotalCells=24 mCellXY[0]=3 mCellXY[1]=5 childCount=16 EmptyCellsNum=8 [ tag 0 =com.miui.home.launcher.FolderIcon{f02e59 VFE...CL. ........ 795,84-1049,383}| childWidth 0 =254| childHeight 0 =299| childTranslationX 0 =0.0| childTranslationY 0 =0.0| childX 0 =795.0| childY 0 =84.0| childAlpha 0 =1.0] [ tag 1 =com.miui.home.launcher.ShortcutIcon{cb4f70e VFE...CL. ........ 33,84-287,383}(Impostazioni)| childWidth 1 =254| childHeight 1 =299| childTranslationX 1 =0.0| childTranslationY 1 =0.0| childX 1 =33.0| childY 1 =84.0| childAlpha 1 =1.0] [ tag 2 =com.miui.home.launcher.ShortcutIcon{85f4ea3 VFE...CL. ........ 33,389-287,688}(Note)| childWidth 2 =254| childHeight 2 =299| childTranslationX 2 =0.0| childTranslationY 2 =0.0| childX 2 =33.0| childY 2 =389.0| childAlpha 2 =1.0] [ tag 3 =com.miui.home.launcher.ShortcutIcon{a32dacd VFE...CL. ........ 287,84-541,383}(Mi Video)| childWidth 3 =254| childHeight 3 =299| childTranslationX 3 =0.0| childTranslationY 3 =0.0| childX 3 =287.0| childY 3 =84.0| childAlpha 3 =1.0] [ tag 4 =com.miui.home.launcher.ShortcutIcon{579b6e7 VFE...CL. ........ 541,84-795,383}(Meteo)| childWidth 4 =254| childHeight 4 =299| childTranslationX 4 =0.0| childTranslationY 4 =0.0| childX 4 =541.0| childY 4 =84.0| childAlpha 4 =1.0] [ tag 5 =com.miui.home.launcher.ShortcutIcon{603d248 VFE...CL. ........ 33,694-287,993}(AnyDesk)| childWidth 5 =254| childHeight 5 =299| childTranslationX 5 =0.0| childTranslationY 5 =0.0| childX 5 =33.0| childY 5 =694.0| childAlpha 5 =1.0] [ tag 6 =com.miui.home.launcher.ShortcutIcon{8e5aedb VFE...CL. ........ 541,389-795,688}(Mi Browser)| childWidth 6 =254| childHeight 6 =299| childTranslationX 6 =0.0| childTranslationY 6 =0.0| childX 6 =541.0| childY 6 =389.0| childAlpha 6 =1.0] [ tag 7 =com.miui.home.launcher.ShortcutIcon{d6128bc VFE...CL. ........ 541,694-795,993}(Pilot)| childWidth 7 =254| childHeight 7 =299| childTranslationX 7 =0.0| childTranslationY 7 =0.0| childX 7 =541.0| childY 7 =694.0| childAlpha 7 =1.0] [ tag 8 =com.miui.home.launcher.ShortcutIcon{d3e54b5 VFE...CL. ........ 287,389-541,688}(Assistente)| childWidth 8 =254| childHeight 8 =299| childTranslationX 8 =0.0| childTranslationY 8 =0.0| childX 8 =287.0| childY 8 =389.0| childAlpha 8 =1.0] [ tag 9 =com.miui.home.launcher.ShortcutIcon{b8369ee VFE...CL. ........ 287,694-541,993}(Iotar)| childWidth 9 =254| childHeight 9 =299| childTranslationX 9 =0.0| childTranslationY 9 =0.0| childX 9 =287.0| childY 9 =694.0| childAlpha 9 =1.0] [ tag 10 =com.miui.home.launcher.ShortcutIcon{6bed613 VFE...CL. ........ 795,389-1049,688}(NordVPN)| childWidth 10 =254| childHeight 10 =299| childTranslationX 10 =0.0| childTranslationY 10 =0.0| childX 10 =795.0| childY 10 =389.0| childAlpha 10 =1.0] [ tag 11 =com.miui.home.launcher.ShortcutIcon{30d4ffe VFE...CL. ........ 541,999-795,1298}(<my app name> Mobile Assist)| childWidth 11 =254| childHeight 11 =299| childTranslationX 11 =0.0| childTranslationY 11 =0.0| childX 11 =541.0| childY 11 =999.0| childAlpha 11 =1.0] [ tag 12 =com.miui.home.launcher.ShortcutIcon{d4fa929 VFE...CL. ........ 33,999-287,1298}(AIDA64)| childWidth 12 =254| childHeight 12 =299| childTranslationX 12 =0.0| childTranslationY 12 =0.0| childX 12 =33.0| childY 12 =999.0| childAlpha 12 =1.0] [ tag 13 =com.miui.home.launcher.ShortcutIcon{194fa12 VFE...CL. ........ 287,999-541,1298}(QuickSupport)| childWidth 13 =254| childHeight 13 =299| childTranslationX 13 =0.0| childTranslationY 13 =0.0| childX 13 =287.0| childY 13 =999.0| childAlpha 13 =1.0] [ tag 14 =com.miui.home.launcher.ShortcutIcon{bd39537 VFE...CL. ........ 795,694-1049,993}(App Info)| childWidth 14 =254| childHeight 14 =299| childTranslationX 14 =0.0| childTranslationY 14 =0.0| childX 14 =795.0| childY 14 =694.0| childAlpha 14 =1.0] [ tag 15 =com.miui.home.launcher.ShortcutIcon{6d564e6 VFE...CL. ...P.... 795,999-1049,1298}(<my app name>)| childWidth 15 =254| childHeight 15 =299| childTranslationX 15 =0.0| childTr 12-16 09:39:47.598: D/Launcher_dispatchTouchEvent_View(3938): 39:47.597 View=com.miui.home.launcher.ShortcutIcon{6d564e6 VFE...CL. ...P.... 795,999-1049,1298}(<my app name>) 12-16 09:39:47.666: I/ActivityTaskManager(1757): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=<my package name>/com.embarcadero.firemonkey.FMXNativeActivity bnds=[840,1098][1008,1266] (has extras)} from uid 10078 12-16 09:39:47.670: E/ANDR-PERF-LM(988): GAMEOPT: getData() 1035: isHeavy hint type 1 for app <my package name> 12-16 09:39:47.678: V/ActivityTaskManager(1757): Starting new activity ActivityRecord{f754cfb u0 <my package name>/com.embarcadero.firemonkey.FMXNativeActivity t140} in new task Task{304e060 #140 visible=true type=standard mode=fullscreen translucent=true A=10291:<my package name> U=0 StackId=140 sz=1} 12-16 09:39:47.732: D/Boost(1757): hostingType=pre-top-activity, hostingName={<my package name>/com.embarcadero.firemonkey.FMXNativeActivity}, callerPackage=com.miui.home, isSystem=true, isBoostNeeded=false. 12-16 09:39:47.733: I/ActivityManager(1757): Start proc 28622:<my package name>/u0a291 for pre-top-activity {<my package name>/com.embarcadero.firemonkey.FMXNativeActivity} caller=com.miui.home 12-16 09:39:47.742: V/WindowManager(1757): Orientation start waiting for draw, mDrawState=DRAW_PENDING in Window{13c228d mode=0 rootTaskId=140 u0 Splash Screen <my package name>}, surfaceController Surface(name=Splash Screen <my package name>)/@0xa3ec6bc 12-16 09:39:47.794: I/GST(6103): forePkg: <my package name>, preForePkg: com.miui.home 12-16 09:39:47.794: D/PerfEngineController(6093): ForegroundInfo{mForegroundPackageName='<my package name>', mForegroundUid=10291, mForegroundPid=28622, mLastForegroundPackageName='com.miui.home', mLastForegroundUid=10078, mLastForegroundPid=3938, mMultiWindowForegroundPackageName='null', mMultiWindowForegroundUid=-1, mFlags=1} 12-16 09:39:47.795: I/ProcessMonitor(5408): onForegroundInfoChanged: ForegroundInfo{mForegroundPackageName='<my package name>', mForegroundUid=10291, mForegroundPid=28622, mLastForegroundPackageName='com.miui.home', mLastForegroundUid=10078, mLastForegroundPid=3938, mMultiWindowForegroundPackageName='null', mMultiWindowForegroundUid=-1, mFlags=1} 12-16 09:39:47.795: D/AutoInstallService(11010): onForegroundInfoChanged: <my package name> 12-16 09:39:47.795: I/GameBoosterService(5408): onForegroundInfoChanged: Cur=<my package name> last=com.miui.home 12-16 09:39:47.801: D/GameBoosterService(5408): onGameStatusChange foreground:ForegroundInfo{mForegroundPackageName='<my package name>', mForegroundUid=10291, mForegroundPid=28622, mLastForegroundPackageName='com.miui.home', mLastForegroundUid=10078, mLastForegroundPid=3938, mMultiWindowForegroundPackageName='null', mMultiWindowForegroundUid=-1, mFlags=1} 12-16 09:39:47.881: D/View(28622): <my package name> initForcedUseForceDark: 1 12-16 09:39:47.909: W/linker(28622): Warning: "/data/app/~~wyLwJiilp-W6tb-ch2CPmA==/<my package name>-jZXsqAEEsEtrsmvpmPdF4Q==/lib/arm64/lib<my app name>.so" unused DT entry: DT_RPATH (type 0xf arg 0x2f4c4) (ignoring) 12-16 09:39:48.405: I/ActivityManager(1757): Process <my package name> (pid 28622) has died: fg TOP 12-16 09:39:48.550: W/WindowManager(1757): Failed to schedule DisplayAdjustmentsItem to ProcessRecord{d1d4bbf 28622:<my package name>/u0a291} 12-16 09:39:48.555: D/CommandQueue(3690): setStatus: setStatus: what = 0, action = upate_specail_mode, ext = Bundle[mParcelledData.dataSize=112][pkg = <my package name>[enable_config = false 12-16 09:39:48.657: D/Boost(1757): hostingType=top-activity, hostingName={<my package name>/com.embarcadero.firemonkey.FMXNativeActivity}, callerPackage=com.miui.home, isSystem=true, isBoostNeeded=false. 12-16 09:39:48.657: I/ActivityManager(1757): Start proc 28653:<my package name>/u0a291 for top-activity {<my package name>/com.embarcadero.firemonkey.FMXNativeActivity} caller=com.miui.home 12-16 09:39:48.805: D/View(28653): <my package name> initForcedUseForceDark: 1 12-16 09:39:48.829: W/linker(28653): Warning: "/data/app/~~wyLwJiilp-W6tb-ch2CPmA==/<my package name>-jZXsqAEEsEtrsmvpmPdF4Q==/lib/arm64/lib<my app name>.so" unused DT entry: DT_RPATH (type 0xf arg 0x2f4c4) (ignoring) 12-16 09:39:49.325: I/ActivityManager(1757): Process <my package name> (pid 28653) has died: fg TOP 12-16 09:39:49.356: D/Boost(1757): hostingType=top-activity, hostingName={<my package name>/com.embarcadero.firemonkey.FMXNativeActivity}, callerPackage=com.miui.home, isSystem=true, isBoostNeeded=false. 12-16 09:39:49.356: I/ActivityManager(1757): Start proc 28696:<my package name>/u0a291 for top-activity {<my package name>/com.embarcadero.firemonkey.FMXNativeActivity} caller=com.miui.home 12-16 09:39:49.473: D/View(28696): <my package name> initForcedUseForceDark: 1
  16. Fivecord

    Can't use deployed files on iOS

    I'v made an iOS app where I want the user to select the style. In the deployment I have added some fsf-files which have a Remote Path set to StartUp\Documents The style is set via the following code: astylefile := TPath.Combine(TPath.GetDocumentsPath, 'BlackRock_iOS.fsf'); TStyleManager.SetStyleFromFile(astylefile); Then I get the error: Cannot open file "/var/mobile/containers/Data/Application/.../Documents/BlackRock_iOS.fsf". No such file or directory. If I inspect the file appname.app, the folder StartUp/Documents is present with the fsf-files in it, so the files are deployed. Thus something prevents my app to access the files? I tried the same in a blank iOS app, where the styles are applied successful. Anybody an idea of what could be wrong?
  17. ertank

    Simple app for Android 5.0.2

    Hello, I am using Delphi 10.4.2. There is a very simple app (needs internet and network status permissions, 3 pages total) that I need to run on Android 5.0.2. I compiled it with stock SDK 25.2.5 targeting Android32. When package tried to be loaded on Android 5.0.2 it says Compiler error There is a problem with the packet parsing. Docwiki says Delphi 10.4.2 supports Android 6 minimum. Even Delphi 10.3.3 supports Android 5.2 mimimum. I wonder if there is some "workaround" that I can use without installing an older version. Thanks & Regards, Ertan
  18. Bob Baudewyns

    How to design QR Scan focus screen with FMX

    Hi, I'm developing an application that needs to scan QR Code. For the GUI design, I'd like to provide the usual scan focus screen with a transparent square inside a rectangle (the screen) like the attached mock-up. I already tried different approaches but not very successful. Any idea how could I design this with FMX ? Thanks
  19. Image32 is a 2D graphics library written entirely in Delphi Pascal. It provides an extensive range of image manipulation functions and includes a polygon renderer that supports a wide range of filling options. Documentation: http://www.angusj.com/delphi/image32/Docs/_Body.htm Examples: http://www.angusj.com/delphi/image32/Docs/Examples.htm Download: https://sourceforge.net/projects/image32/
  20. vfbb


    Website: github.com/viniciusfbb/skia4delphi Skia4Delphi is a cross-platform 2D graphics API for Delphi based on Google's Skia Graphics Library (skia.org). Google's Skia Graphics Library serves as the graphics engine for Google Chrome and Chrome OS, Android, Flutter, Xamarin, Mozilla Firefox and Firefox OS, and many other products. Skia provides a more robust Canvas, being very fast and very stable, with hundreds of features for drawing 2D graphics, in addition to a text shaping engine designed to render texts in the most diverse languages with right-to-left support (such as the Persian language), full support for loading SVG files, support for creating PDF files, support for rendering Lottie files (verotized animations created in Adobe After Effects), integration with the GPU, among countless other cool features. Skia's idea is similar to Firemonkey's, the same codebase used in an OS will work the same on other platforms. It is also possible to design using the CPU in independent background threads. Skia also has native codecs, of course if you don't use the SKCodec class, when loading an encoded image it will give priority to using the platform's native codec, but it is possible to use its codec, for example for jpeg files it uses libjpeg-turbo and for png files libpng which maybe in certain environments may perform better than native. See some examples: Advanced shapes Advanced text rendering / shaping Svg Lottie files And much more...
  21. Hi, I need examples for error handling strategies. Does anyone have any advice? (Log every success and failed procedure or function.)
  22. hi, Problem.: 1.- ListView using with DynamiAppearance, using only these kinds of objects.: 2.- I have to create a progress bar in runtime. I want to create/draw a bitmap in runtime. 3.- How to draw a rectangle, and fill it with color. -input data.: 25 -output.: Some bitmap with two rectangle -bitmap Height 10 Width 100 all the time! kind regards kz.
  23. Hi I am trying to split an Image stored in a first TImageList into a second TImageList all my attempts to access a multiresbitmap contained in a TImagelist show an error on program exit TImageListHelper = class helper for TImageList function Add(aBitmap: TBitmap): integer; end; var Form18: TForm18; implementation {$R *.fmx} uses FMX.MultiResBitmap; procedure TForm18.Button1Click(Sender: TObject); var sbitmap, pBitmap: TBitmap; vSource: TCustomSourceItem; vBitmapItem: TCustomBitmapItem; vDest: TCustomDestinationItem; begin Images.ClearCache; Images.BeginUpdate; if Images.Destination.Count > 0 then Images.Destination.Clear; vSource := ImageList1.Source.Items[1]; vBitmapItem := vSource.MultiResBitmap.ItemByScale(1, True, True); sbitmap := vBitmapItem.Bitmap; pBitmap := TBitmap.Create(100, 100); try for var l := 0 to 3 do for var c := 0 to 3 do begin var r: TRect := TRect.Create(pBitmap.Width * c, pBitmap.Height * l, pBitmap.Width * c + pBitmap.Width, pBitmap.Height * l + pBitmap.Height); pBitmap.CopyFromBitmap(sbitmap, r, 0, 0); Images.Add(pBitmap); end; finally pBitmap := nil; // if not an EAccessViolation exception raised when program close pBitmap.Free; end; Images.EndUpdate; end; { TImageListHelper } function TImageListHelper.Add(aBitmap: TBitmap): integer; const SCALE = 1; var vSource: TCustomSourceItem; vBitmapItem: TCustomBitmapItem; vDest: TCustomDestinationItem; vLayer: TLayer; begin result := -1; if (aBitmap.Width = 0) or (aBitmap.Height = 0) then exit; // add source bitmap vSource := Source.Add; vSource.MultiResBitmap.TransparentColor := TColorRec.Fuchsia; vSource.MultiResBitmap.SizeKind := TSizeKind.Source; vSource.MultiResBitmap.Width := Round(aBitmap.Width / SCALE); vSource.MultiResBitmap.Height := Round(aBitmap.Height / SCALE); vBitmapItem := vSource.MultiResBitmap.ItemByScale(SCALE, True, True); if vBitmapItem = nil then begin vBitmapItem := vSource.MultiResBitmap.Add; vBitmapItem.SCALE := SCALE; end; vBitmapItem.Bitmap.Assign(aBitmap); vDest := Destination.Add; vLayer := vDest.Layers.Add; vLayer.SourceRect.Rect := TRectF.Create(TPoint.Zero, vSource.MultiResBitmap.Width, vSource.MultiResBitmap.Height); vLayer.Name := vSource.Name; result := vDest.Index; end; AccessViolation if pbitmap:=nil is omitted >>EAccessViolation exception in module taKinFMX.exe in 00008338 >>Violation of access to the address 00408338 in the module 'taKinFMX.exe'. Reading of the address FFFFFFFC. ... >> The instruction at 0x0000000000408338 uses the memory address 0x00000000FFFFFFFC. Memory state cannot be read. and cause Unexpected Memory Leaks An unexpected memory leak has occurred. The unexpected small block leaks are: 29 - 36 bytes: TD2DBitmapHandle x 1, TBitmapImage x 1 45 - 52 bytes: TBitmap x 1 61 - 68 bytes: Unknown x 1 Where does I go wrong ? Is there another way to split (like during design time) an image ?
  24. hi every one can some one help me with problem I'm using Delphi REST with server and client but when i tried to show data on the client side its show only one row for some reason, what did i do wrong ? PS : I'm using Delphi roi and restdataware the video down show what I'm deal with ; any help will be very appreciated ^^ thank you on the client side i'm using this code procedure listv; var jsonObj : TJsonObject; json, sucesso, erro,id_store ,nom_store, phone_saler: string; begin // FrmLogin.FloatAnimation2.Stop; // FrmLogin.FloatAnimation3.Stop; if FrmLogin.listvreq.Response.JSONValue = nil then begin // FrmLogin.ExibirCampos; ShowMessage('خطأ في إنشاء الحساب (JSON غير صالح)'); exit; end; try json := FrmLogin.listvreq.Response.JSONValue.ToString; jsonObj := TJSONObject.ParseJSONValue(TEncoding.UTF8.GetBytes(json), 0) as TJSONObject; sucesso := jsonObj.GetValue('sucesso').Value; erro := jsonObj.GetValue('erro').Value; id_store := jsonObj.GetValue('id_store').Value; nom_store := jsonObj.GetValue('nom_store').Value; if sucesso <> 'S' then begin // FrmLogin.ExibirCampos; ShowMessage(erro); exit; end else // showmessage('تم احضار بيانات: ' + id_store+nom_store); // FrmLogin.ExibirCampos;/// // FrmLogin.ListView1.Items.Clear(); finally jsonObj.DisposeOf; end; end; procedure listverr(Sender: TObject); begin if Assigned(Sender) and (Sender is Exception) then begin // FrmLogin.ExibirCampos; showmessage(Exception(Sender).Message); end; end; procedure TFrmLogin.StartLogin2; begin TThread.CreateAnonymousThread( procedure var Success: Boolean; begin try RequestLogin.Execute; Success := RequestLogin.Response.Status.Success; except Success := False; end; TThread.Queue(nil, procedure begin AfterLogin2(Success); end ); end ).Start; end; procedure TFrmLogin.AfterLogin2(Success: Boolean); begin if Success then begin listvreq.Params.Clear; listvreq.AddParameter('type_store',ComboBox1.Selected.Text); /// **** listvreq.ExecuteAsync(listv, true, true, listverr); end else begin showmessage (' عفوا ...! لايمكن الاتصال بالخادم حاليا يرجى المحاولة لاحقا') end; on server side : procedure Tdm.DWEventsEventslistvReplyEvent(var Params: TDWParams; var Result: string); var type_store, erro : string; usuario : TUsuario; json : TJsonObject; begin try sleep(4000); type_store := Params.ItemsString['type_store'].AsString; json := TJsonObject.Create; usuario := TUsuario.Create(dm.conn); usuario.type_store := type_store; if NOT usuario.listv(erro) then begin //{"sucesso": "N", "erro":"Usuلrio nمo informado", "codusuario":"0"} json.AddPair('sucesso', 'N'); json.AddPair('erro', erro); json.AddPair('id_store', ''); json.AddPair('nom_store', ''); end else begin json.AddPair('sucesso', 'S'); json.AddPair('erro', ''); json.AddPair('id_store', usuario.id_store.ToString); json.AddPair('nom_store', usuario.nom_store); end; Result := json.ToString; finally json.DisposeOf; usuario.DisposeOf; end; and in class i add called unit usuario function TUsuario.listv(out erro: string): Boolean; var qry : TFDQuery; begin try qry := TFDQuery.Create(nil); qry.Connection := FConn; with qry do begin Active := false; SQL.Clear; SQL.Add('SELECT * from saler WHERE type_store = :any '); ParamByName('any').Value := type_store; Active := true; if RecordCount > 0 then begin id_store := FieldByName('id_store').AsInteger; nom_store := FieldByName('nom_store').AsString; erro := ''; Result := true; end else begin // id_store := 0; erro := 'تعذر جلب بيانات المعلنين'; Result := false; end; DisposeOf; end; except on ex:exception do begin erro := 'خطأ في التحقق من صحة تسجيل الدخول: ' + ex.Message; Result := false; end; end; bandicam_2021-05-01_17-50-29-913.mp4
  25. This issue shows up when writing a Characteristic from the Andorid app to the BT device. Here is the sequence using these TBluetoothGattCharactertistics methods SetValueAsUint32, then 4 bytes are transmitted. SetValueAsUint64, then 8 bytes are transmitted SetValueAsUint32, then 8 bytes are transmitted, the first four bytes contain the new 32 bits and the remaining 4 bytes contain the previous 64 bit value ************************************************************************************************************* In System.Bluetooth we find this method @line 2717(10.4.2), which all of the above methods call procedure TBluetoothGattCharacteristic.SetValueAs<T>(AValue: T; Offset: Integer); var LBytes: TBytes; begin LBytes := Value; if (Length(LBytes) < Offset + SizeOf(AValue)) then SetLength(LBytes, Offset + SizeOf(AValue)); Move(AValue, LBytes[Offset], SizeOf(AValue)); SetValue(LBytes); end; LBytes is always the last value sent (64 bits or 8bytes in the above example). As long as offset is zero (0), following a 64bit value with a 32bit or less value, will always result in SetLength not being called. And as long as offset is zero, this procedure can never reduce the size of LBytes, it can only increase the size of LBytes. ***************************************************************************************************************** my work around was to create a method in my BT wrapper that creates a variable ClrValue of type TBytes set length to 1 call the method SetValue(ClrValue) This resets the TBluetoothGattCharactertistics property Value to be length 1 and thus the SetLength in the above code will always be called and the correct number of bytes will be transmitted. ***************************************************************************************************************** I went back and checked 10.1 Update2 and the same code as above is there. This may be expected behavior, I dont know, Other than my little work around, I found no intrinsic way to change the array length and thus the bytes transmitted. If you call SetValueAsUint32, I would expect 4 bytes to be transmitted, regardless of what was transmitted before.