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