Mostrando entradas con la etiqueta Conversores. Mostrar todas las entradas
Mostrando entradas con la etiqueta Conversores. Mostrar todas las entradas

Conversor de Cabeceras API de C o C++ a Delphi

Conversion pack menu items




Por si alguna vez han tenido la necesidad de convertir units en C, C++ a Delphi aquí les dejo una utilidad freeware que les hará gran parte del trabajo. Según dice su autor no cubre todos los aspectos de la gramática en C, pero sí la mayoría por lo que después de hacer la conversión nos quedaría hacer un pequeño trabajo de detalle convirtiendo manualmente las líneas que el software no habría podido hacer.

Actualmente el soft implementa las siguientes funciones:






Conversor de Delphi a Cpp y de C a Delphi


Este post consta de dos partes, una es un programa (Delphi2Cpp) que convierte código fuente Delphi a C++ y la segunda es otro programa que convierte código C a Delphi.





1) CONVERSOR DE Delphi a C++





Migración de Delphi a C ++






Con Delphi de Windows se pueden crear aplicaciones rápidamente. Pero a veces es necesario acelerar su desarrollo a través de código optimizado, de modo que en algún momento se necesitará la migración de una aplicación de Delphi al lenguaje de programación C++ . Su desarrollo continuará ya sea con Delphi, donde el código es traducido en repetidas ocasiones, o bien continuará con  C++ Builder u otra herramienta.


La decisión de migrar a C++ bajó debido al alto coste de portar y lo difícil que era hasta ahora. Este requisito se reduce drásticamente con el programa Delphi2Cpp de conversión automática.





conversor "Delphi2Cpp"






Delphi2Cpp se basa en una completo analizador para Delphi 7, y produce resultados de traducción óptimos mediante el uso de la información de tipo de la VCL y otras unidades incluidas.


El código fuente no necesita ser preparado. Las definiciones condicionales de compilación se pueden configurar en las opciones de Delphi2Cpp. Un pre-procesamiento del código es traducido directamente.


Delphi2Cpp puede codificar todo C++ . El C++ Builder es particularmente adecuado debido a sus extensiones de lenguaje. Pero también existe la opción de código para otros compiladores como Visual C ++ o gcc .


Delphi2Cpp está disponible en dos versiones.


La interfaz de usuario de Delphi2Cpp:


Delphi2Cpp_Gui40.jpg





Traducción de catálogos de archivos con la versión Profesional de Delphi2Cpp:




Delphi2CppManager40.jpg





Comparación de la versión de estudiantes y la versión profesional







La siguiente tabla es un resumen general de las diferencias entre la versión de  estudiante y la versión profesional de Delphi2Cpp.
















Delphi2Cpp estudiante prof. 
Preprocessor + + 
Traductor + + 
Verwenung como herramienta de línea de comandos - + 
Separa pre-procesamiento y la traducción - + 
Archivo Administrador - + 
Tras la sustitución de identificadores - + 
Posibilidad Preparación de código Delphi - + 
Macros DECLARE_DYNAMIC, IMPLEMENT_DYNAMIC - + 
Generación de código C - + 
Definición de prefijos de propiedades - + 
Generación de espacios de nombres - + 
Anulación del "System.pas" - + 
Simulación de Delphi Meta-Características - + 







+ Característica Disponible 


- No es función disponible





Documentación on-line aquí





Novedades de la última versión



03.09.2015 Versión 1.7.0






{ Lo siguiente es traducido con "Google Translator" }







  • Secciones de código en el que "CPP" se define -como bloques {$ ifdef Cpp} - son opcionales ya que no se unifican en la ortografía, pero se copian fielmente. Es decir, entre otras cosas, mayúsculas / minúsculas ahora se mantienen sin cambios.

  • Los bucles de traducción simple se pueden generar ahora opcionalmente, lo que puede, sin embargo, dar un error en algunos casos. 

  • Constantes con tipo pueden ahora ser tratadas opcionalmente como constantes sin tipo. Así, el comportamiento actual de Delphi se reproduce donde estas constantes no se pueden cambiar en circunstancias normales.

  • Todos los espacios incluyendo saltos de línea antes "(* _ _ * ...)" y "(* _ _ * ...)" antes del primer token ahora estarán en C ++ .

  • Los registros se pasan por los valores de funciones, por lo que ya no se convierten en una constante de referencia (por ejemplo, const TRecord y rec), pero permanecen como parámetros de valor verdadero (TRecord rec).

  • "ShortInt" ya no se traduce incorrectamente como "int short" , sino como "char signed".

  • La inicialización automática de variables ahora se puede desactivar.

  • Muchas otras pequeñas mejoras






Descargar la versión demo






Delphi2Cpp se puede probar con una versión demo de forma gratuita sin límite de tiempo. El programa demo ofrece traducciones de la misma calidad que el programa bajo licencia. Sin embargo, la cantidad de código de salida para la parte de implementación de 10000 caracteres es limitado y la carga y el código de ahorro y opciones no es posible. Al comprar un Delphi2Cpp licencia un enlace a una versión de es Delphi2Cpp entregado, en el que todas las funciones del programa se puede desactivar por medio de la licencia.

















documentación en formato PDF (también en el instalador)





2) CONVERSOR DE C a Delphi






Convertidor del lenguaje C a Delphi: Convierte el codigo fuente  C a Delphi y Pascal   y por lo tanto ayuda a programar en aplicaciones C ; si tiene que traducir varios archivos funciona en modo secuencial por lotes, y también se pueden ejecutar desde la línea de comandos






C 2 Delphi convertidor



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:







Conversor MPEG4 a AVI con Delphi

MP4Cam2AVI es un conversor de archivos con formato MPEG4 a AVI, muy útil para los que tengan cámaras mpeg4.También soporta los formatos MJPEG y H263.



Viene con código fuente y licencia GNU.



Se puede descargar desde aquí:



http://sourceforge.net/projects/mp4cam2avi/



Cosas que se pueden hacer:



- Convertir y unir videos MPEG-4 ASP desde tu cámara a un único video DivX-compatible MPEG-4 para ser visto en un PC o DVD-MPEG4 player, preservando la calidad original;

- Modo Batch para convertir varios ficheros secuencialmente;

- Convierte películas*.MP4 (MPEG4 ASP) desde Nero Recode a un formato AVI compatible para un reproductor DVD-MPEG4;

- Convierte películas MJPEG desde cámaras de fotos a un DivX-AVI compatible MPEG-4 con un clic;

- Convierte videos H.264 (MPEG-4 AVC) *.MP4 al formato H.264 AVI, que podrán ser editables con VirtualDub y reproducibles con Windows Media Player (H.264 VfW se necesitará el codec(p.ej. el último FFDShow);

- Comprueba los clips MPEG-4 ASP/MJPEG antes de la conversión usando vista previa;

- Edita clips antes de la conversión usando timeline;

- Corrige el audio/video lag de algunas cámaras como el modelo Minolta A200

- Incorpora un filtro pasa-bajo (viene perfecto para la Sanyo Xacti C1)









Formatos de cámaras soportados:

MPEG4-AVC camcorders:
Sanyo: CG65
Casio: EX-V7, EX-S880, Z1200
Others: Aiptek GO-HD
MPEG4-ASP camcorders:
Sanyo: VPC-Ñ1, C4, C40, C5, C6, HD-1, HD-2
Olympus: C770 Movie
Sony: Sony DSC-M1, M2
Pentax: OptioMX, MX4, S5n, S5z, S6, A10
Samsung: Digimax V40, V50, V70, V700, V800, U-CA5, L85, VP-MX10A
Casio: EX-P505, EX-Z750, EX-Z850, EX-S500, EX-S600
Kodak V603, Z612, Z760, Z1275
Photo cameras with H.263 video:
Kodak DX4530
Photo cameras with MOV MJPEG video
Canon Tx1, Kodak LS753, Minolta A2, Minolta Dimage Z3, Nikon Coolpix 5200, Nikon 8400, Nikon E8800, Panasonic FX7, Panasonic FZ-1, Panasonic TZ5, Pentax 750Z, Olympus C-5000/C-5050/C-8080, Olympus mini digital, Pentax Optio X, Sanyo Xacti J1, Fuji S7000.


Formatos de entrada:
File type: *.MP4, *.MOV, *.AVI, *.3GP
(3gp support is experimental, no AMR audio)
Video: MPEG4 ASP, MPEG-4 AVC, MJPEG, H.263, Sorenson Video 3
Audio: AAC, PCM, u-Law, ADPCM, MP3

Formatos de salida:

File types: *.AVI
Video: Source video or XviD MPEG-4 ASP
Audio: Source audio, PCM or MP3






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...