تسلسل
لقد قمت بتثبيت Delphi عندما كان الساعة 8:00. كان الشعور الأول في ذلك الوقت خيبة أمل لأن رؤية VCL المألوفة قد اختفت الأهم من ذلك ، ليس لدي أي ثقة في استخدام Delphi لتطوير B/S. بعد فترة من الانزعاج ، التفتت إلى منصة Java.
لكن في وقت لاحق ، رأيت أن ASP.NET كان جيدًا حقًا ، وكان بإمكان دلفي تنفيذه ، مما أعطاني الرغبة في رؤية صديقي القديم. لكن لم يكن لدي وقت للتعلم في ذلك الوقت ، لذلك لم أفهم ذلك تمامًا. أنا مهتم جدًا بتطبيقات intraweb و asp.net وأرغب في تجربتها. في وقت لاحق ، أعطتني محاكمة C# Builder1.0 بعض الانطباع الجيد عن بورلاند ، لكنني ما زلت شعرت أنه كان متابعًا ولم يعد لديه القدرة على التنافس مع MS. هذا يذكرني بجارفيلد قائلاً إنه إذا لم تتمكن من التغلب على أعدائك ، فإن أفضل طريقة هي الانضمام إليهم.
اليوم ، لدي موقف آخر تجاه دلفي. لم يعد يطالب بأن يكون الأفضل والأسرع ، ولكن يأمل أن تتمكن من استخدام Delphi في B/S واعتقد أنه سهل الاستخدام ، وهو ما يكفي. أما بالنسبة لمظهره وتغيير المساحة ، فقد بدأت في قبولها بعد كل شيء.
عندما حصلت بطريق الخطأ على الإصدار التجريبي من Delphi2005 أرسلت بواسطة Borland ، أردت الحصول على لعبة شهيرة وأردت حقًا تجربتها. ومع ذلك ، فإن تسجيل بورلاند هو "صيني" للغاية وجعلتني أركض عبر الإنترنت للحصول على آلة تسجيل. لا يعتمد جدًا على عدم كونك مستخدمًا للإصدار D.
(أنا) مرحبا العالم.
Delphi2005 هي بيئة متكاملة ، بما في ذلك Delphi و C#. أشعر أن بورلاند لديه مشكلة في تسمية هذا البرنامج.
دعنا نكتب Hello World باستخدام Delphi أولاً. في عام 2005 ، كانت هناك ثلاث طرق مختلفة لتطوير Delphi ، وكانت بيئة التطبيق الطبيعية مختلفة أيضًا. هم:
1 تطبيق VClforms لـ .NET
2 تطبيق Windowsforms لـ .NET
3 VCLFORMS Application for Win32.
هنا Hello World بثلاث طرق.
1 تطبيق VClforms لـ .NET
رمز الوحدة:
الوحدة 1 ؛
واجهة
يستخدم
Windows ، الرسائل ، sysutils ، المتغيرات ، الفئات ، الرسومات ، عناصر التحكم ، النماذج ،
مربعات الحوار ، stdctrls ؛
يكتب
tform1 = فئة (tform)
Button1: Tbutton ؛
EDIT1: TEDIT ؛
الإجراءات button1click (المرسل: tobject) ؛
خاص
{إعلانات خاصة}
عام
{الإعلانات العامة}
نهاية؛
var
Form1: Tform1 ؛
تطبيق
{$ r *.dfm}
الإجراء tform1.button1click (المرسل: tobject) ؛
يبدأ
edit1.text: = 'Hello World.' ؛
نهاية؛
نهاية.
رمز النموذج:
نموذج الكائن 1: tform1
اليسار = 0
أعلى = 0
العرض = 281
الارتفاع = 138
Caption = 'Form1'
اللون = clbtnface
font.charset = default_charset
font.color = clwindowtext
font.Height = -11
font.name = 'tahoma'
font.style = []
Oldcreateorder = خطأ
Pixelsperinch = 96
Textheight = 13
كائن Button1: Tbutton
اليسار = 88
أعلى = 56
العرض = 75
الارتفاع = 25
Caption = 'button1'
taborder = 0
onclick = button1click
نهاية
كائن EDIT1: TEDIT
اليسار = 8
أعلى = 8
العرض = 249
الارتفاع = 21
taborder = 1
نهاية
نهاية
يبدو أن هذا لا يختلف عن تطوير Win32 السابق. يتم فصل الوحدة والنموذج ، ويتم معالجتها واستمرارها بشكل منفصل. في 2 ، يتم دمج هذين العملين في ملف PAS.
2 تطبيق Windowsforms لـ .NET
وحدة winform ؛
واجهة
يستخدم
System.Drawing ، System.Collections ، System.componentModel ،
System.Windows.forms ، system.data ؛
يكتب
twinform = class (system.windows.forms.form)
{$ Region 'Designer Managed Code'}
خاصة صارمة
/// <summary>
/// متغير المصمم المطلوب.
/// </summary>
المكونات: System.componentModel.container ؛
textbox1: system.windows.forms.textbox ؛
button1: system.windows.forms.button ؛
/// <summary>
/// طريقة مطلوبة لدعم المصمم - لا تعدل
/// محتويات هذه الطريقة مع محرر التعليمات البرمجية.
/// </summary>
الإجراء initializeComponent ؛
الإجراء button1_click (المرسل: System.Object ؛ e: System.EventArgs) ؛
{$ endregion}
محمية صارمة
/// <summary>
/// تنظيف أي موارد تستخدم.
/// </summary>
الإجراء التخلص (التخلص من: Boolean) ؛
خاص
{إعلانات خاصة}
عام
إنشاء مُنشئ ؛
نهاية؛
[التجميع: RunTimerequiredattribute (typeof (Twinform))]
تطبيق
{$ autobox on}
{$ Region 'Windows Forms Designer Code'}
/// <summary>
/// طريقة مطلوبة لدعم المصمم - لا تعدل
/// محتويات هذه الطريقة مع محرر التعليمات البرمجية.
/// </summary>
الإجراء twinform.initializeComponent ؛
يبدأ
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' ؛
تشمل (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 (خطأ) ؛
نهاية؛
{$ endregion}
الإجراء twinform.dispose (التخلص من: منطقية) ؛
يبدأ
إذا التخلص من ذلك
يبدأ
إذا كانت مكونات <> nil ثم
مكونات. dispose () ؛
نهاية؛
تخلص من الموروثة (التخلص) ؛
نهاية؛
مُنشئ Twinform.Create ؛
يبدأ
خلق ورث.
//
// مطلوب لدعم مصمم نموذج Windows
//
initializeComponent ؛
//
// TODO: أضف أي رمز مُنشئ بعد استدعاء initializeComponent
//
نهاية؛
الإجراء twinform.button1_click (المرسل: System.Object ؛ e: System.EventArgs) ؛
يبدأ
TextBox1.Text: = 'Hello World!' ؛
نهاية؛
نهاية.
3 VCLFORMS Application for Win32.
رمزها هو بالضبط نفس 1.
أخيرًا ، يتم كتابة HelloWorld في C#.
باستخدام النظام ؛
باستخدام system.drawing ؛
باستخدام System.Collections ؛
باستخدام System.componentModel ؛
باستخدام system.windows.forms ؛
باستخدام System.Data ؛
مساحة الاسم Project1
{
/// <summary>
/// الوصف الموجز لـ Winform.
/// </summary>
فئة عامة winform: system.windows.forms.form
{
/// <summary>
/// متغير المصمم المطلوب.
/// </summary>
system system.componentmodel.container مكونات = null ؛
system.windows.forms.textbox spox1 ؛
system.windows.forms.button button1 ؛
وينفورم العام ()
{
//
// مطلوب لدعم مصمم نموذج Windows
//
initializeComponent () ؛
//
// TODO: أضف أي رمز مُنشئ بعد استدعاء initializeComponent
//
}
/// <summary>
/// تنظيف أي موارد تستخدم.
/// </summary>
التجاوز المحمي باطل التخلص (التخلص من منطق)
{
إذا (التخلص)
{
إذا (المكونات! = خالية)
{
مكونات. dispose () ؛
}
}
BASE.DISPOSE (التخلص) ؛
}
#Region Windows Formes Designer تم إنشاؤه
/// <summary>
/// طريقة مطلوبة لدعم المصمم - لا تعدل
/// محتويات هذه الطريقة مع محرر التعليمات البرمجية.
/// </summary>
private void 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" ؛