Intelligent, Custom and Highly Automated Cross Platform Database and Application Migration

Delphi to Java Migration

Java

Migrate from Delphi to Java with the help of our Ispirer Migration and Modernization Toolkit! It supports Delphi to Java conversion of any complexity and can be easily customized according to the particular requirements of amy migration project.


Delphi to Java Migration Overview

Watch this demo and learn how Ispirer MnMTK converts Delphi to Java:


Why Ispirer MnMTK 2015 for Delphi to Java Conversion?

The main purpose of Ispirer Systems is to carry out a high-grade and top-of-the-line database migration. We personalize our migration tool Ispirer MnMTK in such a way that a customized version can fully satisfy a client's business requirements.

Our main advantages:

  • High quality and experiences technical support: our technical team has a tremendous experience in migration projects of different levels of complexity. We will help you to migrate from Delphi to Java quickly and easily.
  • Customer-oriented approach and Fast Customization: we personalize our migration tool in such a way that a customized version can fully satisfy our client’s business needs, custom conversions and optimizations are made within 1-2 business days;
  • Pre-Sales Engagement: we demonstrate a full conversion during the evaluation before you make a decision.
  • Flexible pricing: we can offer you a wide range of options, among which you will definitely find the one which suits you;
  • Optimized Conversion: after the conversion you get an intelligent and maintainable code, without using any Ispirer's middleware.

Assessment Process

The assessment of your migration project could definitely help to weigh up efforts and the approximate cost of your migration. In order to facilitate the process, you're welcome to fill in our:

Live Presentation

Ispirer Migration Solution

Delphi to Java

Request

Request a Quote

Ispirer Migration Solution

Delphi to Java

Service Toolkit

Conversion Features

Migrate Delphi to Java

  • Converts Delphi source code with business logic (*.pas) to Java packages with classes

Delphi:

  1.  
  2. unit DemoCode;
  3. interface
  4. uses
  5. Windows, Messages, SysUtils, Variants, Classes,
  6. Graphics, Controls, Forms,
  7. Dialogs, StdCtrls;
  8. type
  9. TForm1 = class(TForm)
  10. Button1: TButton;
  11. procedure Button1Click(Sender: TObject);
  12. private
  13. { Private declarations }
  14. public
  15. { Public declarations }
  16. end;
  17. var
  18. Form1: TForm1;
  19. implementation
  20. {$R *.dfm}
  21. procedure TForm1.Button1Click(Sender: TObject);
  22. begin
  23. Button1.Caption := 'Changed';
  24. end;
  25. end.
  26.  

Java:

  1.  
  2. import java.awt.event.*;
  3. public class DemoCode
  4. {
  5. TForm1 Form1 = null;
  6. public DemoCode()
  7. {
  8. Form1 = new TForm1();
  9. Form1.setVisible(true);
  10. Form1.getButton1().addActionListener(new ActionListener()
  11. {
  12. @Override
  13. public void actionPerformed(ActionEvent event)
  14. {
  15. Button1Click(null);
  16. }
  17. });
  18. }
  19. public void Button1Click(Object Sender)
  20. {
  21. Form1.getButton1().setText("Changed");
  22. }
  23.  
  24. }
  25.  

Pas conversion is based on form initializing, adding listeners to buttons and logic conversion. Converted Java class has link to the JFrame form and initializes it in constructor. Ispirer MnMTK uses addActionListener method with anonymous creating of ActionListener to add event handler on buttons and call needed method in overridden actionPerformed method.

  • Converts Delphi Forms (*.dfm) Files to Java UI Frameworks (Swing, SWT, Java FX, etc.)

Delphi:

  1.  
  2. object Form1: TForm1
  3. Left = 0
  4. Top = 0
  5. Width = 554
  6. Height = 289
  7. Caption = 'Form1'
  8. Color = clBtnFace
  9. Font.Charset = DEFAULT_CHARSET
  10. Font.Color = clWindowText
  11. Font.Height = -11
  12. Font.Name = 'Tahoma'
  13. Font.Style = []
  14. OldCreateOrder = False
  15. PixelsPerInch = 96
  16. TextHeight = 13
  17. object Button1: TButton
  18. Left = 232
  19. Top = 128
  20. Width = 75
  21. Height = 25
  22. Caption = 'Button1'
  23. TabOrder = 0
  24. OnClick = Button1Click
  25. end
  26. end
  27.  

Java:

  1.  
  2. import javax.swing.*;
  3. public class TForm1 extends JFrame
  4. {
  5. private static final long serialVersionUID = 1L;
  6. private JButton Button1 = null;
  7. public JButton getButton1()
  8. {
  9. return this.Button1;
  10. }
  11. public TForm1()
  12. {
  13. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  14. setBounds(0,0,593,305);
  15. setTitle("Form1");
  16. getContentPane().setLayout(null);
  17. initTForm1();
  18. }
  19. private void initTForm1()
  20. {
  21. this.Button1 = new JButton();
  22. //
  23. // Button1
  24. //
  25. this.Button1.setBounds(232,128,75,25);
  26. this.Button1.setText("Button1");
  27. getContentPane().add(this.Button1);
  28. }
  29. }
  30.  
Delphi Java
Migrate Delphi to Java Migrate Delphi to Java

Dfm files consist of various properties. For these scripts SQLWays generates Java view classes. Delphi forms are converted to Java JFrame with the same names. Ispirer MnMTK creates analogues of Delphi elements as fields of class with getters for all. Properties of form are specified in class constructor, another properties are specified in init…() method.

  • Converts Delphi Data Access (BDE, ADO, etc.) to Java Database Access Frameworks (JDBC, Hibernate, Torque, etc.)

Delphi:

  1.  
  2. object Form1: TForm1
  3. Left = 0
  4. Top = 0
  5. Width = 554
  6. Height = 289
  7. Caption = 'Form1'
  8. Color = clBtnFace
  9. Font.Charset = DEFAULT_CHARSET
  10. Font.Color = clWindowText
  11. Font.Height = -11
  12. Font.Name = 'Tahoma'
  13. Font.Style = []
  14. OldCreateOrder = False
  15. PixelsPerInch = 96
  16. TextHeight = 13
  17. object Button1: TButton
  18. Left = 232
  19. Top = 128
  20. Width = 75
  21. Height = 25
  22. Caption = 'Button1'
  23. TabOrder = 0
  24. OnClick = Button1Click
  25. end
  26. end object Form2: TForm2
  27. Left = 0
  28. Top = 0
  29. Width = 156
  30. Height = 198
  31. Caption = 'Test'
  32. Color = clBtnFace
  33. Font.Charset = DEFAULT_CHARSET
  34. Font.Color = clWindowText
  35. Font.Height = -11
  36. Font.Name = 'Tahoma'
  37. Font.Style = []
  38. OldCreateOrder = False
  39. PixelsPerInch = 96
  40. TextHeight = 13
  41. object DBGrid1: TDBGrid
  42. Left = 32
  43. Top = 8
  44. Width = 81
  45. Height = 120
  46. DataSource = DataSource1
  47. TabOrder = 0
  48. TitleFont.Charset = DEFAULT_CHARSET
  49. TitleFont.Color = clWindowText
  50. TitleFont.Height = -11
  51. TitleFont.Name = 'Tahoma'
  52. TitleFont.Style = []
  53. Columns = <
  54. item
  55. Expanded = False
  56. FieldName = 'col1'
  57. Visible = True
  58. end>
  59. end
  60. object ADOConnection1: TADOConnection
  61. Connected = True
  62. ConnectionString =
  63. 'Provider=MSDASQL.1;Persist Security Info=False;
  64. User ID=sa;Data S' +
  65. 'ource=MSSQL_VMDBSRV002_ETEST'
  66. Left = 24
  67. Top = 136
  68. end
  69. object ADOQuery1: TADOQuery
  70. Active = True
  71. Connection = ADOConnection1
  72. CursorType = ctStatic
  73. Parameters = <>
  74. SQL.Strings = (
  75. 'select col1 from tab1_test')
  76. Left = 56
  77. Top = 136
  78. end
  79. object DataSource1: TDataSource
  80. DataSet = ADOQuery1
  81. Left = 88
  82. Top = 136
  83. end
  84. end
  85.  

Java:

  1.  
  2. import java.awt.*;
  3. import java.sql.*;
  4. import java.util.Vector;
  5. import javax.swing.*;
  6. import javax.swing.table.DefaultTableModel;
  7. public class TForm2 extends JFrame
  8. {
  9. private static final long serialVersionUID = 1L;
  10. private JTable DBGrid1 = null;
  11. private Connection ADOConnection1 = null;
  12. private PreparedStatement ADOQuery1 = null;
  13. private ResultSet DataSource1 = null;
  14. public JTable getDBGrid1()
  15. {
  16. return this.DBGrid1;
  17. }
  18. public Connection getADOConnection1()
  19. {
  20. return this.ADOConnection1;
  21. }
  22. public PreparedStatement getADOQuery1()
  23. {
  24. return this.ADOQuery1;
  25. }
  26. public ResultSet getDataSource1()
  27. {
  28. return this.DataSource1;
  29. }
  30. public TForm2()
  31. {
  32. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  33. setBounds(0,0,172,229);
  34. setTitle("Test");
  35. getContentPane().setLayout(null);
  36. initTForm2();
  37. }
  38. private void initTForm2()
  39. {
  40. DefaultTableModel DBGrid1TM = new DefaultTableModel();
  41. DBGrid1TM.addColumn("col1");
  42. this.DBGrid1 = new JTable(DBGrid1TM);
  43. JPanel DBGrid1Panel = new JPanel();
  44. DBGrid1Panel.setLayout(new BorderLayout());
  45. JScrollPane DBGrid1ScrollPane = new JScrollPane(this.DBGrid1);
  46. DBGrid1Panel.add(DBGrid1ScrollPane, BorderLayout.CENTER);
  47. DBGrid1Panel.setBounds (32, 8,81,120);
  48. getContentPane().add(DBGrid1Panel);
  49.  
  50. try
  51. {
  52. Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  53. String connectionUrl = "jdbc:sqlserver://vmdbsrv002:1433;
  54. databaseName=etest;user=sa;password=sa;";
  55. DriverManager.setLoginTimeout(30);
  56. this.ADOConnection1 = DriverManager.getConnection(connectionUrl);
  57. }
  58. catch (SQLException | ClassNotFoundException e)
  59. {
  60. e.printStackTrace();
  61. }
  62.  
  63. try
  64. {
  65. this.ADOQuery1 = ADOConnection1.prepareStatement(
  66. "select col1 from tab1_test");
  67. }
  68. catch (SQLException e1)
  69. {
  70. e1.printStackTrace();
  71. }
  72.  
  73. try
  74. {
  75. this.DataSource1 = ADOQuery1.executeQuery();
  76. }
  77. catch(SQLException e)
  78. {
  79. e.printStackTrace();
  80. }
  81. try
  82. {
  83. while(this.DataSource1.next())
  84. {
  85. Vector<Object> row = new Vector<Object>();
  86. for
  87. (int i = 1;
  88. i <= this.DataSource1.getMetaData().getColumnCount(); i++)
  89. {
  90. row.addElement(this.DataSource1.getObject(i));
  91. }
  92. DBGrid1TM.addRow(row);
  93. }
  94. }
  95. catch (SQLException e)
  96. {
  97. e.printStackTrace();
  98. }
  99. }
  100. }
  101.  
Delphi Java
Migrate Delphi to Java Migrate Delphi to Java

It’s an example of Ispirer MnMTK DBGrid conversion with usage of TADOConnection, TADOQuery and TDataSource. As a result Ispirer MnMTK generates Java class with JTable filled from database. Also Ispirer MnMTK can automatically generate Hibernate, Torque XML maps according to database tables.

  • Converts Delphi packages (*.dpk) to Java packages with classes

You can download Delphi source code samples and the results of conversion:


You can also reach us via Contacts page.

 
Meet Ispirer MnMTK 2017!
October 4, 2017 Meet Ispirer MnMTK 2017!

We are glad to announce the Release of Ispirer Migration and Modernization Toolkit 2017! We worked in a strong cooperation with our customers to make it more convenient and powerful.


PGDay.IT 2017
September 19, 2017 PGDay.IT 2017

We are happy to announce that Ispirer Systems will support the PGDay.IT 2017 that will be held on October 13th, 2017 in Milan, Italy.


Delphi Versions

Delphi 2010, 2009, 2007, 10, 9, 8 and 7

Testimonials
December 3, 2012Epicor Software Corporation, United States
Progress 4GL to C#.Net Migration

"Epicor has engaged with the Ispirer team to create and refine prototype techniques for migrating certain parts of the Epicor Progress ABL code to well...

...

Case Studies
May 26, 2014COBOL to .NET Conversion, United States

Our client was a major player in market-driven innovation and science. For more than two hundred years, it has been presenting world-class science and engineering to the global marketplace...

...

September 12, 2014Delphi to C# .NET, United States

Our client was a U.S.-based health insurance company providing care services since six decades through its extensive network of hospitals and other institutions.

...

Feedback

It’s been pleasure that I found your tool for migrating Delphi to C#.NET. And I also see that it seamlessly migrates the Delphi features to C#.

Read more
Industry Events