Noutați

Real World Drama In This Exciting GPS Motorcycle Game

The great thing about RAD Studio Delphi is that the Firemonkey framework does a lot of the hard work for you in your mobile apps. Things like integrating with the mobile device’s hardware and sensors are made much less complicated by the power of the components and runtime library. Combine that with your own imagination and you can come up with something wonderful like WarmerKouder by Dutch developer Daan van der Werf. WarmerKouder is powered by Delphi WarmerKouder is based on a very popular traditional Dutch game of the same name. WarmerKouder, or warmer, colder in English, cleverly mixes game play with the real world by integrating with the mobile device’s GPS sensor via the Firemonkey framework. Players can select a challenge and then follow the sound hints to narrow down the final destination. Players are “warmer” if they are getting close to the target and “colder” if they are moving away from it. Variations of this kind of gameplay are probably familiar in most parts of the world and the simplicity means it has a broad appeal. Delphi’s GPS sensor integration adds a new dimension Developer Daan van der Werf says, “Turn your GPS data to start Warmer Colder and select a challenge. You get hints by the sound app, Warmer if you get closer to the final destination and Colder if you are further from moving. We advise you to use a headset to follow the hints. When you first found the end the application will ask you to make a selfie, so your participation is taken seriously. All data locations are recorded and forwarded to the score www.warmerkouder.nl. If you really are the first and your details are known to us, we will provide you with your prize. Every participant who comes to the final destination of a challenge always wins something! The prizes to be won can vary from t-shirts, caps to the latest complete tire sets or helmet for your motorcycle.” It’s never too late to innovate We think it’s a great way of taking a well-known traditional pastime and bringing it right up to date with the latest modern mobile hardware and the always-on world we live in today. Google Play WarmerKouder Screenshot Gallery

Read More

Modernize Your App: Are You Handling Windows Themes Correctly?

Modern versions of Microsoft Windows are arguably a lot more pleasing to look at.  Gone are the days of apps being gray slabs and chunky buttons.  When Microsoft adopted the Fluent UI interface along with it came a richer color palette, a cleaner, leaner look and fonts without the curls and twists of the Serif families. Sidling in with that beauty treatment were a number of other usability and user convenience facets of being a modern app for us to consider: high DPI, notifications and themes designed to cater for a “light” and “dark” mode. High DPI in your apps RAD Studio Delphi already handles the high DPI changes.  If you right click on your project in the IDE and select “properties” and then click on the “manifest” section you should see it say “per monitor v2”. Having this section ticked lets Windows know that your app (actually the VCL in your app) understands the high DPI – screen resolution pixels – and contains assets and API handling to work with it.  There is actually a substantial amount of work going on behind the scenes in the VCL runtime when the per monitor v2 setting is enabled, which it is by default, but for ordinary mortals like you and I we don’t get to worry about any of that; it just works. If you compare a program compiled with an older version of a compiler which doesn’t understand per monitor v2 you should notice that things on higher resolution monitors can look a little fuzzy.  That’s because that manifest file setting is not there and the internal API calls are older ‘backwardly compatible’ ones which work using the lowest common denominator, resulting in the app not making the best use of modern display technology. It’s a bit like watching a 1970s movie on a 4K OLED TV – bearable, but it looks…dated. What isn’t covered by the latest VCL? The other major visible change ushered in by Windows 10 was the introduction of a “dark mode”. For years we’ve all really been running Windows with almost the only choice available – white backgrounds, gray buttons and some colors dotted around to relieve the glare. Then, Microsoft brought out a “dark mode”. This dark mode turns all the Windows assets, dark (it’s well named!) and this is a setting that your apps are expected to both understand and react to. Currently this is an area where the VCL has not quite covered. Detecting dark mode When your app launches it should try and detect whether Windows is currently expecting you to be “in dark mode” or “light mode”. This is currently handled by a set of API calls for which we do not currently have support in the VCL. Luckily, there’s a registry key we can check. When our app detects that it should be “dark” then we should tell our Delphi app to load an appropriate ‘dark’ theme.  Conversely, if Windows indicates we are expecting ‘light mode’ then a similarly appropriate light-colored VCL theme should be loaded. How to detect dark mode in your VCL apps the easy way It wouldn’t be Delphi if there wasn’t an easy way to do all the hard work. So I wrote a little unit you can include in your VCL Delphi programs to […]

Read More

Developer Stories: Artur Majtczak Discusses His Superb ALLPlayer App

Artur Majtczak is a Delphi user since 1997. He has developed an application (ALLPlayer), which was a showcase entry for the Delphi 26th Showcase Challenge and we got to ask him about his Delphi journey throughout the years. Head over to the ALLPlayer website for more information about the application. When did you start using RAD Studio Delphi and have long have you been using it? I’ve been using Delphi since I can remember, most likely it was Delphi 3. Ah, I just checked, it was probably as early as 1997, so it’s been a long time! What was it like building software before you had RAD Studio Delphi? In my case it was really long time ago, in times when software was created in simple text editor. Thanks to Delphi I was able to create software ideas very quickly, design and build the user interface with just the computer mouse, and all this intuitively and with incredible ease. How did RAD Studio Delphi help you create your showcase application? ALLPlayer in its first version was created in 1998. it was not the prettiest, I admit, but it had features not seen in other players at that time, which was noticed and the number of ALLPlayer users quickly began to grow into millions of users. Subsequent versions added new features and the graphics adapted to changing needs over the years. What made RAD Studio Delphi stand out from other options? If we have a cool idea for a new application, regardless of whether it is a database application, corporate app or for the casual user, it would be hard to find a tool in which we can more quickly program a working version with a nice user interface. What made you happiest about working with RAD Studio Delphi? What made me happiest about working with RAD Studio/Delphi? Work goes fairly quickly and easily, the RAD Studio software is convenient. I think it’s also a matter of getting comfortable with it. What have you been able to achieve through using RAD Studio Delphi to create your showcase application? Readability and simplicity of code. Decent and easy to use user interface. What are some future plans for your showcase application? Continued development and enhancement of applications. Simplicity and adaptation to the latest requirements. Thank you, Artur! Check out his Artur’s showcase application entry, ALLPlayer, by clicking the link below. Showcase

Read More

#WEBWONDERS : The browser console is your friend

When writing web client applications with TMS WEB Core, chances are you will be spending quite some time in the browser developer tools. This is the place where you can debug your web client applications and can inspect every detail of your web application: the DOM, source, network, performance, local storage, … in a nutshell a wealth of useful information.  One of the capabilities of the browser developer tools is the console and from your application you can add logging statements to output these in the browser console. The closest comparison with the Windows desktop application development world is the OutputDebugString() command that sends text to a debugger. The direct equivalent is using console.log(“Hello world”) that will do exactly the same but to the browser console. But all similarities end here. The console object that is fully available as Pascal class in a TMS WEB Core web client application has many more options. This object is described here: https://www.w3schools.com/jsref/obj_console.asp Timing functions to measure performance A first convenience of the console object is the ability to time certain parts of your code. You can do this by calling console.time(‘identifier’) to start a browser timer and when the part of the code was executed, call console.timeEnd(‘identifier’) and the browser will output the time difference in the browser console. This example demonstrates the timing of a bubble sort algorithm (for the sake of having some code that takes some time to execute) function BubbleSort( list: TStringList ): TStringList; var i, j: Integer; temp: string; begin // bubble sort for i := 0 to list.Count – 1 do begin for j := 0 to ( list.Count – 1 ) – i do begin if ( j + 1 = list.Count ) then continue; if ( list.Strings[j] > list.Strings[j+1] ) then begin temp := list.Strings[j]; list.Strings[j] := list.Strings[j+1]; list.Strings[j+1] := temp; end; end; end; Result := list; end; function GenerateRandomWord(CONST Len: Integer=16; StartWithVowel: Boolean= FALSE): string; const sVowels: string = ‘AEIOUY’; sConson: string = ‘BCDFGHJKLMNPQRSTVWXZ’; var i: Integer; B: Boolean; begin B := StartWithVowel; SetLength(Result, Len); for i := 1 to len DO begin if B then Result[i] := sVowels[Random(Length(sVowels)) + 1] else Result[i] := sConson[Random(Length(sConson)) + 1]; B:= not B; end; end; procedure TForm1.MeasureTime; var sl: TStringList; i: integer; d: dword; mr: TMyRec; begin console.time(‘bubble’); sl := TStringList.Create; for i := 0 to 2000 do begin sl.Add(generaterandomword(8,false)); end; BubbleSort(sl); console.timeEnd(‘bubble’); sl.Free; end; The result in the browser console looks like: Inspecting values of variables, records, objects The console.log() call can have a variable number of arguments of different types. You can call for example: console.log(‘Date today’,DateToStr(Now)); and this will output today’s date in the console. But also objects or records will be shown with all their details in the console, as this example for a record demonstrates: type TMyRec = record Name: string; Age: integer; Member: boolean; end; var mr: TMyRec; begin mr.Name := ‘Delphi’; mr.Age := 25; mr.Member := true; console.log(mr); end; Or take this example, where the details of a HTML element are displayed in the console, in this example the HTML element used for a TWebEdit:  console.log(WebEdit1.ElementHandle); All these statements combined outputted in the browser console: Formatting output If you thought the browser could only output dull fixed text, you are wrong! On top of that, the console.log() command allows you […]

Read More

Ground-Breaking App For Transgender & Gender-Variant People

‘Twilight People’ is a landmark project that helps users discover and celebrate the hidden history of transgender and gender-variant people of faith in the UK past and present – and it’s written with RAD Studio Delphi and the Firemonkey framework. In the words of the developer: “this collection is the first source of faith and transgender history in Britain. The project explores the narratives around ‘body and ritual’, documenting the interconnection between faith and gender journeys beyond the binary categories of male and female“. Developed by Cheryl Morgan the app contains the stories of some of the many trans people of faith who were interviewed for the project. Website Twilight People Google Play TwilightPeople Screenshot Gallery RAD Studio Delphi enables developers and organizations to further their goals, empower their users and make connections in both business and a social context. Do you have an idea which could be a game-changer for your users? Why not use RAD Studio and the power of Delphi to reach them whatever device they are using on desktop, mobile and the web?

Read More

Understanding RASP, and Putting It to Work

Published May 13, 2021 WRITTEN BY ED TITTEL. Ed Tittel is a long-time IT industry writer and consultant who specializes in matters of networking, security, and Web technologies. For a copy of his resume, a list of publications, his personal blog, and more, please visit www.edtittel.com or follow @EdTittel RASP is an initialism for runtime application self-protection. It’s a technology designed to boost application software security by monitoring inputs to running applications. RASP screens all such inputs, and blocks those that could be associated with potential attacks. RASP also protects various aspects of an applications runtime environment, and prevents changes to environment variables, access controls and privileges, and so forth. Gartner’s IT Glossary defines RASP as follows: “a security technology that is built or linked into an application runtime environment, and is capable of controlling application execution and detecting and preventing real-time attacks.” Numerous security companies offer RASP add-ins for widely used runtime environments, such as the Java Virtual Machine Specification and the .NET Common Language Runtimeli. In fact, developers generally choose to buy RASP tools from such third parties instead of building their own implementations. Putting RASP to Work When integrated into an application’s run-time, RASP incorporates security checks into supporting server environments. That is, RASP intercepts inputs sent to the application for screening, and either allows acceptable inputs or denies questionable or malicious inputs to actually reach the application. RASP also includes built-in logging and monitoring facilities so it can keep track of what it’s doing, and make sure its actions are appropriate and secure. RASP implementations seek to maximize valid interceptions (by preventing malicious or insecure inputs from obtaining application access). At the same time, RASP monitoring — and related updates from its makers — also seeks to avoid invalid interceptions (preventing legal and benign inputs from accessing the application). Ultimately, it makes sense to understand RASP as a validation tool for inputs and data requests made to applications inside their runtime environments. RASP Is An All-Purpose Technology Because it’s a plug-in that works with a range of runtime environments, RASP can handle both web-based and traditional (standalone executable-based) applications. Once present, RASP brings protection and detection capabilities to servers where targeted applications run. In addition, because RASP sees the overall application state and context, it does not work at the packet level as do application firewalls. RASP generally has a nuanced and informed view of application and input states across current ongoing interactions. A stateful view of application inputs gives RASP more scope and flexibility for protection. It can exhibit a variety of behaviors as it detects unwanted actions or malicious inputs that match security rules or policies in its knowledge base. An example of such behaviors, ordered by increasing order of severity, can include: Denial of offending input, with a warning message to the sending user Issue alerts for named recipients when offending inputs occur (usually administrators or security team members) Terminate user session upon offending input Terminate application upon offending input (does not otherwise impact the host server, and other services or applications) RASP implementations generally plug into existing server frameworks and runtime modules. Thus, they integrate with a  program’s code, associated libraries and API calls. Such integration is what gives RASP the ability to handle inputs in real-time as an application is executing. […]

Read More

The Ultimate Productivity Application: My Shift Planner

Most organizations, particularly in the retail and manufacturing sectors once they go beyond a handful of employees, start to introduce shift working arrangements. Shifts can help to make the most efficient use of work time and ensure a continuous production or service availability. The filling and coordination of shifts, however, also introduces some complexities and before long administrators and the employees can begin to struggle a little to keep on top of things. Helping with the shift scheduling workflow My Shift Planner, from UK developers MyBuzz Technologies, is designed for shift workers to help take back control of their work/life balance and help manage when and what their working hours will be. According to the developer, “My Shift Planner is the most powerful Shift Work Calendar app on the market and the easiest to setup and use. Download today to gain back control of your social calendar.” Making admirable use of RAD Studio Delphi to produce cross-platform mobile code MyBuzz have really packed a host of features into My Shift Planner which extract the real benefits of the Firemonkey FMX framework to leverage the user’s mobile device. It’s a superb tool for shift workers. Key Features of My Shift Planner Easy set up. The most common shift schedules are already pre-configured as well as custom set up The shifts synchronize with the mobile device’s calendar. Flexible enough to cope with almost any type of roster. Allows for recording notes as well as actual worked hours and overtime. Contains work reports so that staff can view and check their worksheets. Lets the staff know which day is pay day. Has sharing facilities to share the roster with family and friends. Has built-in, free backup tools.. Google Play My Shift Planner Screenshot Gallery RAD Studio Delphi powers the “My Shift Planner” app – it can power your apps too. Are you ready to join them making great apps? Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder. Design. Code. Compile. Deploy.Start Free Trial   Upgrade Today    Free Delphi Community Edition   Free C++Builder Community Edition

Read More

Developer Stories: Roshan Gerard Bolonna And His MySQL Direct Backup Software

Roshan Gerard Bolonna has been using Delphi since 2005. He has a showcase entry (MySQL Direct Backup) submission in the Delphi 26th Showcase Challenge and he explained more about it through an interview. You can checkout their application through MySQL Direct Backup website. When did you start using RAD Studio Delphi and how long have you been using it? My interest in Delphi started after using the Turbo C++ back in 2005, when developing Win32 applications, and found that Delphi has a lot of features and easy-to-use libraries. What was it like building software before you had RAD Studio Delphi? RAD Studio is extremely rapid application-oriented and provides all the necessary components to fulfill a software requirement compared to most solutions provided in Visual Studio and other software solutions. How did RAD Studio Delphi help you create your showcase application? As I mentioned earlier rad studio is extremely rapid application-oriented, this is my very first mobile application developed while learning Firemonkey for the first time. This really proves RAD studio has really good features to get the work done fast and is easy to learn. What made RAD Studio Delphi stand out from other options? Interesting features and interactive software components that allow to development of applications with minimum coding involvement. What made you happiest about working with RAD Studio Delphi? Native performance & complete support for Win32 API and a huge component library. What have you been able to achieve through using RAD Studio Delphi to create your showcase application? Customer requirements that cannot be fulfilled by other software solutions, such as remote MySQL native direct backup application. What are some future plans for your showcase application? A serial port data monitor based on Delphi using the VCL. Thank you, Roshan! Click the link below to view Roshan’s wonderful showcase entry. Showcase

Read More

The Future Of Javascript App Testing Is Through Automation

As a developer, we understand how hard is to test all possible problems of an application, and always if you make an important change on your project you probably would be afraid if the application will be broken after merging your code to production, right? Not counting a lot of time you have to spend with many of tests, since basic and more complex to make sure that your new version will be running perfectly. To solve this problem let’s know the great Sencha WebTestIt what is a great and powerful tool and totally free to use on your project and have great productivity saving time and avoiding big problems like bugs blowing up for the user. How can I test Javascript Applications automatically? As a first step, download and install the Sencha WebTestIt here. Follow the steps and you will receive an email with the link to download the product. Extract the file and install it on your machine simply following the very easy steps that the installer will show you. All steps to install are here. Once you have Sencha WebTestIt installed, open it and click on New Project button and then give it a name like my-first-test. Finally, you can define the language that you will create your tests. For this post, we will select Java. After that, click on the button Save to create the new project and start working on it. You can learn more about the UI of the product here. It will explain each tab and what it is used for. How easy is to to start a Simple Test Project? For this project, we will be testing the Ext JS Admin Dashboard but running it locally and we will be focused on the Email page, the List component specifically that we created easily based on templates on this post. You can also test any Web Application or Web Site independently of the technology or framework used to create it. How to create Objects with Sencha WebTestIt Click on New Page Object File to store the element selectors to get the component references to access on our test and give it the name EmailListPo.java. How can I simulate User Actions on a Test? Here we are going to create the actions that our automated test will run against our Email List. Let’s create an action to simulate the user clicking on the icon heart to remove the email from favorites and check if the cell on the grid was changed based on the cell red mark that Ext JS uses to identify if the value was changed on that cell then we will understand that the record was updated locally as a  non-favorite message. Follow these steps: Select the EmailListPo file from your project’s pageobjects folder. On tab Elements click on Add element. Give it the name iconHeart On selector, type .x-grid-cell-inner .fa-heart referring to the heart icon in the grid cell Click on close to save the selector Drag iconHeart  into the Code tab after getTitle method to it create a new method with our new element. It will open a context menu, click on Do then Click on element option The UI will create automatically the method to simulate the click on the heart. Save the file. How can I write a Javascript test? Let’s create […]

Read More

Developer Stories: Murod Oripov Shares Insights On His Uzbek Crosswords Application

Murod Oripov has been programming with Delphi since 2003. His application (Uzbek Crosswords) was qualified for the Uzbek Crosswords and we asked him to tell us some more about his Delphi experiences. Go on over to Uzbek Crossword in Google Play to download the application. When did you start using RAD Studio/Delphi and have long have you been using it? I have been using Delphi since 2003 when it was Delphi 6. What was it like building software before you had RAD Studio/Delphi? I used Foxpro, Basic and C/C++ as a beginner. But I met Delphi and it liked me very much. How did RAD Studio/Delphi help you create your showcase application? The Delphi language seems a lot more straight-forward to use than other alternatives to me. Delphi has a lot of components and beautiful graphic capabilities. What made RAD Studio/Delphi stand out from other options? I think RAD Studio is more easy to understand than other IDEs. What made you happiest about working with RAD Studio/Delphi? I liked the experience of using Delphi to write code very much. Especially making Android apps. What have you been able to achieve through using RAD Studio/Delphi to create your showcase application? I realized that I must work hard and continue in that spirit. And I will definitely succeed. What are some future plans for your showcase application? I decided to get to know Delphi much more and to teach school children how they can use it to make simple beautiful graphical apps. Thank you, Murod!  Click the link below to view Murad’s showcase entry. Showcase No matter where you live or where you choose to work, the ease and power of RAD Studio and Delphi is a powerful combination to make your apps become a reality. Are you ready to take your ideas and make them real?

Read More