100% Automation
Due to the customization, the manual work after migration will be minimized or eliminated.
Delivering you an intelligent and high quality result in due time!
Do you need to convert your Delphi application to C#? In this case, Ispirer products will be the perfect solution for your project!
Human-written code in each project has its own specifics. It may seem difficult to obtain a high level of automated conversion. With Ispirer it will be a smooth transition. The main advantage of Ispirer Toolkit is the personalization for your conversion project. As a result, you will replace the old technology with all its downsides. The outcome will be a new application without any middleware used afterwards.
Automated conversion of Delphi to C# with the help of our tool makes it possible to significantly reduce the time and expenses as compared to manual rewriting of the application. The following approach allows to ensure high quality of automated conversion:
Our experienced team can provide you with a turnkey migration service and convert your entire Delphi application to C#, delivering you a ready-to-use application in due time. Our responsibilities include not only professional analysis, assessment, performance and testing of your migration, but also services such as adding new or changing existing functionality of the application.
If you want to get an intermediate result of the converted Delphi code in the C# language, the Ispirer team will be glad to provide you with a basic migration service. As a result, you will get code that is optimized to the compilable level. Further, you will have to independently bring the application to a fully functional state in accordance with your requirements.
You are free to choose a preferred option. Nevertheless, we can provide an estimate of both the Tool and the Service, and give professional advice.
Ispirer Toolkit automates the entire project conversion from Delphi to C#. The tool processes the project file, automatically finds and converts all its contents. Ispirer offers conversion to a .NET application based not only on the desktop, but also on the Web architecture.
Delphi | C# | |
---|---|---|
Project Files | Files DPR | Files CSPROJ, USER |
Business Logic | Code in Pascal | Code in C# |
GUI | Forms DFM | Desktop (WinForms, WPF), Web (ReactJS, AngularJS) |
Database Access | BDE, ADO | ADO.NET, LINQ |
Сhoosing Ispirer Toolkit to migrate Delphi to C# you eliminate most of associated risks and considerably reduce internal efforts.
You will definitely convert your current Delphi technology to C# without any middleware used after the process. All these benefits are available at reasonable and competitive costs that makes Ispirer Toolkit even more attractive conversion tool for this project type.
Check out how Ispirer Toolkit automatically converts Transact-SQL application.
Drop us a line, if you have any business inquiries or questions regarding your Delphi conversion project. Ispirer experts will demonstrate our solutions and answer any questions you may have!
Contact usIspirer Toolkit analyzes all object dependencies during the conversion process and provides not only line-by-line conversion, but resolves type conversions as well. In addition, the software understands and transforms the necessary inheritance dependencies. It parses the entire source code, builds an internal tree with all the information about the objects, and uses it in the migration process. For more information review the code samples below.
var CanClose: Boolean; CustNo: Double; DBPath: string; Key: Char; I: Integer; RSCON: TIniFile;
bool CanClose; double CustNo; string Dbpath; char Key; int I; IniFile RSCON = null; //class IniFile implemented in AdditionalClasses
unit Splash; interface uses SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TSplashForm = class(TForm) Panel1: TPanel; Label3: TLabel; Bevel1: TBevel; Label1: TLabel; Image1: TImage; end; var SplashForm: TSplashForm; implementation {$R *.dfm} end.
using System; using System.IO; using System.Data; using System.Drawing; using System.Windows; using System.Windows.Forms; using System.Collections.Generic; namespace Splash { public partial class TSplashForm : Form { public TSplashForm() { InitializeComponent(); } } public partial class SplashUnit { } }
object SplashForm: TSplashForm Left = 204 Top = 123 AutoScroll = False ActiveControl = Panel1 BorderIcons = [] BorderStyle = bsNone ClientHeight = 178 ClientWidth = 168 Font.Color = clBlack Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] PixelsPerInch = 96 Position = poScreenCenter TextHeight = 13 object Panel1: TPanel Left = 0 Top = 0 Width = 168 Height = 178 Align = alClient BevelInner = bvLowered Color = clSilver TabOrder = 0 object Label3: TLabel Left = 23 Top = 125 Width = 123 Height = 19 Caption = 'Marine Adventures' Font.Color = clBlack Font.Height = -16 Font.Name = 'Times New Roman' Font.Style = [fsItalic, fsUnderline] ParentFont = False end object Bevel1: TBevel Left = 10 Top = 150 Width = 147 Height = 2 Style = bsRaised end object Label1: TLabel Left = 60 Top = 158 Width = 47 Height = 13 Caption = 'Loading...' end object Image1: TImage Left = 40 Top = 11 Width = 87 Height = 113 Picture.Data = { } end end end
namespace Splash { partial class TSplashForm { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.Panel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.Image1)).BeginInit(); this.SuspendLayout(); // // Panel1 // this.Panel1.Controls.Add(this.Label3); this.Panel1.Controls.Add(this.Bevel1); this.Panel1.Controls.Add(this.Label1); this.Panel1.Controls.Add(this.Image1); this.Panel1.Name = "Panel1"; this.Panel1.TabIndex = 0; // // Label3 // this.Label3.AutoSize = true; this.Label3.Font = new System.Drawing.Font("Times New Roman", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Italic | System.Drawing.FontStyle.Underline)))); this.Label3.ForeColor = System.Drawing.Color.Black; this.Label3.Name = "Label3"; this.Label3.TabIndex = 0; this.Label3.Text = "Marine Adventures"; // // Bevel1 // this.Bevel1.Name = "Bevel1"; this.Bevel1.TabIndex = 1; // // Label1 // this.Label1.AutoSize = true; this.Label1.Name = "Label1"; this.Label1.TabIndex = 2; this.Label1.Text = "Loading..."; // // Image1 // this.Image1.Image = ((System.Drawing.Image)(resources.GetObject("Image1.Image"))); this.Image1.Name = "Image1"; this.Image1.TabIndex = 3; this.Image1.TabStop = false; // // TSplashForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; this.Controls.Add(this.Panel1); this.ForeColor = System.Drawing.Color.Black; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Name = "TSplashForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "SplashForm"; this.Panel1.ResumeLayout(false); this.Panel1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.Image1)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.Panel Panel1; private System.Windows.Forms.Label Label3; private System.Windows.Forms.Panel Bevel1; private System.Windows.Forms.Label Label1; private System.Windows.Forms.PictureBox Image1; } }
if FromEdit.Text = '' then Result := 0 else Result := StrToDate(FromEdit.Text);
if (FromEdit.Text == string.Empty) { getFromDate_result = DateTime.FromOADate(0); } else { getFromDate_result = Convert.ToDateTime(FromEdit.Text); }
for I := 0 to Application.ComponentCount - 1 do begin if Application.Components[I] is TForm then begin F := TForm(Application.Components[I]); if (F <> Self) and (F.Visible) then F.Close; end; end;
for (I = 0; I <= this.Controls.Count - 1; I++) { { F = ((Form)(this.Controls[I] as object)); if ((F != this) && (F.Visible)) { F.Close(); } } }
while not Items.EOF do Items.Delete;
while (!Items.EOF) { Items.Delete(); }
try Items.First; finally DeletingItems := False; end;
try { Items.MoveFirst(); } finally { DeletingItems = false; }