Category: Firemonkey

Delphi 10.4.2 and 11.0 both give SysInit.o: error adding symbols for Android Application Store

  

Tried in both Delphi 10.4.2 and 11.0 (patched fully for both versions)
Note: using Android SDK 30.0.3 as that is the minimum required to submit to Android Play Store. NDK version 21.
I can compile in Development mode, but get strange errors once I switch to Application Store (with or without signed keystore)
Even using a basic project such as HeaderFooter template, I get this error:
[DCC Error] E2597 c:\program files (x86)\embarcadero\studio\22.0\lib\Android\Release\SysInit.o: error adding symbols: File in wrong format
[DCC Fatal Error] F2588 Linker error code: 1 ($00000001)
I have googled every possible page that has this error.
Only found this link: https://en.delphipraxis.net/topic/3415-build-project/ where it was encountered by someone else.
Even the most basic project is not possible to do a Build All. Sometimes the Project-Compile works but Build All never works, and then I can generate an .aab file occasionally.
However, when it comes a to bigger project, I get the above error all the time. Note that this bigger app has been compiled successfully to run in Developer mode in an actual Android phone and is running very well.
note: I used a keystore generated in Delphi. Even if not using a keystore file in Delphi, I encounter the same issue of "SysInit.o: error adding symbols for Android Application Store".
Please advise how to resolve this error as it happens on both Delphi 10.4.2 and 11.0 (both patched fully).

Read More

Firemonkey Listview & mobile screen orientation in Delphi 11

  

I am fairly new to the Firemonkey framework after working with VCL for many years so hopefully this question is not too simple.
I am listing Dynamic Listview Items which I update from a database. I have created the position/layout of the text within the Listview Item using design mode . My question is when I change screen orientation from portrait to landscape do I have to manually change the ‘X’ position of the text items located within my listview and their width so that the full landscape width of the screen is utilized? There appears to be no anchors for dynamically created Listview items. (The text items just have their generic names for the time being.)
I have a pic below of what I am trying to describe. First pic shows deign mode in portrait and second in landscape.
Any suggestions greatly appreciated.
Portrait mode
Landscape mode

Read More

App is not getting started after migrating from Delphi 10.3.1 to Delphi 11

  

I have developed android application using Delphi 10.3.1 and after migrating to Delphi 11, the Android application is not getting started. Android app is getting crashed. I tried to run in Debug mode and getting the error – Thread process stopped.
Please help me to identify and fix the issue.

Read More

The Impact of Log4j on Software Development with Delphi and C++Builder

  

Unless you live on a remote island with no Internet connection, you’ve certainly heard about the Log4j issues that affected so many applications and internet services over the last 10 days. The coincidental discovery of this critical bug in the context of Minecraft console messages (typing a message on the Minecraft game client could let someone execute code on a Minecraft server) due to the use of an extremely popular Java logging library called Log4j, caused every single IT company and every company using software applications to check if the issue was affecting the company’s software, hosted services, internal web sites, and any other use case scenario.
The list of affected software applications (there is one here, for example) is fairly impressive, because despite having lost some of the hype and marketing push, Java is and remains one of the world’s most popular languages, and the JVM one of the most popular runtime execution environments.

RAD Studio Native Code and No Java Dependency

Now, what does this mean for Embarcadero in general and RAD Studio in particular? Directly, not much. Software built in Delphi or C++Builder doesn’t use or rely in any way on Java (with the exception of Android applications) and therefore doesn’t use Log4j. More in general, Delphi and C++Builder create natively compiled applications, which are less subject to execution environment problems (here I’m referring to Java, .NET or JavaScript execution environments). However in this case the issue was not in the execution environment, but in a popular library, and RAD Studio developers use add-on components and third party libraries, like any other developer community does.
Let me clarify once more: A web server or web service built in Delphi or C++Builder (or C++ in general) is not affected by the Log4j issue. The same is true, of course, for web applications built in ASP.NET, Python, or PHP. The issue is specific to software written in Java – and there is a lot of Java software out there, as linked above.
Getting back to Delphi and C++Builder, having compiled code helps with security, but it is not sufficient. It is also important to only choose libraries and components you can fully trust (at a minimum, requiring the source code to be included). Moreover, it is also important for a developer to write code with a specific focus on security. As was mentioned last week, copy-and-paste coding (while not directly responsible for the Log4j issue) is a coding style on the flip side of writing secure applications.

Contributing Back to Open Source

There is also another key issue that the Log4j problems made obvious: there are multi-million dollar projects managed by large corporations that rely on open source projects with no funding, managed by developers in their spare time (outside their regular jobs). The idea that you can use open-source to save costs without contributing back any time, resources, or money to the projects you leverage is becoming a huge problem in the industry.
This is also true of the Delphi and C++Builder ecosystem: Embarcadero has started funding and donating to a few open source libraries, but we should do more. We also encourage all business applications that significantly leverage open-source Delphi libraries and tools to contribute back to them – including through security assessments!
How many open-source projects do you use for your professional applications and when is the last time you donated to any of them?

Security is Multi-Faceted

Security is a continuum requiring multiple angles and each of the items below can help:

Natively compiled applications

No dependency on a runtime execution environment

Use of vetted and trusted third party libraries and components

Committing to contribute back to open-source projects you leverage 

Security focus when writing code (no copy-and-paste coding)

Tooling to verify an application source code

Secure storage of source code (to avoid source code injection)

Secure build environment (to avoid binary code injection)

Application executable signing

While not comprehensive, and one with a bias towards compiled code (we really think it matters), we hope this list and the overall reaction to the Log4j incident can help you and your organization rethink security and add more value to the role of developers – who are the cornerstone of any secure development scenario.
Happy coding with your Log4j-free RAD Studio 😉

Read More

Delphi 10.1 FMX How to copy a RoundRect Bitmap and TPath onto a TImage

  

I’m using Delphi 10.1 and have a Multi Device application.
I’m loading a image onto a TRoundRect control where the user can draw directly onto it.
My question is how do I copy the RoundRect Image and whats been drawn on it to a TImage?
This is the form:-
object frmMain: TfrmMain
Left = 0
Top = 0
Caption = ‘Form1’
ClientHeight = 528
ClientWidth = 759
FormFactor.Width = 320
FormFactor.Height = 480
FormFactor.Devices = [Desktop]
DesignerMasterStyle = 0
object tbPhoto: TToolBar
Align = Bottom
Position.Y = 432.000000000000000000
Size.Width = 759.000000000000000000
Size.Height = 48.000000000000000000
Size.PlatformDefault = False
TabOrder = 1
object btnReset: TButton
Align = Left
Margins.Left = 5.000000000000000000
Margins.Top = 5.000000000000000000
Margins.Right = 5.000000000000000000
Margins.Bottom = 5.000000000000000000
Position.X = 5.000000000000000000
Position.Y = 5.000000000000000000
Size.Width = 82.000000000000000000
Size.Height = 38.000000000000000000
Size.PlatformDefault = False
TabOrder = 0
Text = ‘Reset’
OnClick = btnResetClick
end
object btnCopy_File_Image_To_RoundRect: TButton
Align = Left
Margins.Left = 5.000000000000000000
Margins.Top = 5.000000000000000000
Margins.Right = 5.000000000000000000
Margins.Bottom = 5.000000000000000000
Position.X = 97.000000000000000000
Position.Y = 5.000000000000000000
Size.Width = 176.000000000000000000
Size.Height = 38.000000000000000000
Size.PlatformDefault = False
TabOrder = 2
Text = ‘Copy File Image To RoundRect ‘
OnClick = btnCopy_File_Image_To_RoundRectClick
end
object btnCopy_Round_Rect_To_Image: TButton
Align = Left
Margins.Left = 5.000000000000000000
Margins.Top = 5.000000000000000000
Margins.Right = 5.000000000000000000
Margins.Bottom = 5.000000000000000000
Position.X = 283.000000000000000000
Position.Y = 5.000000000000000000
Size.Width = 190.000000000000000000
Size.Height = 38.000000000000000000
Size.PlatformDefault = False
TabOrder = 1
Text = ‘Copy RoundRect to Image’
OnClick = btnCopy_Round_Rect_To_ImageClick
end
end
object ToolBar2: TToolBar
Size.Width = 759.000000000000000000
Size.Height = 41.000000000000000000
Size.PlatformDefault = False
TabOrder = 4
object Label1: TLabel
Align = Client
Size.Width = 759.000000000000000000
Size.Height = 41.000000000000000000
Size.PlatformDefault = False
TextSettings.HorzAlign = Center
Text = ‘Image Photo Draw’
end
end
object RoundRect1: TRoundRect
Align = Left
Corners = []
Fill.Kind = None
Margins.Left = 5.000000000000000000
Margins.Top = 5.000000000000000000
Margins.Right = 5.000000000000000000
Margins.Bottom = 5.000000000000000000
Position.X = 5.000000000000000000
Position.Y = 46.000000000000000000
Size.Width = 372.000000000000000000
Size.Height = 381.000000000000000000
Size.PlatformDefault = False
Stroke.Thickness = 2.000000000000000000
Stroke.Dash = Dash
OnMouseDown = RoundRect1MouseDown
OnMouseMove = RoundRect1MouseMove
object Path1: TPath
Align = Client
Fill.Kind = None
Locked = True
HitTest = False
Size.Width = 372.000000000000000000
Size.Height = 381.000000000000000000
Size.PlatformDefault = False
Stroke.Color = claRed
Stroke.Thickness = 2.000000000000000000
WrapMode = Original
end
end
object tbImage: TToolBar
Align = Bottom
Position.Y = 480.000000000000000000
Size.Width = 759.000000000000000000
Size.Height = 48.000000000000000000
Size.PlatformDefault = False
TabOrder = 0
object btnDraw_Colour: TButton
Align = Right
Margins.Left = 5.000000000000000000
Margins.Top = 5.000000000000000000
Margins.Right = 5.000000000000000000
Margins.Bottom = 5.000000000000000000
Position.X = 580.000000000000000000
Position.Y = 5.000000000000000000
Size.Width = 82.000000000000000000
Size.Height = 38.000000000000000000
Size.PlatformDefault = False
TabOrder = 1
Text = ‘Black’
OnClick = btnDraw_ColourClick
end
object btnClear_Drawing: TButton
Tag = 1
Align = Right
Margins.Left = 5.000000000000000000
Margins.Top = 5.000000000000000000
Margins.Right = 5.000000000000000000
Margins.Bottom = 5.000000000000000000
Position.X = 672.000000000000000000
Position.Y = 5.000000000000000000
Size.Width = 82.000000000000000000
Size.Height = 38.000000000000000000
Size.PlatformDefault = False
TabOrder = 0
Text = ‘Clear’
OnClick = btnClear_DrawingClick
end
end
object Image1: TImage
MultiResBitmap = <
item
end>
Align = Client
Size.Width = 377.000000000000000000
Size.Height = 391.000000000000000000
Size.PlatformDefault = False
WrapMode = Stretch
end
end

This is the code I have so far:-
unit uMain;

interface

uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects,
FMX.StdCtrls, FMX.Controls.Presentation, FMX.MediaLibrary.Actions,
System.Actions, FMX.ActnList, FMX.StdActns;

const
Con_Draw_Colour_Red = 0;
Con_Draw_Colour_Black = 1;

Con_Max_Draw_Colours = Con_Draw_Colour_Black;

Con_Draw_Colours: array[0..Con_Max_Draw_Colours] of String = (‘Red’, ‘Black’);

type
TfrmMain = class(TForm)
tbPhoto: TToolBar;
ToolBar2: TToolBar;
Label1: TLabel;
btnReset: TButton;
RoundRect1: TRoundRect;
Path1: TPath;
tbImage: TToolBar;
btnDraw_Colour: TButton;
btnClear_Drawing: TButton;
Image1: TImage;
btnCopy_File_Image_To_RoundRect: TButton;
btnCopy_Round_Rect_To_Image: TButton;
procedure btnResetClick(Sender: TObject);
procedure RoundRect1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Single);
procedure RoundRect1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Single);
procedure btnDraw_ColourClick(Sender: TObject);
procedure btnClear_DrawingClick(Sender: TObject);
procedure btnCopy_File_Image_To_RoundRectClick(Sender: TObject);
procedure btnCopy_Round_Rect_To_ImageClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmMain: TfrmMain;

implementation

uses
FMX.Platform,
FMX.MediaLibrary;

{$R *.fmx}

procedure TfrmMain.btnClear_DrawingClick(Sender: TObject);
begin
{$REGION ‘Clear the Drawing’}
Path1.Data.Clear;
{$ENDREGION ‘Clear the Drawing’}
end;

procedure TfrmMain.btnDraw_ColourClick(Sender: TObject);
begin
{$REGION ‘Change the Path Stroke Colour’}
btnDraw_Colour.Text := Con_Draw_Colours[(Sender as TButton).Tag];
case (Sender as TButton).Tag of
Con_Draw_Colour_Red : begin
(Sender as TButton).Tag := Con_Draw_Colour_Black;
Path1.Stroke.Color := TAlphaColorRec.Black;
end;
Con_Draw_Colour_Black : begin
(Sender as TButton).Tag := Con_Draw_Colour_Red;
Path1.Stroke.Color := TAlphaColorRec.Red;
end;
end;
{$ENDREGION ‘Change the Path Stroke Colour’}
end;

procedure TfrmMain.btnResetClick(Sender: TObject);
begin
{$REGION ‘Clear the Photo and Drawing’}
Image1.Bitmap := nil;
RoundRect1.Fill.Bitmap.Bitmap := nil;
btnClear_DrawingClick(Sender);
{$ENDREGION ‘Clear the Photo and Drawing’}
end;

procedure TfrmMain.btnCopy_File_Image_To_RoundRectClick(Sender: TObject);
begin
RoundRect1.Fill.Kind := TbrushKind.Bitmap;
RoundRect1.Fill.Bitmap.WrapMode := TWrapMode.TileStretch;
RoundRect1.Fill.Bitmap.Bitmap.LoadFromFile(‘…\The Image.jpg’);
end;

procedure TfrmMain.btnCopy_Round_Rect_To_ImageClick(Sender: TObject);
begin
{$REGION ‘Draw the users lines on the Image’}
{$REGION ‘Set the Bitmap Stroke Colour’}
case btnDraw_Colour.Tag of
Con_Draw_Colour_Red : RoundRect1.Fill.Bitmap.Bitmap.Canvas.Stroke.Color := TAlphaColorRec.Red;
Con_Draw_Colour_Black : RoundRect1.Fill.Bitmap.Bitmap.Canvas.Stroke.Color := TAlphaColorRec.Black;
end;
{$ENDREGION ‘Set the Bitmap Stroke Colour’}

RoundRect1.Fill.Bitmap.Bitmap.Canvas.BeginScene;
RoundRect1.Fill.Bitmap.Bitmap.Canvas.DrawPath(Path1.Data, 2);
RoundRect1.Fill.Bitmap.Bitmap.Canvas.EndScene;
{$ENDREGION ‘Draw the users lines on the Image’}

Image1.Bitmap.Assign(RoundRect1.Fill.Bitmap.Bitmap);
end;

procedure TfrmMain.RoundRect1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin
if ssLeft in Shift then
Path1.Data.MoveTo((TPointF.Create(X, Y)));
end;

procedure TfrmMain.RoundRect1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Single);
begin
{$REGION ‘Draw the line only if we have a Image’}
if (not RoundRect1.Fill.Bitmap.Bitmap.IsEmpty) then
begin
if ssLeft in Shift then
begin
Path1.Data.LineTo((TPointF.Create(X, Y)));
RoundRect1.Repaint;
end;
end;
{$ENDREGION ‘Draw the line only if we have a Image’}
end;

end.

This is where I would like to copy the RoundRect and whats been drawn on it, to a TImage. The loaded image copies but not whats been drawn:-
procedure TfrmMain.btnCopy_Round_Rect_To_ImageClick(Sender: TObject);
begin
{$REGION ‘Draw the users lines on the Image’}
{$REGION ‘Set the Bitmap Stroke Colour’}
case btnDraw_Colour.Tag of
Con_Draw_Colour_Red : RoundRect1.Fill.Bitmap.Bitmap.Canvas.Stroke.Color := TAlphaColorRec.Red;
Con_Draw_Colour_Black : RoundRect1.Fill.Bitmap.Bitmap.Canvas.Stroke.Color := TAlphaColorRec.Black;
end;
{$ENDREGION ‘Set the Bitmap Stroke Colour’}

RoundRect1.Fill.Bitmap.Bitmap.Canvas.BeginScene;
RoundRect1.Fill.Bitmap.Bitmap.Canvas.DrawPath(Path1.Data, 2);
RoundRect1.Fill.Bitmap.Bitmap.Canvas.EndScene;
{$ENDREGION ‘Draw the users lines on the Image’}

Image1.Bitmap.Assign(RoundRect1.Fill.Bitmap.Bitmap);
end;

The TImage WrapMode is set to Stretch so whats been drawn needs to be proportional.
Any ideas how to copy the RoundRect Bitmap and whats been drawn?
Hope that makes sense.
tia

Read More

Problem with deploying delphiapp to macbook [duplicate]

  

I can’t deploy an app to my macbook with delphi.
I have all the certificates and the right paserver but still, I get this error at the end of the process.
[PAClient Error] Error: E0264 Unable to execute ‘"/usr/bin/codesign" –deep -s "iPhone Developer: username (KGMWESP56)" -f "/Users/username /PAServer/scratch-dir/username -paserver/mobile.app"’ (Error 1)
[PAClient Error] Error: E0264 Warning: unable to build chain to self-signed root for signer "iPhone Developer: username (KGMWESP56)"
[PAClient Error] Error: E0264 /Users/username /PAServer/scratch-dir/username -paserver/mobile.app: errSecInternalComponent

I’ve tried to delete the certificates and made new ones but with no result.
How can I solve this?
The answers that are given by the other questions don’t work for me.
I’ve tried to install the new AWDRCA certificate of 2030
I’ve given that certificate full access.
put the certificates in login and system didn’t work too
delphi version is 10,4
xcode version is 13.0
macos version is 12.0.1

Read More

inverted android video proportions

I was trying to play a vídeo recorded on the android in the 9:16 vertical position in the component ALVideoPlayerSurface1 (Alcinoe) delphi fmx android, and it played back the height and width inverted, when delving into the problem I noticed that the android saves the file with the inverted proportions, leading to the media player also play in reverse, has anyone experienced this?

Read More

Read More

Is Bill.com Holdings Inc (BILL) a Leader in Software

  


Bill.com Holdings Inc (BILL) is at the top of the software industry – applications according to Investors Observer. BILL received an overall rating of 59, which means it scores over 59% of all stocks. Bill.com Holdings Inc also had a score of 94 in Software – Applications, placing it above 94% of Software – Applications stocks. Software – The app is ranked 128th out of 148 industries.

BILL has an overall score of 59. Find out what that means to you and get the rest of the leaderboard on BILL!

What do these notes mean?
Analyzing inventory can be difficult. There are tons of numbers and ratios out there, and it can be hard to remember what they all mean and what counts as “good” for a given value. Investors Observer ranks stocks according to eight different measures. We rank most of our scores in percentiles to make it easier for investors to understand. A score of 59 means the stock is more attractive than 59% of the stock. These rankings allow you to easily compare stocks and see what are the strengths and weaknesses of a particular business. This allows you to find stocks with the best prospects for short and long term growth in seconds. The combined score incorporates technical and fundamental analysis to give a comprehensive overview of a stock’s performance. Investors who then want to focus on rankings or analysts’ ratings can see separate scores for each section.
What is happening with the shares of Bill.com Holdings Inc today?
Bill.com Holdings Inc (BILL) stock is trading at $ 244.06 at 10:52 a.m. on Monday, December 20, down $ -0.59 or -0.24% from the previous closing price of $ 244.65. The stock has traded between $ 229.85 and $ 245.39 so far today. The volume is now below average. So far, 436,943 shares have been traded for an average volume of 2,028,983 shares. Click here for the full report on the shares of Bill.com Holdings Inc.
Source link

Read More

FNC wishes the VCL Delphi community a merry Christmas!



Intro

FNC was born in 2016 and with it, a lot of great opportunities and ideas. We started with TMS FNC Chart, followed by TMS FNC UI Pack only 4 months later! The typical components such as a grid, treeview, planner and many more are included as you would expect in a UI component set. In April 2020, with TMS FNC Maps, we introduced a brand new way to add and work with mapping/routing services in your application. Today we have a wide variety of visual and non-visual components and libraries to enhance your application. The latest addition to the FNC family, named TMS FNC WX Pack, provides access to a whole new world of JavaScript/HTML based libraries and components to Delphi. All of this would not be possible without a solid foundation, a component structure that is reliable as well as extensible.

Solid Structure

The architecture needed to be solid, robust as well as extensible. Our initial idea was to create a base component for each product separately, but not long after, we abandoned the idea and immediately thought out of the box and created TMS FNC Core. TMS FNC Core was the foundation we created starting with a custom control class and some utility functions. Over the years TMS FNC Core grew into a versatile base foundation for creating cross-platform and cross-framework custom controls. This includes VCL, FMX, LCL and WEB frameworks. Today we focus on a showcasing TMS FNC Core for VCL. 

Working on FNC components and the TMS FNC Core foundation on a daily basis and looking back at beginning made us realize that TMS FNC Core is much more than just a foundation. It’s actually capable of doing powerful things with little to no code. The following example demonstrates what TMS FNC Core alone is capable of. No need to install additional components, just download, install TMS FNC Core, plugin the code and experience the true power of FNC.

Merry Christmas

Out of all the features TMS FNC Core has to offer, we picked a couple of important ones: PDF export, SVG and asynchronous file download support. The code snippet below shows how to download an SVG, export it to PDF. Not more than 25 lines of code went into this sample, with a very nice and warm result, especially during this time of the year!

uses
  VCL.TMSFNCCloudBase, VCL.TMSFNCTypes,
  VCL.TMSFNCPDFLib, VCL.TMSFNCGraphicsTypes;

procedure TChristmasForm.GenerateChristmasWishes;
begin
  TTMSFNCCloudBase.DownloadFileFromURL('https://tmssoftware.com/site/img/merry%20christmas.svg',
  procedure(const ARequestResult: TTMSFNCCloudBaseRequestResult)
  var
    b: TTMSFNCBitmap;
    p: TTMSFNCPDFLib;
  begin
    p := TTMSFNCPDFLib.Create;
    b := TTMSFNCBitmap.CreateFromStream(ARequestResult.ResultStream);
    try
      p.HeaderSize := 100;
      p.HeaderFont.Size := 24;
      p.HeaderFont.Style := [TFontStyle.fsBold];
      p.HeaderFont.Name := 'Lucida Handwriting';
      p.HeaderFont.Color := MakeGraphicsColor(156, 41, 41);
      p.Header := 'tmssoftware.com wishes you a';
      p.Footer := '';
      p.BeginDocument('Christmas.pdf');
      p.NewPage;
      p.Graphics.DrawImage(b, p.MediaBox);
      p.EndDocument(True);
    finally
      b.Free;
      p.Free;
    end;
  end);
end;

Download TMS FNC Core today, explore the capabilities!. Found something yourself that’s worth sharing? Please let us know, we are excited to find out what you have created, in which way you are using FNC. TMS and FNC wishes you all the best and a merry Christmas!

Read More

Read More

The Custom Software Development Services Market Expected To See Healthy Growth And Innovative Technology From 2022-2028

  

Global “Custom Software Development Services Market ‘ Size, trends, growth, competitive landscape, and key regional analysis to 2028 ‘offers general information and understanding about the Custom Software Development Services market. The research study on the Custom Software Development Services market provides significant information such as historical data and major development trends for the companies operating in this industry vertical. The report contains revenue forecasts at global, regional and country levels. It also declares comprehensive coverage of major industry drivers, restraints, and their impact on market growth during the forecast period.
For a good perspective and competitive insight, get a sample report on: https://www.stratagemmarketinsights.com/sample/74715
SWOT Analysis on Global Custom Software Development Services Market Players:
In addition, analyzing the Custom Software Development Services market share of players, in-depth profiling, product / service and business overview, the study also focuses on revenue analysis, as well as on SWOT analysis to better correlate market competitiveness.
Accenture, Chetu, Mutual Mobile, Epixel, EdgeRock Technology Partners, Learnetic, Deqode, Radixweb, Lincoln Loop, Bluewolf, Torry Harris Business Solutions, iOLAP, Shuup, Cooperative Computing, Swiftify, Axmor
Description of Custom Software Development Services Market:
The Custom Software Development Services market report provides a basic overview of the industry including definitions, classifications, applications, and industry chain structure. The Custom Software Development Services market analysis is provided for the international markets including development trends, competitive landscape analysis, and key regions development status. It covers information on profit models, competition spectrum, and associated vendor strategies illustrated by major market players and players. The report includes in-depth analysis and comprehensive analysis of future trends as well as market developments.
On the basis of the product, the market has been categorized into:
Cloud-based, web-based
Based on Application, the market has been categorized into:
Large companies, SMEs
Advance Insights into Custom Software Development Services Market:

The report highlights the new trends in the industry as well as the growth potential of various trends.
The report also highlights factors, disincentives as well as opportunities which are having massive growth implications in the global Custom Software Development Services market.
Technology aids and milestones that replicate the growth prognosis in the custom software development services market.
In-depth analysis of market statistics, historical and current growth conditions have also been addressed in the report to enable futuristic growth forecasts.
A clear analytical review of the competitive landscape, along with highlights on the core capabilities and growth goals of the profiled players, have all been discussed in the report.

REMARK: Our report highlights the main issues and dangers that businesses could face as a result of the unprecedented COVID-19 outbreak.
To get this report at a favorable rate: https://www.stratagemmarketinsights.com/discount/74715
The following is a comprehensive overview of the geographic analysis of the market: North America (United States, Canada and Mexico), Europe (Germany, France, United Kingdom, Russia, Italy and Rest of Europe), Asia -Pacific (China, Japan, Korea, India, Southeast Asia and Australia), South America (Brazil, Argentina, Colombia and rest of South America), Middle East and Africa (Saudi Arabia, Arab Emirates United, Egypt, South Africa and the rest of the Middle East and Africa)
Critical questions addressed in the report:
1. What are the major trends in the global custom software development services market?2. How has the market (and its various sub-segments) developed over the past five years?3. What would be the engine and rate of growth over the next five years?4. What is the impact of COVID-19 on the Custom Software Development Services market?5. What are the key strategies adopted by major vendors to drive the Custom Software Development Services market?6. What is the market share of the main players?
Book the Latest Edition of the Global Custom Software Development Services Market Research @ https://www.stratagemmarketinsights.com/cart/74715
What we do :
Stratagem Market Insights is a management consulting organization providing market intelligence and consulting services around the world. We offer a range of services, including syndicated research, consultancy and consultancy, research process outsourcing and content management. We strive to offer a smart solution, expert consultation and tailor-made / personalized solutions.
Contact us:
Mr. ShahOverview of the Stratagems MarketTel: US +1 415 871 0703 / JAPAN + 81-50-5539-1737Email: sales@stratagemmarketinsights.com
SB

Source link

Read More

Delphi FMX Listview bug in 10.4.2

  

Firemonkey in 10.4.2 (3 patches applied)
If drop a TListview with ItemAppearance=DynamicAppearance on a form, I can free it. However, if I drop this TListview on another control, eg, TRectangle, and free it, it gave "Item cannot be found" error. Visually, if you try to cut and paste the TListview (when it belongs to another control other than a Form, it also gave the same error.
This is surely a bug as Delphi 11 does not have this issue. Does anyone know how to resolve it, as I need to stick to 10.4.2 for the time being.
object ListView1: TListView
ItemAppearanceClassName = ‘TDynamicAppearance’
ItemEditAppearanceClassName = ‘TDynamicAppearance’
HeaderAppearanceClassName = ‘TListHeaderObjects’
FooterAppearanceClassName = ‘TListHeaderObjects’
Position.X = -16.000000000000000000
Position.Y = 64.000000000000000000
Size.Width = 321.000000000000000000
Size.Height = 273.000000000000000000
Size.PlatformDefault = False
TabOrder = 3
ItemAppearanceObjects.ItemObjects.ObjectsCollection = <
item
AppearanceObjectName = ‘Text1’
AppearanceClassName = ‘TTextObjectAppearance’
end>
ItemAppearanceObjects.ItemEditObjects.ObjectsCollection = <
item
AppearanceObjectName = ‘Text1’
AppearanceClassName = ‘TTextObjectAppearance’
end>
end

Read More

TMS Analytics joins TMS Academic family



From today, the academic edition of TMS Analytics for the Delphi Community Edition is available free. 
Perhaps this is our product that suits and targets students & teachers best and finally it is available now as a free edition for students & teachers.

TMS Analytics helps students by providing a library to easily evaluate mathematical expressions, calculate symbolic derivatives & integration, solving non linear equations, approximation function calculation and more…
This library is fully cross-platform, so it can be used in VCL Windows applications as well as FireMonkey applications for Windows, macOS, Linux, Android & iOS.
We encourage and hope that students will discover & learn to appreciate Delphi even more when having TMS Analytics in their arsenal of tools. 
Note also that with the recent latest release v3.2, we facilitated easy rendering of mathematical functions on TMS FNC Chart with virtually no code. The packages & full source code for this bridge to TMS FNC Chart is included also in the academic version of TMS Analytics.
While you are visiting our academic offerings, check also following products available free for students & teachers:
TMS VCL UI Pack: extensive UI controls library for VCL Windows applications
TMS WEB Core: Object Pascal RAD component based web client development 
TMS FNC UI Pack: extensive UI controls library for both VCL Windows applications & FireMonkey cross-platform applications
TMS Aurelius: ORM framework for Delphi with full support for data manipulation, complex and advanced queries, inheritance, polymorphism, and more
TMS Flexcel for VCL/FMX: Powerful, extensive & flexible component suite for native Excel report & file generation & manipulation 
Also in the coming year 2022, we want to extend our academic offerings! Let us know what products you look forward to the most to join the TMS Academic family. Our team is listening!

Read More

Read More

Leverage blockchain to deliver software development services

  

Blockchain Simplified: Leveraging Blockchain to Provide Software Development Services

by Analytics Insight
December 17, 2021

Blockchain Simplified is one of the leading blockchain development companies in Pune, India providing blockchain, web and mobile application development services. We are a one stop shop for all technology development needs. The clientele includes several start-ups, SMEs and multinationals, few of which are listed on the NASDAQ and the NSE.
Regarding Blockchain, we have experience on Bitcoin, Ethereum, EOS, Hyperledger Fabric, Polygon, BSC and many others; Development of mobile applications such as React Native, Flutter, Android Native and iOS Native; UI / UX design which includes strategy, planning, UI / UX design, wireframing, visual designs; Development of web applications such as Node.JS, Angular, React.JS, PHP, as well as backend development involving MongoDB, MySQL, AWS and Firebase.

An exceptional journey since the creation
The founding of the company has a history linked to one of the major challenges facing startup and SME owners, which the co-founders also faced first-hand. After working in various software service companies, the entrepreneurial side of the leadership team took various ideas by storm. That’s when the team got together and developed a prototype. With the MVP in place, the team looked for software companies that would help further development. The company contacted various companies, but high quotes and lack of assurance on deliverables prompted them to turn to freelancers. However, the lack of collaboration, poor quality and lack of ownership all resulted in a bad experience once again. Walking both ways, the team felt the need to form a company that offers reliable software development services at competitive rates to start-ups and SMEs. Since then, we have worked with various start-ups in different industries.

Managers with professional experience
A graduate of the Indian Institute of Technology Bombay (IIT-B), Arpit Agrawal is the co-founder and director of Blockchain Simplified with over 13 years of experience in core systems as well as application software development. . He started his career at Marvell Semiconductor as an engineer and researcher in the R&D department of wireless communications. He has worked on various chips that have entered core Apple, Sony, Samsung, HP, BlackBerry, and BMW branded products. He went to the University of Maryland College Park to pursue his doctorate. His entrepreneurial aspirations led him to abandon his doctorate. and develop its software services companies. Since then, he has helped and guided several start-ups as well as multinational companies in product development.
Sandhya Agrawal is an alumnus of Birla Institute of Technology & Science (BITS) Pilani as well as co-founder and director of Blockchain Simplified. She has over ten years of experience in the development and management of application software. She started her career at Infosys Technologies, known as the leading software company in India. She leads the web application development team in the company. The satisfaction of his clients, including those on the NASDAQ list, is proof of his exceptional skills in software project management.
Sajan R. Agrawal is the co-founder and director of this company with over eight years of experience in the IT industry from the technology and business side. Sajan has worked with companies like the country’s first level 5 CMMI company known as Zensar Technologies Limited and ICS Mumbai. For his outstanding analytical and strategic thinking process, Sajan has been a key advisor to CEOs and senior management at these companies delivering out-of-the-box solutions and delivering results. The company is reaping the benefits of its unique blend of technology, business development, marketing and strategy experience. He is also an alumnus of MIT Pune with specialized skills in strategic planning, GTM, operations and many more.
Utkarsh Phirke has over ten years of experience in the development and management of application software. During the early years of his career, Utkarsh worked with India’s leading software company, Infosys. During his three-year long journey at Infosys, he worked for Apple on their products which are used by Apple associates, including operators around the world. Utkarsh leads a mobile app development team that primarily focuses on iPhone and Android apps.

Contribute to shared missions
The team benefits clients by being the engine of development that they are, making clients’ lives easier, simpler and smoother by taking care of development for them while focusing on other aspects of the business. ‘main activity. When it comes to contributing to the country’s blockchain industry, the company builds its strength by training, preparing and creating a reliable talent pool specializing in blockchain technologies.

Partnership to stimulate innovation
Blockchain Simplified works as a reliable development partner of various ingenious American and European startups. The founders of these startups are serial entrepreneurs who have built and left multi-million dollar companies in the past and are eager to build their unicorns based on their innovative idea with Blockchain Simplified supporting the development.

Employee loyalty: essential for success
One of the biggest challenges any business in this space faces is talent. Good talent is hard to find and harder to retain. The co-founder considers employees to be the greatest strength and ensures that all necessary steps are taken to make them feel happy and look forward to working for the long term. A few of the engineers on the team have worked with Blockchain Simplified since its inception.

Customer satisfaction: the ultimate recognition
The management team believes that happy and smiling customers are the main rewards and recognitions of the company. Every client we sign up for is a reward for the team. It’s been part of the journey for many startups from their MVP stage until receiving millions of dollars in funding.

Moving forward with a clear vision
The co-founders feel that the industry is exploding, and as a result, the management team envision the company to grow on many levels and be a leader in software services.

Share this article
Share

About the Author
More info about the author

Analytical analysis

Analytics Insight is an influential platform dedicated to insights, trends and opinions from the world of data-driven technologies. It monitors the developments, recognition and achievements of artificial intelligence, big data and analytics companies around the world.

More by Analytics Insight

Source link

Read More

Delphi 10.4.2 FMX How to put address in String into TCivicAddress?

  

What is the way to initialize TCivicAddress and put address info into it? I even tried to set everything separately, it still encounter errors.
var cAddr: TCivicAddress;
cAddr.FeatureName := ’10’;
cAddr.Thoroughfare := ‘Xxxxx Xxxxx Xxx’;
cAddr.SubLocality := ‘Xxxxxx Xxxxx Xxx’;
cAddr.PostalCode := ‘12345’;
cAddr.Locality := ‘Xxxxxx’;
cAddr.AdminArea := ‘Xxxxxxx’;
cAddr.CountryName := ‘Xxxxxxx’;

Is it not possible to create TCivicAddress from string? I can’t seem to find documentation online.

Read More

Delphi MVVM links

  

After I did conference presentations and wrote a magazine article and in 2013 about Delphi MVVM using DSharp, I saw a 3 articles in 2018, then I went through a big rollercoaster involving rectum cancer treatment.
After recovering, I found that there is one commercially project working on an MVVM framework implementation.
So here are some links on MVVM from new to old:

A late 2021 post from Frank Lauter working on a #D.MVVM implementation (smart move to name it like DSharp): [Wayback] from old school to new frontier: My road to a useable MVVM Pattern implementation for Delphi!
The links to the 2018 grijiy posts on MVVM and github source (which has not been modified after 2018): Some interesting Delphi MVVM posts…
A 2016 book on MVVM in Delphi which is more about concepts, as the underlying MVVM framework is mediocre at best: [Archive.is] MVVM in Delphi: Architecting and Building Model View ViewModel Applications: Kouraklis, John: 9781484222133: Amazon.com: Books
A 2014 log of a webinar and comments mentioning where the current MVVM demos are: Q&A log for the “RAD-in-Action Webinar Unit Testing in Delphi featuring Nick Hodges”
The 2014 DSharp branch named Caliburn containing the MVVM framework code: [Wayback] sglienke / DSharp / feature/Caliburn — Bitbucket

It is quite mature, supports FMX and VCL, and is used in production. Regrettably, there is currently no development on it.

A spring 2014 Spring4D roadmap mentioning the mobile support for Spring4D, and a tiny bit of MVVM: [Wayback] Delphi sorcery: Spring4D roadmap
A late 2013 DSharp roadmap that unfortunately did not make it: [Wayback] Delphi sorcery: Future plans for Spring4D and DSharp
The late 2013 MVVM article in Blaise Pascal magazine: [Wayback] Issue 31/32 | Blaise Pascal Magazine
The 2013 presentation and demo code of using DSharp based MVVM: [Wayback] Conferences/2013/20131121-BE-Delphi at master · jpluimers/Conferences
A 2011 blog post on the MVVM presentation model: [Wayback] Delphi sorcery: Putting the pieces together – the DSharp presentation model

In my experience experimenting with MVVM and other three- and four-letter frameworks, I found a recurring concept is “convention over configuration”. This relies heavily on having matching names in the various layers.
There you see a big drawback in the Delphi compiler: it lacks a NameOf expression, which means a lot of literal strings ending in your code. Few of the MVVM frameworks have good logging explaining when literals mismatch.
The C# compiler also took a while (until C# version 6 in 2015) to get one, but now supports the [Wayback] nameof expression – C# reference | Microsoft Docs. Some more documentation about this:

[Wayback] Expressions – C# language specification | Microsoft Docs: nameof
[Wayback] Nameof Operator: A New Feature of C# 6.0
[Wayback] c# – What is the purpose of nameof? – Stack Overflow

Furthermore, the Delphi compiler lacks helpers on interfaces and helpers for generics (heck, I would actually want full extension methods) and generic parameters for methods on interfaces (which is different from the generic parameters on the interface declaration itself). This lack of these features often cause for convoluted syntax to workaround this. Stefan explains the first lacks more clearly in [Wayback] Delphi sorcery: Why no extension methods in Delphi?.
Requests for the nameof expression and interface helpers have been there since at least 2015:

Reminder to self – proposals for Delphi Language Enhancements, a year later
Reminder to Self: check if NameOf has been implemented yet

–jeroen

Read More