Delivering you an intelligent and high quality result in due time!
With 25+ years of experience in software modernization, Ispirer is well qualified to perform comprehensive application migrations between diverse programming languages and platforms. Apart from the extensive expertise, we rely on our proprietary Ispirer Toolkit to streamline and speed up Delphi to Java conversion.
Drop us a line and we’ll estimate your project for free!
Request a quoteIspirer customization service allows you to get a personal version of the Ispirer Toolkit specifically for your application. With our proprietary tools tailored to your project requirements, you will be able to automate the conversion of your Delphi code to Java with maximum efficiency. A service like this will allow you to ensure a seamless app modernization and reduce manual adjustments to the bare minimum. The engagement model will be as follows:
Our migration experts will demonstrate an example of automated database migration using Ispirer Toolkit. You will have an opportunity to evaluate the benefits of automated Delphi to Java migration after Ispirer Toolkit customization.
Live demoIspirer Toolkit analyzes all object dependencies during the conversion process and provides not only line-by-line conversion, but resolves type conversions as well. In addition, the software understands and transforms the necessary inheritance dependencies. It parses the entire source code, builds an internal tree with all the information about the objects, and uses it in the migration process. For more information review the code samples below.
unit Splash; interface uses SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TSplashForm = class(TForm) Panel1: TPanel; Label3: TLabel; Bevel1: TBevel; Label1: TLabel; Image1: TImage; end; var SplashForm: TSplashForm; implementation {$R *.dfm} end.
package units; import handlers.TSplashFormHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Splash { private static Splash instance; private static final Logger LOGGER = LoggerFactory.getLogger(Splash.class); public TSplashFormHandler SplashForm; private Splash() { } public static synchronized Splash getInstance() { if(instance == null) { instance = new Splash(); } return instance; } } package handlers; import forms.TSplashForm; import units.Splash; public class TSplashFormHandler { public TSplashForm form; public TSplashFormHandler(TSplashForm form) { this.form = form; form.setTSplashFormHandler(this); } }
object SplashForm: TSplashForm Left = 204 Top = 123 AutoScroll = False ActiveControl = Panel1 BorderIcons = [] BorderStyle = bsNone ClientHeight = 178 ClientWidth = 168 Font.Color = clBlack Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] PixelsPerInch = 96 Position = poScreenCenter TextHeight = 13 object Panel1: TPanel Left = 0 Top = 0 Width = 168 Height = 178 Align = alClient BevelInner = bvLowered Color = clSilver TabOrder = 0 object Label3: TLabel Left = 23 Top = 125 Width = 123 Height = 19 Caption = 'Marine Adventures' Font.Color = clBlack Font.Height = -16 Font.Name = 'Times New Roman' Font.Style = [fsItalic, fsUnderline] ParentFont = False end object Bevel1: TBevel Left = 10 Top = 150 Width = 147 Height = 2 Style = bsRaised end object Label1: TLabel Left = 60 Top = 158 Width = 47 Height = 13 Caption = 'Loading...' end object Image1: TImage Left = 40 Top = 11 Width = 87 Height = 113 Picture.Data = { } end end end
package forms; import javax.swing.*; import javax.swing.border.TitledBorder; import javax.swing.plaf.FontUIResource; import java.awt.*; import com.ispirer.sw.controls.TForm; import com.ispirer.sw.controls.TImage; import com.ispirer.sw.types.image.PictureUtils; import handlers.TSplashFormHandler; import org.apache.commons.lang3.StringUtils; public class TSplashForm extends TForm { private static final long serialVersionUID = 1L; private TSplashFormHandler tSplashFormHandler; private TImage Image1 = null; return this.Panel1; } return this.Label3; } return this.Label1; } public TImage getImage1() { return this.Image1; } public TSplashForm() { setDefaultCloseOperation(DISPOSE_ON_CLOSE); setName("SplashForm"); setBorderStyle(BorderStyle.BS_NONE); setBounds(204, 123, 168, 178); setLocationRelativeTo(null); initTSplashForm(); initLayouts(); } private void initTSplashForm() { @Override super.paintComponent(g); g.drawLine(10, 150, 157, 150); } }; this.Image1 = new TImage(); // // Panel1 // this.Panel1.setName("Panel1"); this.Panel1.setBounds(0, 0, 168, 178); this.Panel1.setLayout(null); getContentPane().add(this.Panel1, 0); // // Label3 // this.Label3.setName("Label3"); this.Label3.setBounds(23, 125, 123, 19); this.Label3.setText("<html><u>Marine Adventures</u></html>"); this.Label3.addPropertyChangeListener("text", labelChangeText); this.Panel1.add(this.Label3); // // Label1 // this.Label1.setName("Label1"); this.Label1.setBounds(60, 158, 47, 13); this.Label1.setText("Loading..."); this.Label1.addPropertyChangeListener("text", labelChangeText); this.Panel1.add(this.Label1); // // Image1 // this.Image1.setName("Image1"); this.Image1.setImage(PictureUtils.getTImage(Image1Data)); this.Image1.setBounds(40, 11, 87, 113); this.Panel1.add(this.Image1); } private void initLayouts() { GroupLayout contentPaneLayout = new GroupLayout(getContentPane()); getContentPane().setLayout(contentPaneLayout); contentPaneLayout.setHorizontalGroup(contentPaneLayout.createParallelGroup(GroupLayout.Alignment.LEADING) contentPaneLayout.setVerticalGroup(contentPaneLayout.createParallelGroup(GroupLayout.Alignment.LEADING) } public void setTSplashFormHandler(TSplashFormHandler tSplashFormHandler) { this.tSplashFormHandler = tSplashFormHandler; setActiveControl(this.Panel1); } }
if FromEdit.Text = '' then Result := 0 else Result := StrToDate(FromEdit.Text);
if(form.getFromEdit().getText() == null && "".equals(form.getFromEdit().getText().trim())) { result = null; } else { result = LocalDateTime.from(LocalDate.parse(form.getFromEdit().getText(), DateTimeFormatter.ofPattern("M/d/yyyy")).atStartOfDay()); }
for I := 0 to Application.ComponentCount - 1 do begin if Application.Components[I] is TForm then begin F := TForm(Application.Components[I]); if (F <> Self) and (F.Visible) then F.Close; end; end;
while not Items.EOF do Items.Delete;
while(!form.getItems().isEOF()) { form.getItems().delete(); }
try Items.First; finally DeletingItems := False; end;
try { form.getItems().first(); } finally { DeletingItems = false; }