Conversor de Delphi a Java




Migración de Delphi a Java






Ispirer MnMTK 2015 convierte aplicaciones Delphi en Java.


Esta demo muestra cómo Ispirer MnMTK puede convertir Delphi a Java.






Funciones de conversión



Migrar a Delphi Java


  • Convierte código fuente Delphi  (* .pas) a los paquetes de clases en Java 



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 conversión se basa en la forma de inicialización. La Clase Java convertida tiene un enlace al formulario de JFrame y se inicializa en el constructor. SQLWays utiliza el procedimiento addActionListener con la creación anónima de Action añadiendo a los controladores de eventos de botones y un método sustituto llamado  actionPerformed.


  • Convierte los forms de Delphi (* .dfm) a archivos  frames de Java de la interfaz de usuario (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);
}
}
 




DelphiJava
Migrar a Delphi JavaMigrar a Delphi Java




Archivos DFM constan de varias propiedades. Para estos guiones las clases de Java SQLWays ha generado una vista. Los Forms de Delphi se convierten a Java JFrame con el mismo nombre. SQLWays crea análogos elementos de Delphien los que los campos de la clase son iguales para todos. Las Propiedades del molde están en el constructor de la clase con sus propiedades según el método especificado.


  • Convierte  acceso a datos de Delphi (BDE, ADO, etc.) a los programas Java de acceso a base de datos (JDBC, Hibernate, par, 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();
}
}
}
 

 




DelphiJava
Migrar a Delphi JavaMigrar a Delphi Java




Es un ejemplo de la conversión SQLWays DBGrid con el uso TADOConnection TADOQuery y TDataSource. Como resultado SQLWays generados con JTable llenan la clase Java de la base de datos. También SQLWays pueden cambiar automáticamente, los maps XML se  cambian por tablas de la base de datos.


  • Convierte paquetes Delphi (* .dpk) a paquetes Java con Classen





¿Por SQLWays?



SQLWays automatiza todo el proceso de migración para su aplicación Delphi existente para Java. Tanto más cuanto más se utiliza SQLWays ya que puede eliminar los riesgos ordinarios y reducir los gastos internos de manera significativa. Todos los beneficios están disponibles a un precio razonable, por lo que SQLWays es una herramienta muy atractiva para un tipo de proyectos.


Nuestra garantía de  tecnología de conversión:


  • Código Legible y mantenible
    generación de código legible y mantenible con la calidad de la conversión manual

  • Transformación de código y refactorización
    transformación código con el uso de las mejores prácticas de Java sin la emulación de la tecnología antigua en la nueva plataforma

  • Las tecnologías más modernas
    Ya que utilizan los frames y las tecnologías de Java

  • Código Java puro
    No hay bibliotecas (bibliotecas) de Ispirer o IP a usarse después de la conversión



SQLWays es eficiente para la conversión de grandes secuencias de comandos, que contienen miles o millones de líneas de código:


  • Resuelve automáticamente las dependencias
    puede resolver automáticamente las dependencias y conflictos entre ellas.

  • Configuraciones
    pueden leer información de varios archivos de configuración y de proyecto (archivos de configuración SQLWays, archivos .xml)

  • Rápida y potente personalización
    capas de abstracción, patrón reutilizable para la conversión,  conversión del lenguaje interno y herramientas de personalización.





Puede descargar ejemplos de código fuente Delphi y los resultados de la transformación:







No hay comentarios:

Publicar un comentario

Simulación del movimiento de los electrones en un campo electrico

Espectacular simulación realizada con OpenGL del movimiento de los electrones cuando atraviesan un campo eléctrico. Como muestra la image...