séquence
J'ai installé Delphi à 8h00. Le premier sentiment à ce moment-là a été déçu parce que la vision VCL familière avait disparu; Plus important encore, je n'ai aucune confiance dans l'utilisation de Delphi pour le développement b / s. Après un certain temps, je me suis tourné vers la plate-forme Java.
Mais plus tard, j'ai vu qu'Asp.net était vraiment bon, et Delphi pouvait l'implémenter, ce qui m'a donné l'envie de revoir mon vieil ami. Mais je n'ai pas eu le temps d'apprendre à ce moment-là, donc je ne l'ai pas bien compris. Je suis très intéressé par les implémentations Intraweb et ASP.NET et je voudrais essayer. Plus tard, le procès de C # Builder1.0 m'a donné une bonne impression de Borland, mais je sentais toujours que c'était un suiveur et n'avait plus le pouvoir de rivaliser avec la SEP. Cela me rappelle un Garfield disant que si vous ne pouvez pas battre vos ennemis, la meilleure façon est de les rejoindre.
Aujourd'hui, j'ai une autre attitude envers Delphi. Ne demande plus que ce soit le meilleur et le plus rapide, mais vous espérez que vous pourrez utiliser Delphi en b / s et pensez qu'il est facile à utiliser, ce qui est suffisant. Quant à son apparence et à ses changements d'espace, après Delphi8, j'ai commencé à l'accepter.
Lorsque j'ai accidentellement obtenu la version d'essai de Delphi2005 envoyé par Borland, je voulais obtenir un jeu populaire et je voulais vraiment l'essayer. Cependant, l'enregistrement de Borland est trop "chinois" et je me suis fait courir en ligne pour obtenir une machine d'inscription. Il n'est pas très utilisé pour ne pas être un utilisateur de version D.
(I) Bonjour le monde.
Delphi2005 est un environnement intégré, y compris Delphi et C #. Je pense que Borland a un problème avec la dénomination de ce logiciel.
Écrivons d'abord Hello World en utilisant Delphi. En 2005, il y avait trois façons différentes de développer Delphi, et l'environnement d'application naturel était également différent. Ils sont:
1 application vClForms pour .net
2 Application WindowsForms pour .net
3 Application VClForms pour Win32.
Voici Hello World de trois manières.
1 application vClForms pour .net
Code d'unité:
unité unité 1;
interface
usages
Windows, messages, systèmes, variantes, classes, graphiques, contrôles, formulaires,
Dialogues, stdctrls;
taper
Tform1 = classe (tform)
Button1: Tbutton;
Edit1: Tedit;
Procédure Button1Click (expéditeur: tobject);
Privé
{Déclarations privées}
publique
{Déclarations publiques}
fin;
var
FORM1: TFORM1;
Mise en œuvre
{$ R * .dfm}
Procédure tform1.button1Click (expéditeur: tobject);
Commencer
edit1.text: = 'Hello World.';
fin;
fin.
Code de formulaire:
objet Form1: TForm1
Gauche = 0
Haut = 0
Largeur = 281
Hauteur = 138
Légende = 'Form1'
Color = clbtnface
Font.Charset = Default_Charset
Font.Color = ClwindowText
Font.Height = -11
Font.name = 'Tahoma'
FONT.STYLE = []
OldCreateOrder = False
Pixelsperinch = 96
Textheight = 13
Button objet 1: TBUTTON
Gauche = 88
TOP = 56
Largeur = 75
Hauteur = 25
Légende = 'Button1'
TabOrder = 0
OnClick = Button1click
fin
Objet Edit1: Tedit
Gauche = 8
En haut = 8
Largeur = 249
Hauteur = 21
TabOrder = 1
fin
fin
Cela ne semble pas être différent du développement précédent Win32. L'unité et la forme sont séparées, et sont traitées et persistantes séparément. Dans 2, ces deux œuvres sont fusionnées dans un fichier PAS.
2 Application WindowsForms pour .net
Unit WinForm;
interface
usages
System.Drawing, System.Collections, System.ComponentModel,
System.Windows.Forms, System.Data;
taper
Twinform = class (System.windows.forms.form)
{$ Région 'Code géré concepteur'}
strict privé
/// <résumé>
/// Variable de concepteur requise.
/// </summary>
Composants: System.ComponentModel.Container;
TextBox1: System.Windows.Forms.TextBox;
Button1: System.Windows.Forms.button;
/// <résumé>
/// Méthode requise pour la prise en charge du concepteur - Ne modifiez pas
/// Le contenu de cette méthode avec l'éditeur de code.
/// </summary>
procédure initialIBomponent;
Procédure Button1_Click (Sender: System.Object; E: System.EventArgs);
{$ Endregion}
strict protégé
/// <résumé>
/// Nettoyez toutes les ressources utilisées.
/// </summary>
procédure disposée (disposition: booléen);
Privé
{Déclarations privées}
publique
constructeur créé;
fin;
[assemblage: runtimeRequiredAttribute (typeof (twinform))]]
Mise en œuvre
{$ Autobox sur}
{$ Region 'Windows Form Designer Généré Code'}
/// <résumé>
/// Méthode requise pour la prise en charge du concepteur - Ne modifiez pas
/// Le contenu de cette méthode avec l'éditeur de code.
/// </summary>
procédure twinform.InitializEcomponent;
Commencer
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';
Inclure (self.button1.click, self.button1_click);
//
// Twinform
//
Self.autoscalebaseSize: = 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 (false);
fin;
{$ Endregion}
Procédure Twinform.Dispose (disposition: booléen);
Commencer
Si vous éliminez alors
Commencer
Si les composants <> nul alors
Composants.Dispose ();
fin;
Disser (disposer) hérité;
fin;
Constructeur Twinform.Create;
Commencer
hérité de création;
//
// requis pour la prise en charge du concepteur de formulaire Windows
//
InitiAnizeComponent;
//
// TODO: Ajouter n'importe quel code de constructeur après l'appel initialIcomposant
//
fin;
procédure twinform.button1_click (expéditeur: System.Object; e: System.EventArgs);
Commencer
TextBox1.Text: = 'Hello World!';
fin;
fin.
3 Application VClForms pour Win32.
Son code est exactement le même que 1.
Enfin, il est écrit Helloworld en C #.
Utilisation du système;
Utilisation de System.Drawing;
Utilisation de System.Collections;
Utilisation de System.ComponentModel;
Utilisation de System.Windows.Forms;
Utilisation de System.Data;
Namespace Project1
{
/// <résumé>
/// DESCRIPTION RÉSUMÉ DE WINFORM.
/// </summary>
classe publique WinForm: System.Windows.Forms.form
{
/// <résumé>
/// Variable de concepteur requise.
/// </summary>
System privé.componentModel.Container Components = NULL;
System privé.Windows.Forms.TextBox TextBox1;
System privé.windows.forms.button Button1;
public winform ()
{
//
// requis pour la prise en charge du concepteur de formulaire Windows
//
Initializecomponent ();
//
// TODO: Ajouter n'importe quel code de constructeur après l'appel initialIcomposant
//
}
/// <résumé>
/// Nettoyez toutes les ressources utilisées.
/// </summary>
Protégé de l'odeur de substitution Void Disser (Bool Disosing)
{
si (disposition)
{
if (composants! = null)
{
Composants.Dispose ();
}
}
base.sispose (disposer);
}
#Region Windows Form Form Code généré du concepteur
/// <résumé>
/// Méthode requise pour la prise en charge du concepteur - Ne modifiez pas
/// Le contenu de cette méthode avec l'éditeur de code.
/// </summary>
private void initializEcomposent ()
{
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";