FabDev
Members-
Content Count
81 -
Joined
-
Last visited
Everything posted by FabDev
-
Of course 64 bits is a need ! Each time my Delphi IDE crash process monitor display more than 2.5 Gb used. My project (25 years) contains more than 7 million lines of code with more than 40 libraries of third-party components, it contains more than 600 forms. And do not say that it is too old because I change version to Delphi version (from 2 to 11.3) and I delete the old libraries (For Example BDE -> IBX -> IBDAC). I use ribbon like Winword 2021 and my latest DevExpress WXI skin and look and feel. Yes of course, some forms contain a lot of components, but in execution there is no problem with the 32-bit version, it's only in Design time. And what happens when more than 100 forms are opened at the same time or after intensive code completion using or pressing F1 (for help) > out of memory. This can happens after 30 minutes or sometimes 2 hours of coding. I have plenty of screenshots that show this out of 32 bits resources problem (Memory and certainly GDI) : My computer has 32 GB of memory, but the Delphi IDE crash after 2.5 GB...
-
Developing apps for GPS related info, i.e., miles/speed/location/etc
FabDev replied to JohnLM's topic in General Help
Hello, I recommand this very powerful component : TecNativeMap component -
Hello, With this code you can detect if Clipboard contains Text or a bitmap : if TPlatformServices.Current.SupportsPlatformService(IFMXClipboardService, Svc) then begin Value := Svc.GetClipboard; if not Value.IsEmpty then begin if Value.IsType<string> then begin ATexteSource := Value.ToString; PasteImage.Bitmap := nil; end else if Value.IsType<TBitmapSurface> then begin But how to detect if clipboard contains file ? Because in this case (= after copying files from Windows Explorer) Value.IsEmpty=true Of course the question is for any platform (Windows, IOS, MacOs etc...). Must we use a specific code for each OS ? I know how to do with VCL but not with FMX.
-
Hello, In Delphi 11.3, why a pasted image from clipboard RGB becomes BGR on IOS 64 bits (16.5) ? This sample which paste a bitmap from clipboard is extracted from : https://docwiki.embarcadero.com/CodeExamples/Alexandria/en/FMX.CopyPaste_Sample https://github.com/Embarcadero/RADStudio11Demos/tree/main/Object Pascal/Multi-Device Samples/User Interface/CopyPaste => This demo has the same problem ! procedure TForm66.Button1Click(Sender: TObject); var Bitmap:TBitmap; LStream:TMemoryStream; Svc: IFMXClipboardService; Value: TValue; begin if TPlatformServices.Current.SupportsPlatformService(IFMXClipboardService, Svc) then begin Value := Svc.GetClipboard; if Value.IsType<TBitmapSurface> then begin ImageSRC.Bitmap.Assign(Value.AsType<TBitmapSurface>); end else showmessage('Clipboard not a bitmap'); end; end; Work fine on Windows 32 or 64 bits, Android 64 bits and MacOS 64 bits But on IOS 64 bits (16.5) image is pasted but RGB colors becomes BGR... is pasted to => Same with : GlobalUseMetal := True; GlobalUseSkia := True; Full sample in attachment. ImagePasteFromClipboardIOSRGBLost.zip
-
Paste image from clipboard : RGB becomes BGR on IOS 64 bits ?
FabDev replied to FabDev's topic in FMX
The image provided in my sample is only to understand that happen. I don't check if all type a picture (png, jpeg etc..) have this problem. But it's a very easy to reproduce : 0) Take a photo 1) Select this photo (in photo app) 2) Copy this photo to the clipboard (with Share option in IOS) 3) Paste it in source app given or sample from Embarcadero "CopyPaste ". => RGB becomes BGR I have updated my report https://quality.embarcadero.com/browse/RSP-41896 -
Hello, Following this topic which finish to speak about MDI 😛 : About MDI component to TDI ( Tabbed Document Interface ). An efficient component exists since a long time in DevExpress component library : https://docs.devexpress.com/VCL/155103/ExpressBars/fundamentals/tabbed-mdi-manager https://docs.devexpress.com/VCL/dxTabbedMDI.TdxTabbedMDIManager After tested to convert a MDI application to a SDI application which was too complicated for end users they use TDI the best world of SDI/MDI. The only thing I don't succeed is to transform a MDI (TDI) form to a SDI one (and SDI -> MDI) without fully recreate it. Purpose is to do like webbrowser when you drop a tab outside. With recreate a form it it not very difficult : procedure TMyForm.Loaded; begin inherited; // default FormStyle := fsMDI if gSDIAsked then FormStyle := fsNormal; end; Any idea to switch a form SDI <-> MDI without recreate it ?
-
I confirm only experienced users can handle docking correctly. But the idea is not bad maybe only if each form can dock between each other in tabbed mode and alclient (= in full size of the destination form). Exactly do a web browser.
-
I'am not agree Tabbed/TDI = MDI (with child alclient) with tab. Create a MDI application and add a pagecontrol (where 1 tabsheet = 1 mdichild) on top you have a basic TDI application. Form me a TDI is a sub-type of MDI : https://en.wikipedia.org/wiki/Comparison_of_document_interfaces And Embarcadero seems to do that have done Devexpress some years ago : https://blogs.embarcadero.com/whats-coming-in-delphi-and-cbuilder-libraries/
-
Requested for IDE to support more RAM (vote/discuss if you care)
FabDev replied to Tommi Prami's topic in Delphi IDE and APIs
Yes I really need it. With an old project with several million lines of code I need to restart more than 20 times a day (Out of memory, black screen etc.) . And sometime it's can corrupt my sources ! We are In 2023 : A 64 bits IDE should be the priority ! -
Hello, This : procedure TForm2.Button3Click(Sender: TObject); var V1, V2: Variant; I1, I2: Integer; begin V1 := 0; V2 := 0; ShowMessage(V1 / V2); I1 := 0; I2 := 0; ShowMessage(FloatToStr(I1 / I2)); end; Tested on 4 differents Delphi version (XE, 10.3, 10.4 or 11.3 pro or enterprise) both showmessage raise an EInvalidOp exception. Like described here : https://docwiki.embarcadero.com/RADStudio/Sydney/en/Floating-Point_Exceptions Tested on Windows 10 or 11 in VM or Physical. From a ten year old pentium to a two year old Core I7. Same for Win32 or Win64 compiled debug or release. In debug mode or not. And same with or without GExpert, madexcept etc. But for other Delphi user's using exactly the same project NaN is displayed ! Why ? Does any Windows language settings can do it ? TestDivisionByZero.zip
-
Yes the original question was for win32 : And after reading this : I need to have a "logical" answer in which case exception is not raised. For the moment it's seems to be because of using of : SetExceptionMask([exInvalidOp, exZeroDivide]);
-
The project in my first post in this thread was coded by another Delphi user's (someone in the Support of a component library) and he said showmessage display Nan (= no exception) !!!
-
Problem all my Delphi (XE, 10.3, 10.4 and 11.3) do exception on VM and Physical Windows 10/11 : The project in attachment : procedure TForm23.Button1Click(Sender: TObject); var v1,v2,v3:variant; begin v1:=0; v2:=0; v3:=v1/v2; end; procedure TForm23.Button2Click(Sender: TObject); var v1,v2:integer; begin v1:=0; v2:=0; showmessage(Floattostr(v1/v2)); end; procedure TForm23.Button3Click(Sender: TObject); var v1,v2,v3:variant; begin v1:=1; v2:=0; v3:=v1/v2; end; procedure TForm23.Button4Click(Sender: TObject); var v1,v2:integer; begin v1:=1; v2:=0; showmessage(Floattostr(v1/v2)); end; Each 0/0 : Raise exception 'Floating point invalid operation' (EInvalidOP) Each 1/0 : Raise exception 'Floating point divide by 0' And I have : GetExceptionMask=[exInvalidOp,exDenormalized,exUnderflow] Does somebody get different result ? My problem it is that I can't reproduce the Nan result like some Delphi user's can have in the same project !!! ExceptonDivisionBy0.zip
-
Using project in attachment so there is no SetExceptionMask . But what dll can do this ?
-
Hello, Does somebody successfully build this with Delphi 11.3 : https://docwiki.embarcadero.com/CodeExamples/Alexandria/en/RTL.PhotoWall_Sample https://github.com/Embarcadero/RADStudio11Demos/tree/main/Object Pascal/Multi-Device Samples/Device Sensors and Services/App Tethering/PhotoWall Project "MobilePhotoApp.dpr" on Android with : AllowedAdapters := Bluetooth; Set by default (= in design time), because my App always freeze at start on Android. On IOS 15, using Bluetooth this app crash after splash screen too. Even with : TakePhotoManager.enabled:=false; TakePhotoAppProfile.enabled:=false; Tested on different Android version (8.1 and 10) and different smartphone. But it's work fine if AllowedAdapters := Network So the big question it is does Tethering work on BlueTooth on Android and IOS ?
-
RTL.PhotoWall Sample using BlueTooth freeze at start on Android
FabDev replied to FabDev's topic in FMX
It's work on Wifi not Bluetooth. I have tried to add "DestopWallApp" to firewall exception or disable Firewall etc.. => No change. My Android is connected to my Windows in the bluetooth list in both side... My big question is : Does somebody has managed to operate RTL.PhotoWall Sample using BlueTooth between a Windows (Microsoft Surface for example) and an Android (or IOS) ? I only successfully do it using Network... -
RTL.PhotoWall Sample using BlueTooth freeze at start on Android
FabDev replied to FabDev's topic in FMX
Hello, Nice idea thank you. To say the truth, I haven't read the code : It's a "default" sample so it's should work ? That's true in my experience call complex functions on FormShow is never a good idea on IOS and Android ! That is more there is already a refresh button which call "FindWalls". Now the problem it is on bluetooth (with my android associated to my Microsoft Surface) list of receiver stay empty. Does somebody has been able to operate App Tethering on bluetooth between an Android and a Windows application ? I have tested using network (= wifi) and it's work fine... -
Hello, I would like to show a StayOnTop form on the left of the Minimize, Maximize and Close button (Top right of tittle bar) of a TForm. To do it I need to compute width of these button, so I have tried this : var TitleInfo : TTitleBarInfo; NonClientWidth, ButtonWidth: Integer; begin NonClientWidth := Width - ClientWidth; SendMessage(Handle, WM_GETTITLEBARINFOEX, 0,NativeInt(@TitleBarInfoEx));// LPARAM(@TitleBarInfoEx)); ButtonWidth := TitleBarInfoEx.rgrect[5].Right - TitleBarInfoEx.rgrect[2].Left + 2 * NonClientWidth - 2 * BorderWidth; .... Following this : https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-titlebarinfo But TitleBarInfoEx.rgrect[5].Right return me wrong value like not initialized : So how to get it ?
-
Thank you Remy it's work fine !
-
Thank you that was a nice idea but I use DevExpress (Bar/Ribbon and Skin) which is not compatible with the native Titlebar.
-
I have exactly the same problem since I have migrated from 10.3.3 (no problem) to 11.2. Full VCL without any FMX framework (IOS,Android MacOS etc.) Each time I add a new component library I have an access violation. I leave the IDE and restart it add my library and it's ok. But at the next library added => Access violation. First I think it was because of a TMS library. But it was not. It's easy to reproduce : Manually install Devexpress, TMS, IBDAC, FastReport library => Sure it's happen ! I think that it's a Delphi 11.2 functionality ? 😉
-
Hello, At this time does somebody know a library to handle 7zip compression (LZMA) without DLL ? I have tried it : https://github.com/ccy/delphi-zip But file LzmaDec.pas et LzmaEnc.pas are missing. LZMA is in the list : https://docwiki.embarcadero.com/Libraries/Sydney/en/System.Zip.TZipCompression But it's not seems to be handled. Better a cross-plateform library.
-
Thank you it's work, but after some fails : I understand that it's work for zip with LZMA compression but not for 7z with LZMA compression. Someone know a native Delphi library for 7z ? Because it's really better compression than zip !
-
Hello, Anyone success to compile TzipMaster with Delphi 11 because it give : [dcc32 Error] ZMZipEOC.pas(500): E2010 Incompatible types: 'PEOCrecs' and 'Pointer' Same issue than : https://github.com/edwinyzh/ZipMaster/issues/1
-
Do you try to compile it with trace software like the very good MadExcept ?