Grâce à l'outil Ispirer Migration and Modernization Toolkit il est désormais possible de convertir des applications depuis Delphi vers Java!
Aperçu général
Pourquoi Ispirer MnMTK?
Effectuez votre migration avec Ispirer Systems et profitez donc des avantages suivants que vous offre notre outil:
-
Cohérence et Intégration: automatisationjusqu'à 100%
-
Personnalisation rapide: individualisation et optimisation de la converson (1-3 jours ouvrables en moyenne)
-
Engagement pré-vente: nous démontrons une conversion complète au cours de l'évaluation avant que vous preniez une décision
- Prix Raisonnable: nous offrons une tarification souple
- Conversion Optimisée: en tant que résultat vous obtenez un code intelligent et maintenable, sans aucun middleware à utiliser après la conversion
Evaluation et Achat
L'évaluation de votre projet de migration permettra de mesurer les ressources nécessaires aussi bien que le coût de votre migration. Afin de faciliter ce processus, n'hésitez pas à remplir et nous envoyer en retour le questionnaire ci-dessous:
Ispirer Migration Solution
Delphi vers Java Commander
Caractéristiques de Conversion
Voici l'aperçu général de la conversion depuis Delphi vers Java à l'aide notre solution de migration:
- Convertit le code source Delphi avec business logic (*.pas) vers les paquets Java avec les classes
Delphi:
unit DemoCode;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Caption := 'Changed';
end;
end.
Java:
import java.awt.event.*;
public class DemoCode
{
TForm1 Form1 = null;
public DemoCode()
{
Form1 = new TForm1();
Form1.setVisible(true);
Form1.getButton1().addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent event)
{
Button1Click(null);
}
});
}
public void Button1Click(Object Sender)
{
Form1.getButton1().setText("Changed");
}
}
La conversion Pas est basée sur l’initialisation de forme en ajoutant les auditeurs aux boutons et la conversion de logique métier. Une classe Java convertie a un lien au JFrame form et l’initialise au sein du constructeur. Ispirer MnMTK utilise la méthode addActionListener avec la creation anonyme d’ActionListener afin d’ajouter event handler aux boutons et appeler la méthode nécessaire au sein d’actionPerformed.
- Convertit les fichiers Delphi Forms (*.dfm) vers Java UI Frameworks (Swing, SWT, Java FX, etc.)
Delphi:
object Form1: TForm1
Left = 0
Top = 0
Width = 554
Height = 289
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 232
Top = 128
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 0
OnClick = Button1Click
end
end
Java:
import javax.swing.*;
public class TForm1 extends JFrame
{
private static final long serialVersionUID = 1L;
private JButton Button1 = null;
public JButton getButton1()
{
return this.Button1;
}
public TForm1()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(0,0,593,305);
setTitle("Form1");
getContentPane().setLayout(null);
initTForm1();
}
private void initTForm1()
{
this.Button1 = new JButton();
//
// Button1
//
this.Button1.setBounds(232,128,75,25);
this.Button1.setText("Button1");
getContentPane().add(this.Button1);
}
}
Delphi |
|
Java |
|
|
|
Les fichiers dfm ont plusieurs propriétés. Pour ces scripts Ispirer MnMTK génère les classes view Java. Delphi forms sont convertis en Java JFrame avec les mêmes noms. Ispirer MnMTK crée les analogues d’éléments Delphi. Les propriétés de form sont spécifiées dans class constuctor, d’autres propriétés sont spécifiées dans la methode init…().
- Convertit Delphi Data Access (BDE, ADO, etc.) vers Java Database Access Frameworks (JDBC, Hibernate, Torque, etc.)
Delphi:
object Form1: TForm1
Left = 0
Top = 0
Width = 554
Height = 289
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 232
Top = 128
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 0
OnClick = Button1Click
end
end object Form2: TForm2
Left = 0
Top = 0
Width = 156
Height = 198
Caption = 'Test'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object DBGrid1: TDBGrid
Left = 32
Top = 8
Width = 81
Height = 120
DataSource = DataSource1
TabOrder = 0
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = 'Tahoma'
TitleFont.Style = []
Columns = <
item
Expanded = False
FieldName = 'col1'
Visible = True
end>
end
object ADOConnection1: TADOConnection
Connected = True
ConnectionString =
'Provider=MSDASQL.1;Persist Security Info=False;
User ID=sa;Data S' +
'ource=MSSQL_VMDBSRV002_ETEST'
Left = 24
Top = 136
end
object ADOQuery1: TADOQuery
Active = True
Connection = ADOConnection1
CursorType = ctStatic
Parameters = <>
SQL.Strings = (
'select col1 from tab1_test')
Left = 56
Top = 136
end
object DataSource1: TDataSource
DataSet = ADOQuery1
Left = 88
Top = 136
end
end
Java:
import java.awt.*;
import java.sql.*;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
public class TForm2 extends JFrame
{
private static final long serialVersionUID = 1L;
private JTable DBGrid1 = null;
private Connection ADOConnection1 = null;
private PreparedStatement ADOQuery1 = null;
private ResultSet DataSource1 = null;
public JTable getDBGrid1()
{
return this.DBGrid1;
}
public Connection getADOConnection1()
{
return this.ADOConnection1;
}
public PreparedStatement getADOQuery1()
{
return this.ADOQuery1;
}
public ResultSet getDataSource1()
{
return this.DataSource1;
}
public TForm2()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(0,0,172,229);
setTitle("Test");
getContentPane().setLayout(null);
initTForm2();
}
private void initTForm2()
{
DefaultTableModel DBGrid1TM = new DefaultTableModel();
DBGrid1TM.addColumn("col1");
this.DBGrid1 = new JTable(DBGrid1TM);
JPanel DBGrid1Panel = new JPanel();
DBGrid1Panel.setLayout(new BorderLayout());
JScrollPane DBGrid1ScrollPane = new JScrollPane(this.DBGrid1);
DBGrid1Panel.add(DBGrid1ScrollPane, BorderLayout.CENTER);
DBGrid1Panel.setBounds (32, 8,81,120);
getContentPane().add(DBGrid1Panel);
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl = "jdbc:sqlserver://vmdbsrv002:1433;
databaseName=etest;user=sa;password=Ispirer_1999;";
DriverManager.setLoginTimeout(30);
this.ADOConnection1 = DriverManager.getConnection(connectionUrl);
}
catch (SQLException | ClassNotFoundException e)
{
e.printStackTrace();
}
try
{
this.ADOQuery1 = ADOConnection1.prepareStatement(
"select col1 from tab1_test");
}
catch (SQLException e1)
{
e1.printStackTrace();
}
try
{
this.DataSource1 = ADOQuery1.executeQuery();
}
catch(SQLException e)
{
e.printStackTrace();
}
try
{
while(this.DataSource1.next())
{
Vector<Object> row = new Vector<Object>();
for
(int i = 1;
i <= this.DataSource1.getMetaData().getColumnCount(); i++)
{
row.addElement(this.DataSource1.getObject(i));
}
DBGrid1TM.addRow(row);
}
}
catch (SQLException e)
{
e.printStackTrace();
}
}
}
Delphi |
|
Java |
|
|
|
C’est un exemple de la conversion DBGrid avec l’utilisation de ADOConnection, TADOQuery et TDataSource. SQLWays génère Java class avec JTable rempli de la base de données. De plus, Ispirer MnMTK peut générer automatiquement Hibernate, Torque XML maps selon les tables de base de données.
- Convertit des paquets Delphi (*.dpk) vers les paquets Java avec classes
Contactez-nous pour en savoir plus.
|