secuencia
Instalé Delphi cuando eran las 8:00. El primer sentimiento en ese momento fue decepcionante porque la visión familiar de VCL se había ido; Más importante aún, no tengo confianza en el uso de Delphi para el desarrollo de B/S. Después de un tiempo de molestia, recurrí a la plataforma Java.
Pero más tarde, vi que Asp.net era realmente bueno, y Delphi podría implementarlo, lo que me dio la necesidad de ver a mi viejo amigo de regreso. Pero no tuve tiempo de aprender en ese momento, así que no lo entendí del todo. Estoy muy interesado en las implementaciones de Intraweb y ASP.NET y me gustaría intentarlo. Más tarde, el juicio de C# Builder1.0 me dio una buena impresión de Borland, pero todavía sentí que era un seguidor y ya no tenía el poder de competir con la EM. Esto me recuerda a un Garfield que dice que si no puedes vencer a tus enemigos, la mejor manera es unirte a ellos.
Hoy tengo otra actitud hacia Delphi. Ya no exige que sea el mejor y más rápido, pero espera que pueda usar Delphi en B/S y piense que es fácil de usar, lo cual es suficiente. En cuanto a sus cambios de apariencia y espacio, después de Delphi8, he comenzado a aceptarlo.
Cuando accidentalmente obtuve la versión de prueba de Delphi2005 enviada por Borland, quería obtener un juego popular y realmente quería probarlo. Sin embargo, el registro de Borland es demasiado "chino" y me hice ejecutar en línea para obtener una máquina de registro. No está muy acostumbrado a no ser un usuario de la versión D.
(I) Hola mundo.
Delphi2005 es un entorno integrado, que incluye Delphi y C#. Siento que Borland tiene un problema con el nombre de este software.
Escribamos Hello World usando Delphi primero. En 2005, había tres formas diferentes de desarrollar Delphi, y el entorno de aplicación natural también era diferente. Ellos son:
1 Aplicación VCLForms para .NET
2 Aplicación de Windowsforms para .NET
3 VCLFORMS Aplicación para WIN32.
Aquí hay Hello World de tres maneras.
1 Aplicación VCLForms para .NET
Código de unidad:
Unidad Unidad1;
interfaz
usos
Windows, mensajes, sysutils, variantes, clases, gráficos, controles, formularios,
Diálogo, stdctrls;
tipo
TForm1 = class (tForm)
Botón 1: tbutton;
Edit1: tedit;
Procedimiento botón1Click (remitente: tobject);
Privado
{Declaraciones privadas}
público
{Declaraciones públicas}
fin;
varilla
Form1: tform1;
Implementación
{$ R *.dfm}
procedimiento tForm1.Button1Click (remitente: tobject);
Comenzar
edit1.Text: = 'Hello World.';
fin;
fin.
Código de formulario:
Formulario de objeto1: TForm1
Izquierda = 0
Arriba = 0
Ancho = 281
Altura = 138
Subtítulos = 'form1'
Color = clbtnface
Font.charset = default_charset
Font.color = clwindowtext
Fuente .Height = -11
Font.name = 'Tahoma'
Font.style = []
OldCreateRoRord = falso
Pixelsperinch = 96
Textheight = 13
Botón del objeto1: tbutton
Izquierda = 88
Arriba = 56
Ancho = 75
Altura = 25
Subtítulos = 'Button1'
Taborder = 0
OnClick = Button1 Click
fin
Edit de objeto1: TEDIT
Izquierda = 8
Arriba = 8
Ancho = 249
Altura = 21
Taborder = 1
fin
fin
Esto parece no ser diferente del desarrollo Win32 anterior. La unidad y la forma están separadas, y se procesan y persisten por separado. En 2, estos dos trabajos se fusionan en un archivo PAS.
2 Aplicación de Windowsforms para .NET
Unidad WinForm;
interfaz
usos
System.Drawing, System.Collections, System.ComponentModel,
System.Windows.Forms, System.Data;
tipo
Twinform = class (system.windows.forms.form)
{$ Código administrado del diseñador de la región '}
estricto privado
/// <summary>
/// Variable de diseño requerida.
/// </summary>
Componentes: System.ComponentModel.Container;
Textbox1: system.windows.forms.textbox;
Botón1: System.Windows.Forms.Button;
/// <summary>
/// Método requerido para soporte de diseñador: no modifique
/// El contenido de este método con el editor de códigos.
/// </summary>
procedimiento inicializeComponent;
Procedimiento Button1_Click (remitente: system.object; e: system.eventargs);
{$ Endregion}
protegido estricto
/// <summary>
/// Limpia cualquier recurso que se use.
/// </summary>
procedimiento deseche (eliminación: boolean);
Privado
{Declaraciones privadas}
público
constructor crear;
fin;
[Asamblea: RuntimequiredAttribute (typeof (twinform))]
Implementación
{$ AutoBox on}
{$ Region 'Region' Windows Form Genered Code '}
/// <summary>
/// Método requerido para soporte de diseñador: no modifique
/// El contenido de este método con el editor de códigos.
/// </summary>
procedimiento Twinform.initializeComponent;
Comenzar
Self.textbox1: = system.windows.forms.textbox.create;
Self.button1: = system.windows.forms.button.create;
Self.suspendLayout;
//
// Textbox1
//
Self.textbox1.location: = system.drawing.point.create (72, 40);
Self.textbox1.name: = 'textbox1';
Self.textbox1.size: = system.drawing.size.create (152, 21);
Self.textbox1.tabindex: = 0;
Self.TextBox1.Text: = '';
//
// botón1
//
Self.button1.location: = system.drawing.point.create (80, 160);
Self.button1.name: = 'Button1';
Self.button1.size: = system.drawing.size.create (136, 32);
Self.button1.tabindex: = 1;
Self.button1.Text: = 'Button1';
Incluir (self.button1.click, self.button1_click);
//
// gemelo
//
Self.autoscalebasesize: = system.drawing.size.create (6, 14);
Self.clientize: = system.drawing.size.create (292, 273);
Self.controls.add (self.button1);
Self.controls.add (self.textbox1);
Self.name: = 'twinform';
Self.text: = 'winform';
Self.resumelayout (falso);
fin;
{$ Endregion}
procedimiento twinform.dispose (disposición: booleano);
Comenzar
Si la elimina entonces
Comenzar
Si componentes <> nil entonces
Componentes.dispose ();
fin;
deseche heredado (disposición);
fin;
constructor twinform.create;
Comenzar
creación hereditaria;
//
// requerido para el soporte de diseñador de formulario de Windows
//
InicializeComponent;
//
// TODO: Agregue cualquier código de constructor después de la llamada InitializeComponent
//
fin;
procedimiento twinform.button1_click (remitente: system.object; e: system.eventargs);
Comenzar
TextBox1.Text: = '¡Hola mundo!';
fin;
fin.
3 VCLFORMS Aplicación para WIN32.
Su código es exactamente el mismo que 1.
Finalmente, es helloworld escrito en C#.
usando el sistema;
usando System.Drawing;
usando System.Collections;
usando System.ComponentModel;
usando System.Windows.Forms;
usando System.Data;
Proyecto de espacio de nombres1
{
/// <summary>
/// Descripción resumida para WinForm.
/// </summary>
Public Class WinForm: System.windows.forms.Form
{
/// <summary>
/// Variable de diseño requerida.
/// </summary>
system private.componentModel.Container Components = NULL;
System.windows.forms.TextBox TextBox1;
System.Windows.Forms.Button Button1;
Public WinForm ()
{
//
// requerido para el soporte de diseñador de formulario de Windows
//
InicializeComponent ();
//
// TODO: Agregue cualquier código de constructor después de la llamada InitializeComponent
//
}
/// <summary>
/// Limpia cualquier recurso que se use.
/// </summary>
anulación protegida anulando la eliminación (eliminación de bool)
{
if (disposición)
{
if (componentes! = nulo)
{
componentes.dispose ();
}
}
base.pise (deseche);
}
#Código generado por el diseñador de formulario de Windows de región
/// <summary>
/// Método requerido para soporte de diseñador: no modifique
/// El contenido de este método con el editor de códigos.
/// </summary>
Vacío privado InitializeComponent ()
{
this.textbox1 = new System.windows.Forms.TextBox ();
this.Button1 = new System.windows.Forms.Button ();
this.suspendLayout ();
//
// Textbox1
//
this.textbox1.location = new System.Drawing.Point (72, 88);
this.textbox1.name = "textbox1";
this.textbox1.size = new System.Drawing.Size (120, 21);
this.textbox1.tabindex = 0;
this.TextBox1.Text = "TextBox1";