From the blog

You Need To Know The Compelling Reasons For Native Apps

Native app development has substantial benefits over framework-based “one size fits all” comprises whether it’s for native windows development or mobile devices. It is simpler, less convoluted and circuitous to create, easier to run, and the user interface is typically smoother with noticeable responsiveness. Often, developers feel there is a barrier holding them back from embracing native development. They believe that they need to have multiple versions in different programming languages so they can develop applications for differing operating system targets. But there is a solution for that! Why do I need native app development? Here is why you need to be developing native apps: User experience – from smooth scrolling to device-specific features. With Native development tools, it’s easy to get these qualities. Native Apps are more secure – Building a native application is a great way to guarantee your users reliable data protection. Performance – With native applications, you can get higher performance. Easy access to all features of the device – Native applications have direct access to hardware, for instance, GPS, camera, microphone, and way faster in execution. Be sure to continue reading to learn about how to develop cross-platform native applications! In this article, I will show you why you need to consider Delphi to build your next products Why should I use Delphi to produce my apps? In short, with Delphi you can: Have confident long-term plans Create the most secure application Have fast time to market Have visual creation through powerful WYSIWYG Have 5x Faster Productivity Have Flexibility and Functionality Build an app for 5 different operating system with only one codebase How can I benchmark help me make a good choice of programming language? There are an overwhelming number of different benchmarks which attempt to provide an objective (and sometimes skewed) comparison of programming languages. Those white papers mostly compare and analyze energy efficiency and memory efficiency. But the real measure of the language is the productivity, engineering time, and efficacy of effort for developing a real-world application with any given programming language? Embarcadero Technologies produced a benchmark which fairly measured between 3 different software development tools to create a calculator application using these technologies: Windows Presentation Foundation (WPF) – with .NET framework Electron Delphi – Embarcadero Technologies RAD Studio If you go over and download the whitepaper yourself, you can learn more about every analysis with each detail. What were the key measures and findings of the whitepaper about developer productivity? Here you can find, conclusions of Productivity – is the measure of effort and code required for developers to complete typical development tasks. Productivity can be realized in 2 distinct ways – reduced coding requirements due to native libraries and IDE tools like code-completion and visual design Business functionality – refers to a framework’s business suitability and impact on long-term plans. Excellent functionality allows companies to easily build custom tools or extensions, develop on a platform of their choosing, protect their source code from exploitation, and have confident that their applications will be maintainable for decades. Functionality – long-term feasibility like does the framework have a history of stability and backward compatibility. Testing support, accessibility, and intellectual property security by securing project source code. Flexibility – flexible frameworks allow businesses to target a broad audience, build software for any field and access all the hardware […]

Read More

5 Great Reasons To Visit LearnCplusPlus.org Today

Hello C++ and Delphi Developers, We have new posts every day on LearnCPlusPlus.org packed full of great articles for professionals and beginners alike. Lots of new modern C++ topics to speed up your C++ app (or apps!) and to make them look visually stunning with an updated, modern look in a few simple steps. In the articles we have selected today we explain how you can simply compile Delphi projects in C++ Builder, how to Make A Millisecond Timer. We have some posts about Programming Artificial Intelligence, the Softmax function, and the Hyperbolic Tangent activation function in Neural Networks. What Is The ANN Function? There is a CppCon video about to analyze includes in C++ with Cppinclude. If you are new to RAD Studio, we think these posts may help you as much as a rapid introduction to programming in C++, all the way to the most robust, modern, and latest techniques for those more experienced with the language. For those who are perhaps wanting to expand their knowledge with the most up-to-date features, routines, and methodologies this is a great little boost (pun intended) to your C++ knowledge. The new RAD Studio 11, C++ Builder 11, Delphi 11 are released with great new features and we are developing and testing new examples for you with the latest RADS 11 that means.LearnCPlusPlus.org examples are working well with the latest C++ Builder. You can see more of our C++ posts on this blog by clicking the following dynamic search link: https://blogs.embarcadero.com/?s=C%2B%2B Here are today’s selections: How can we use C++ Builder in the most modern and efficient ways? These posts are designed to be easy to understand the modern and professional ways that we use in C++. Here are the topics, What You Need To Compile Delphi Projects in C++ Builder How To Make A Millisecond Timer In C And C++ What Is The SoftMax Function in Neural Networks? What Is The Hyperbolic Tangent Activation ANN Function? This Is How To Analyze Includes in C++ With Cppinclude What kind of C++ questions are we answering? These are the questions that we answer in this collection: How to compile Delphi projects in C++ Builder projects? How I can use Delphi or Pascal files in C++ applications? How to compile pascal files with C++ Builder? What is the challenge of timing very small intervals? Why would I need to time my program’s functions? How can I use the time library to time my C++ code execution speed? How can I use the chrono Library to time and measure my C++ app functions? What is the SoftMax function in Neural Networks? How can we use the SoftMax function in ANN? Where can we use SoftMax in AI technologies? Is the SoftMax function is an activation function in ANN? What does an activation function mean in AI? What is a Hyperbolic Tangent function? How can we use Hyperbolic Tangent Function in C++? Is there a simple ANN C++ Example of the Hyperbolic Tangent function? Can I analyze Include libraries in C++? How can I analyze Includes in C++ With Cppinclude? Where can I get the Cppinclude C++ tool? Where can I learn how to use Cppinclude? Is C++ Builder able to answer all those C++ questions? C++ Builder can answer and apply all the answers to those questions above with very simple step examples. […]

Read More

We kick of 2022 with ,How it works with Holger’: base64 data

We kick of the New Year with the first of “How it works with Holger” for 2022 and this first one this year is about using base64 encoded data.With REST APIs, JSON data, web client apps, string encoded binary data in URLs… ever more prominent in software developments, the use of base64 encoded data is everywhere. So, our colleague Dr. Holger Flick explains how you can use base64 encoded data with newer versions of Delphi out of the box and how the TMS FNC Utility library in TMS FNC Core goes a step beyond to make your life easier. Enjoy this first video of the year and watch for many more to come: Your idea could be on the next “How it works with Holger”! Submit your ideas here as comments or send us an email. Our list of subjects is growing. Your suggestion could be on it soon.

Read More

Writing Your Own Components For The FastReport Dialog

When creating a report, it is important not only to make a beautiful printed form that will display the data necessary for the user, but also a convenient prepress dialog where the user can set the parameters for generating the report. In the RAD Studio ide software, on the fastReport prepress dialog, there are already a number of components, for example, Label, Edit, Button, Memo. But sometimes this is not enough and you have to write your own dialog components for FastReport. In fact, they are analogues of ordinary Delphi-components, which can be used in dialog forms FastReport. Accordingly, in this article and will talk about writing such a component. For more information, we recommend reading the official documentation FastScript documentation: https://www.fast-report.com/en/product/fast-script/documentation/ FastScript VCL documentation: https://www.fast-report.com/en/product/fast-report-vcl/documentation/ To display data from the database, this article uses the DBGridEh component from the EhLib VCL library,which will be integrated into the FastReport dialog. Delphi 10.4.2 is used as the development environment, but everything described below will be suitable for any other Delphi starting from version 7 (adjusted for the version). Create a new package (dpk) and give it the name frxDBGridEh27. We add a new file frxDBGridEhControl.pas, which will be the basis of our grid. In this file, for registration in Delphi, we will declare the component: TfrxDBGridEhDialogControl = class(TComponent); TfrxDBGridEhDialogControl = class(TComponent); We begin to describe the TfrxDBGridEh component, which we will create from the base dialog class TfrxDialogControl. Essentially, we are re-declaring the properties of the base DBGridEh component into a component for use in FastReport. You can not declare all properties, methods, event handlers, but only those that are needed for work. In the private section, I recommend paying special attention to the following: private FDBGridEh :TDBGridEh; // The base component, the properties of which we will set and methods of which we will call FDataSource :TDataSource; // Interface between grid and data source in FastReport // Variables that will store the name of the event handlers FOnGetCellParams :TfrxGetCellParamsEvent; FOnGetBtnParams :TfrxGetBtnParamsEvent; FOnTitleBtnClick :TfrxTitleClickEvent; FOnDrawColumnCell :TfrxDrawColumnCellEvent; FOnColEnter :TfrxColEnterEvent; FOnCellClick :TfrxCellClickEvent; FOnColWidthsChanged :TfrxNotifyEvent; // These system procedures are needed to save and restore grid columns to the fr3 report template. procedure ReadData(Reader: TReader); procedure WriteData(Writer: TWriter); // These three methods are needed to be able to connect a basic data source of the TfrxDBDataset (FastReport) or TDataSet (Delphi) type to the grid. function GetDataSet: TDataSet; procedure SetDataSet(const Value: TDataSet); procedure SetDataSetName(const Value: String); // This is the event handler code procedure DoGetCellParams(Sender: TObject; Column: TColumnEh; AFont: TFont; var Background: TColor; State: TGridDrawState); procedure DoTitleBtnClick(Sender: TObject; ACol: Integer; Column: TColumnEh); procedure DoGetBtnParams(Sender: TObject; Column: TColumnEh; AFont: TFont; var Background: TColor; var SortMarker: TSortMarkerEh; IsDown: Boolean); procedure DoDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); procedure DoColEnter(Sender: TObject); procedure DoCellClick(Column: TColumnEh); procedure DoColWidthsChanged(Sender: TObject); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 private   FDBGridEh      :TDBGridEh;   // The base component, the properties of which we will set and methods of which we will call   FDataSource    :TDataSource; // Interface between grid and data source in FastReport     // Variables that will store the name of the event handlers   FOnGetCellParams    :TfrxGetCellParamsEvent;   FOnGetBtnParams     :TfrxGetBtnParamsEvent;   FOnTitleBtnClick    :TfrxTitleClickEvent;   FOnDrawColumnCell   :TfrxDrawColumnCellEvent;   FOnColEnter         :TfrxColEnterEvent;   FOnCellClick        :TfrxCellClickEvent;   FOnColWidthsChanged :TfrxNotifyEvent;     // These system procedures are […]

Read More

An Introduction To JavaScript Grid Libraries

Rendering large volumes of information is a crucial requirement for many website features, for which websites often use tables for organizing the rendered data. When loading and processing a large data set on a web page, efficiency is important because it should have a minimal impact on the user experience. When you want to show information in tables, a data grid helps you show many records without significantly affecting the website’s performance. A data grid is like an HTML table that renders data in rows and columns, and today, many JavaScript Grid Libraries provide unique features for implementing and operating data grids. If you are a web developer looking forward to using a grid library for your applications, it is important to know what they are and what you should look for when choosing a grid library. A Javascript grid library is a collection of functions that enables you to easily create data grids for large data sets. Also, a grid library allows you to do various useful functions on the data, such as data fetching, scrolling, sorting, grouping, and filtering. More advanced grid libraries support advanced grid operations such as pagination, advanced searching, sorting with different conditions, and many more. JavaScript is the main language used by web applications,s and todays’ websites need to deal with a large volume of data. Therefore, implementing data grids and related functionalities from scratch will consume a lot of development time. A data grid library allows web developers to significantly accelerate development tasks and save development and testing time. Also, developing data grids from scratch while preserving the website’s performance is a challenging task. Most data grid libraries can perform data rendering and other related operations efficiently without significantly affecting the website performance. Therefore, JavaScript grid libraries have become popular for data display and manipulation in web and mobile applications. There are many JavaScript libraries on the market. Sencha offers a high-performing grid that lets developers load and manipulates a massive data set on the client-side within milliseconds. Experiments have shown that the Ext JS data grid has an outstanding scrolling speed 300x faster than other popular javaScript grids, which can fetch and display massive sets of data in less than one second. Ext Js Grid offers simple to advanced grid functionalities such as filtering, grouping, live data streaming, infinite scrolling, and many more. Using plugins, you can add extra functionalities such as column re-sizing,  row operations, and paging toolbar. There are also many open-source javascript grids available. For example, Grid.js is also a free and open-source JavaScript grid library based on TypeScript. You can easily use it with other javascript frameworks such as React, Angular, and Vue.js. Another popular JavaScript grid is the Jquery Grid. This enabled jQuery plugin uses Ajax callbacks to load data dynamically integrated with any server-side technology like PHP, ASP, JSP/Java Servlets, ColdFusion, Perl, etc. Grid Performance Many JavaScript grids fail because of slow data loading experience creates user frustration. Therefore, when choosing a grid library for your needs, it is very important to check its performance. If the grid is agh-performing, its initial data load time will be smaller. In addition, check the grid’s scrolling performance because users often need to scroll through many records. A good scrolling speed indicates that users can quickly scroll through the […]

Read More

How To Create Real-Time Applications With SignalR On Windows

History on Client-Server Apps When the original web first came into widespread public use things were reasonably basic. Webpages were effectively specialized documents, like a library. Users clicked on links to articles they found interesting. Somewhere, perhaps on another side of the world, another computer or server was the destination for that click or as we came to call it: the request. The user sends a request and, the server, the far-off computer, gives a response back to the user for every request. That response was typically formatted text, images and later, movies and music. Editing web pages was done mostly using plain text editors rather than more advanced ide software. After several years and a few iterations, Web 2.0 emerged allowing a more interactive, programmable kind of web page which behaved more like an application. The process was asynchronous and, we were able to execute commands on databases and manipulate the data they contained in that way. Like, create a user, get all users and delete a user.  With the advent of Web 3.0 and beyond, a new concept applied to the systems is a continuous connection between a client and a server. Web applications could now carry out significantly complex tasks, interact with specialized hardware like GPS sensors and other activities rivaling traditional desktop application capabilities. Along with this rose the need to implement real-time connections which transmitted data between the web browser and servers in an optimized and highly efficient way. The connection between the server and client can be used on either side to update and set the state and react accordingly. We refer to that highly interactive nature as “real-time web applications”. They’re a long way from those original electronic reference type documents of the original web. What methods are there for implementing real-time web applications? Interval polling  This method is very straightforward. We go to the server and see if we have anything we need to do in the interval. And there are 3 cases: Nothing will be returned The server has data that return to us Some sort of internal server error But no matter what, we go to the server to see if we can do anything. Problems of interval polling More connections, more overhead Mode bandwidth The server can’t keep up with the request Long polling As you can see, we were making requests every 10 seconds no matter what. Long polling is a call that we open up and remains open until the server has something for us (depending on browser timeouts). And after a timeout, we open up our request all over again. Benefits of this method: Less server overhead and resource consumption The downside is we still make and open connections regularly.  Server-Sent Events  In this method, we open a connection to the server and, that server can remain open indefinitely. And server makes use of this connection or pipe to send us messages.  The best thing about this is the server can push data to the browser without requiring multiple connections. But this is one way in which the client cannot send messages to the server. Web Sockets Web sockets are the ability of the client in the server to open a one-on-one connection, which they both can send data over.   What are the benefits of Web Sockets? Bi-directional communication […]

Read More

7 Tips for Making A Good Javascript Web Framework Even Better

Sencha Ext JS is the most comprehensive JavaScript framework for building data-intensive, cross-platform web and mobile applications for any modern device. Ext JS includes 140+ pre-integrated and tested high-performance UI components. Ext JS includes 140+ UI components, such as HTML5 calendar, grids, pivot grid, D3 adapter, trees, lists, forms, menus, toolbars, panels, windows, and much more. Hundreds of user extensions are also available from the Sencha community. Let’s take a look at 7 tips for optimizing developer productivity with Ext JS. How can I use Graph QL with Ext JS? GraphQL schema and ExtJS data model work together very well. Apollo Client provides a core library that can be included in ExtJS projects to easily manage GraphQL requests, adding powerful features such as in-memory caching. Find out more about GraphQL usage in one of the best javascript libraries. How can I build login forms with Ext JS? ExtJS provides built-in form components to quickly and easily create fully functional and validated forms. In this example, we demonstrate how to create a login/registration form within minutes with the following features. Adding textfield, numberfield, datefield Adding form validation (email, password…) Displaying form error messages Resetting values Processing form values Find out more about building Ext JS login forms. How can I debug Ext JS apps? Two of the hottest development tools available to any web developer, Visual Studio Code (VSCode) and Google Chrome, seamlessly integrate to provide the most comprehensive debugging environment known to javascript. Gone are the days of console-log mazes – now is the time for stack traces and breakpoints in your javascript development environment. Read on to learn how to efficiently step through your Ext JS application, watch variables, check function scope, and resolve issues faster. Find out more about debugging Ext JS javascript web applications. Are there benchmarks of the Ext JS framework? The overall volume of generated data has grown exponentially over the past couple of decades. As a result, modern JavaScript data grid components that manage the display and analysis of these massive data volumes have evolved. Today, there are many data grid offerings in the market that tout enhanced capabilities to display and manage analysis. But how many of them can withstand the true test of performance as it relates to “Big Data”? Find out more about Ext JS performance benchmarks. How can I use the MVVM pattern with Ext JS? Beyond what the original MVC offers, the Ext JS MVVM pattern allows for further management of the View solely into its own MVC pattern — referred to as the View Package. This consists of: 1) The Model, dealing with the interface of the app’s retrieval and data definition 2) The View addressing strictly presentational concerns such as layout and component configuration 3) The View Model managing the presenting and updating of the data for the View Find out more about js frameworks MVVM patterns with Ext JS. What is the easiest way to build accordions and steppers with Ext JS? Sencha Ext JS allows you to accelerate web application development with an enterprise-ready framework, components and tools built to work together seamlessly. You can build Ext JS applications using drag-and-drop features and spend less time on manual coding. The IDE and Code Editor Plugins integrate Sencha frameworks into your enterprise workflow, enabling code completion, inspection, generation, navigation, refactoring and more. Find […]

Read More

Everything You Need To Use REST In Your Apps Now

What is REST and why should I learn more about it? REST is a type of software architecture that was designed to ensure interoperability between different Internet computer systems. Basically, the idea is that services that comply with REST architecture can more easily communicate with one another whether you are designing mobile apps, Linux, macOS or it purely native windows development. REST stands for representational state transfer and it was proposed by computer scientist Roy Fielding’s 2000 PhD thesis, Architectural Styles and the Design of Network-based Software Architectures, in which he introduced and described REST. The goal of REST is to increase performance, scalability, simplicity, modifiability, visibility, portability, and reliability. This is achieved through following REST principles such as a client–server architecture, statelessness, cacheability, use of a layered system, support for code on demand, and using a uniform interface. Where can I download Roy Fielding’s Original PhD thesis about REST? You can have access to the complete original Roy Fielding’s 2000 PhD thesis here! Since long time ago Mr. Fielding was deeply involved in the web’s early development and standardization, he began working at and for the World Wide Web Consortium in 1994 and co-authored the HTTP 1.0 specification. Later he was the main author behind the HTTP 1.1 and URI specs also co-founded the Apache web server project. The name “Representational State Transfer” is intended to evoke an image of how a well-designed Web application behaves: a network of web pages (a virtual state-machine), where the user progresses through the application by selecting links (state transitions), resulting in the next page (representing the next state of the application) being transferred to the user and rendered for their use. Fielding’s approach was to make sure that the REST architectural style emphasises the scalability of interactions between components, uniform interfaces, independent deployment of components, and the creation of a layered architecture to facilitate caching components to reduce user-perceived latency, enforce security, and encapsulate legacy systems. What do the different REST terminologies mean? REST does not enforce any rule regarding how it should be implemented at lower level, it just put high level design guidelines and leave you to think of your own implementation. What we do have is the definition of 6 architectural constraints which make any web service – a true RESTful API. Client–server: By separating the user interface concerns from the data storage concerns, we improve the portability of the user interface across multiple platforms and improve scalability by simplifying the server components. Stateless: Each request from client to server must contain all of the information necessary to understand the request, and cannot take advantage of any stored context on the server. Session state is therefore kept entirely on the client. Cacheable: Cache constraints require that the data within a response to a request be implicitly or explicitly labeled as cacheable or non-cacheable. If a response is cacheable, then a client cache is given the right to reuse that response data for later, equivalent requests. Uniform interface: By applying the software engineering principle of generality to the component interface, the overall system architecture is simplified and the visibility of interactions is improved. In order to obtain a uniform interface, multiple architectural constraints are needed to guide the behavior of components. REST is defined by four interface constraints: identification of […]

Read More

The best programming languages to learn in 2022

One of the challenges for people pursuing a career in programming is deciding which languages to learn. With so many languages used for different purposes, choosing the ones you want to study will depend on the specialty that most interests you as well as on job demand. A report released on Tuesday by programming course site CodingNomads looks at the “best” programming languages for 2022. If you’re excited by the data and logic side of coding, you may wish to learn Python, Java, C, C++ or C#. If you’re jazzed about visual design and user interfaces, TypeScript might be up your alley. And if you’re looking to develop mobile apps, you’d want to check out Java for Android, and Swift or Objective-C for Apple’s iOS. Aside from satisfying your own professional interests, you naturally want to select a language that’s in demand among employers and promises a good salary. In this regard, CodingNomads examined the most popular languages based on job postings and on salary. Looking at the greatest number of job postings on LinkedIn across the U.S. and Europe, CodingNomads awarded the top spot to Python. In second place was Java, with JavaScript, C++, C#, C, TypeScript, PHP, Perl and Ruby rounding out the top 10. Analyzing the average salaries of the most in-demand languages according to data from Indeed and Glassdoor, CodingNomads put Ruby in first place with an average salary in the U.S. of $111,994. C++ came in second with a salary of $103,818. The other languages and their salaries were Python at $103,540, JavaScript/TypeScript at $100,492, Java at $96,786, C# at $89,203, PHP at $85,435, Perl at $83,159 and C at $82,924. TypeScript was not listed separately because it had limited salary data. But CodingNomads deemed its salary similar to that for JavaScript jobs. Also, these figures are considered average salaries and not what beginning programmers would earn. But successful coders can expect to meet or beat these salaries within a couple of years, according to the report. Python is the best programming languages 2022 As a general purpose, server-side language, Python is used for a variety of tasks from simple scripting to advanced web applications and artificial intelligence. For developers interested in data science or machine learning as well as overall software development and web development, Python is the best language to learn, according to CodingNomads. “While Python has been around for decades, the demand for Python skills in 2022 will continue growing exponentially thanks to its use in the booming industries of data science, machine learning and AI,” said Ryan Desmond, co-founder and lead instructor at CodingNomads. “In addition, Python is considered one of the easiest, most powerful, and most versatile languages to learn, making it popular amongst companies, developers, and aspiring developers.” Java A respected and time-tested language, Java is widely used by organizations around the world. Java is the main language behind Android, which owns an 85% share of the mobile market. It’s also the most popular language for Internet of Things (IoT) devices. Java is considered harder to learn than Python but easier than C or C++, according to CodingNomads. The main reason is that Java improved on C, and Python improved on Java. On the plus side, once you master Java, learning something like Python will be much easier. Anyone who wants […]

Read More

How To Add A Sepia Image Effect In Your Apps With No Code in C++ Builder IDE

What is a sepia effect in a C++ app? Is there an easy way to add sepia effects to components? How can I add a sepia effect to alpha images in my applications? How can I use the TSepiaEffect component in C++ Builder? What are the visual tips to add a sepia effect in the development of C++ applications? Let’s answer these questions. C++ Builder IDE is the easiest and fastest C and C++ IDE for building simple or professional applications on the Windows, MacOS, iOS & Android operating systems. One of the greatest features of VCL and FMX UI frameworks are the effects on UI elements. There are many UI effects that can be used on most of the visual elements supported officially by the Embarcadero. There are many good effects that we can use: Sepia Effect, Reflection Effects, Shadow Effects, Emboss Effects, Glow Effects, etc. Let’s see how we can apply a sepia effect to our images in C++ Builder IDE. What is a Sepia Effect? The sepia effect is a tonal editing technique that adds a warmer tone to a given image, so it appears to have a vintage or archival quality. Generally, Sepia effects have good results when used on photos. If you want to add some warmer style to your composition, the sepia effect works exceptionally well with black and white images. With C++ Builder IDE, you can add a sepia effect to your color images by using TSepiaEffect. Let’s see how we can use TSepiaEffect. How to use TSepiaEffect in C++ Builder IDE? TSepiaEffect is a class to create sepia effects for visible objects like images, shapes and similar items. TSepiaEffects affect the texture of visual objects. For further information, go to TImageFXEffect and FireMonkey Image Effects. Using these components, you can apply a sepia effect to screen elements and images with NO CODE at all! The intensity of the sepia color applied over the texture can be set through the Amount property. The following table shows the result of the TSepiaEffect effect on a .png picture, placed on a form (using a TImage object). The default value (Amount=0.5) is used to set the sepia amount. Create a new Multi-Device C++ Builder Project, save all project files in a folder Drag a TImage component from Palette onto the Form, Load an Image by using its MultiResBitmap property Copy and paste this TImage (Image1), position the new one (Image2) to the left Now we have two same Images. Let’s add SepiaEffect to the right one. Drag TSepiaEffect from Palette to the new TImage (i.e.Image2). If you do this it will automatically add Sepia Effect on the new Image with the 0.5 amount which is the default. You can modify the Amount (0 to 1.0) of Sepia Effect from the Object Inspector if you want. Lower values add the lighter amount of sepia effect, higher values have much. The maximum is 1.0. 8. Finally, you can run the application by pressing F9 or Run button, Here is the result. What are some additional tips on adding sepia effects to images at design or run time? You don’t need to use the sepia effect if it is not needed, the simple UI is the best!  User images are a good candidate on which to apply the sepia effect, do not use on other components and visual […]

Read More