Sequência
Eu instalei Delphi quando eram 8:00. O primeiro sentimento naquela época foi decepcionante porque a visão familiar do VCL se foi; Mais importante, não tenho confiança em usar o Delphi para o desenvolvimento da B/s. Depois de um tempo chateado, virei -me para a plataforma Java.
Mais tarde, porém, vi que o ASP.NET era muito bom, e Delphi poderia implementá -lo, o que me deu o desejo de ver meu velho amigo de volta. Mas não tive tempo de aprender naquele momento, então não entendi muito bem. Estou muito interessado nas implementações da Intraweb e do ASP.NET e gostaria de tentar. Mais tarde, o julgamento do C# Builder1.0 me deu uma boa impressão de Borland, mas eu ainda sentia que era um seguidor e não tinha mais o poder de competir com o MS. Isso me lembra um Garfield dizendo que, se você não pode vencer seus inimigos, a melhor maneira é se juntar a eles.
Hoje, tenho outra atitude em relação a Delphi. Não é mais exigente que seja o melhor e o mais rápido, mas espera que você possa usar o Delphi em B/S e achar que é fácil de usar, o que é suficiente. Quanto à sua aparência e espaço, depois de Delphi8, eu comecei a aceitar.
Quando acidentalmente recebi a versão de avaliação do Delphi2005 enviada por Borland, eu queria ter um jogo popular e realmente queria experimentá -lo. No entanto, o registro de Borland é muito "chinês" e eu me fez correr on -line para obter uma máquina de registro. Não está muito acostumado a não ser um usuário da versão D.
(I) Olá mundo.
Delphi2005 é um ambiente integrado, incluindo Delphi e C#. Eu sinto que Borland tem um problema com a nomeação deste software.
Vamos escrever Hello World usando o Delphi primeiro. Em 2005, havia três maneiras diferentes de desenvolver Delphi, e o ambiente de aplicação natural também era diferente. Eles são:
1 VCLFforms Aplicação para .NET
2 aplicativo WindowsForms para .NET
3 Vclforms Pedido de Win32.
Aqui estão o Hello World de três maneiras.
1 VCLFforms Aplicação para .NET
Código da unidade:
unidade de unidade1;
interface
usos
Janelas, mensagens, sysutils, variantes, classes, gráficos, controles, formulários,
Diálogos, stdctrls;
tipo
Tform1 = classe (tform)
Button1: tbutton;
Edit1: TEDIT;
Procedimento Button1Click (remetente: Tobject);
Privado
{Declarações privadas}
público
{Declarações públicas}
fim;
var
Form1: TForm1;
Implementação
{$ R *.dfm}
procedimento TForm1.Button1Click (remetente: TOBJECT);
Começar
edit1.Text: = 'Hello World.';
fim;
fim.
Código do formulário:
Objeto Form1: TForm1
Esquerda = 0
Top = 0
Largura = 281
Altura = 138
Legenda = 'Form1'
Cor = clbtnface
Font.charset = default_charset
Font.color = clwindowText
Font.Height = -11
Font.name = 'Tahoma'
Font.style = []
OldCreateOrder = False
Pixelsperinch = 96
Textheight = 13
Botão do objeto1: tbutton
Esquerda = 88
Topo = 56
Largura = 75
Altura = 25
Legenda = 'Button1'
Taborder = 0
OnClick = Button1Click
fim
Objeto Edit1: TEDIT
Esquerda = 8
Top = 8
Largura = 249
Altura = 21
Taborder = 1
fim
fim
Isso parece não ser diferente do desenvolvimento anterior do Win32. A unidade e o formulário são separados e são processados e persistidos separadamente. Em 2, esses dois trabalhos são mesclados em um arquivo PAS.
2 aplicativo WindowsForms para .NET
unidade winform;
interface
usos
System.Drawing, System.Collections, System.comPontModel,
System.Windows.Forms, System.Data;
tipo
TwinForm = classe (System.Windows.Forms.Form)
{$ Region 'Designer gerenciado Código'}
Estrito privado
/// <summary>
/// Variável de designer necessária.
/// </summary>
Componentes: System.componentModel.Container;
TextBox1: System.Windows.Forms.TextBox;
Button1: System.Windows.Forms.Button;
/// <summary>
/// Método necessário para suporte ao designer - Não modifique
/// O conteúdo deste método com o editor de código.
/// </summary>
procedimento inicializeComponent;
Procedimento Button1_Click (remetente: System.Object; e: System.EventarGs);
{$ Endregion}
Protegido rigoroso
/// <summary>
/// Limpe os recursos que estão sendo usados.
/// </summary>
Procedimento Disponity (Disposição: Booleano);
Privado
{Declarações privadas}
público
construtor Criar;
fim;
[Assembléia: RunTimeRedAttribute (TypeOf (Twinform))]
Implementação
{$ Autobox on}
{$ Region 'Windows Form Designer Gerated Code'}
/// <summary>
/// Método necessário para suporte ao designer - não modifique
/// O conteúdo deste método com o editor de código.
/// </summary>
procedimento twinform.initializeComponent;
Começar
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: = '';
//
// Button1
//
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);
//
// Twinform
//
Self.aUtroscaleBasesize: = System.Drawing.size.create (6, 14);
Self.clientsize: = 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);
fim;
{$ Endregion}
procedimento twinform.dispose (descartando: booleano);
Começar
Se estiver disposto então
Começar
Se componentes <> nil então
Components.dispose ();
fim;
disposição herdada (descartando);
fim;
construtor twinform.create;
Começar
Criar herdado;
//
// necessário para o suporte do designer de formulários do Windows
//
InicializeComponent;
//
// TODO: Adicione qualquer código do construtor após a chamada inicial do componente
//
fim;
Procedimento Twinform.Button1_Click (remetente: System.Object; E: System.Eventargs);
Começar
TextBox1.Text: = 'Hello World!';
fim;
fim.
3 Vclforms Pedido de Win32.
Seu código é exatamente o mesmo que 1.
Finalmente, é o Helloworld escrito em C#.
usando o sistema;
usando System.Drawing;
usando System.Collections;
usando o System.comPonsonModel;
usando System.Windows.Forms;
usando System.data;
Namespace Project1
{
/// <summary>
/// Descrição do resumo para Winform.
/// </summary>
Public Class Winform: System.Windows.Forms.Form
{
/// <summary>
/// Variável de designer necessária.
/// </summary>
private System.componentModel.Container Components = NULL;
private System.Windows.Forms.TextBox TextBox1;
private System.Windows.Forms.Button Button1;
public Winform ()
{
//
// necessário para o suporte do designer de formulários do Windows
//
InicializeComponent ();
//
// TODO: Adicione qualquer código do construtor após a chamada inicial do componente
//
}
/// <summary>
/// Limpe os recursos que estão sendo usados.
/// </summary>
Substituição protegida Void Dispose (descartando bool)
{
se (descartando)
{
if (componentes! = nulo)
{
components.dispose ();
}
}
base.Dispose (disposição);
}
#Region Windows Form Form Designer Código gerado
/// <summary>
/// Método necessário para suporte ao designer - Não modifique
/// O conteúdo deste método com o editor de código.
/// </summary>
private vazio inicializecomponent ()
{
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";