الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تعلم:تحديث كودات VB6إلى كوداتVB.net

مغلق
بدأه eias في 4 سبتمبر 2005 · 5 رد · 2,562 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم..كل واحد منا كان يعمل على vb6 و عندما انتقل ل vb.net ترك في لغته القيدمة كودات غنية لم يجد منها بعد في

اللغة الجديدة..و لكن اليوم عندما كنت أبحث في أحد قوائم اللغة vb.net وجدت امر اسمه غريب وهو :

من القائمة Toolلأمر Upgrade Visual basic6 Code واضح من التسمية أنه

تحديث لكودات فيجوال بيسك 6 ..

دخلت و اكتشفت أنه يحدث كودات فيجوال القديمة أو إذا لم يستطع يدلك على موقع المعلومات التي تريدها في مكتبة MSDN.

و الطريقة هي التالية:

لنقل أنك فتح مشروع فيهButton وتريد أن تضع فيه كود قديم بلغة VB6 انقر على هذا الزر مرتين لتدخل صفحة الكود الخاصة

به و الآن والمؤشر بين السطرين :

 Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As 

System.EventArgs) Handles Button1.Click

 End Sub

اذهب للقائمة Tool ثم إلى .. Upgrade Visual basic6 Codeستظهر لك نافذة بها تبويبان الأول هو Code و الثاني

متعلق بتحديث الأدوات : يوجد صندوق نص اكتب كود الvb6فيه و سنأخذ هنا أمثلة لأنه للتحديث شروط:

1- تحديث الكودات:

بالنسبة لإظهار رسالة تحذير كنا نكتب في vb6:

MsgBox "Eias -The Crash", vbExclamation, "About!!"

الآن انسخ هذا الكود و ضعه في محرر Upgrade Visual basic6 Code ثم انقر الزر(طبعا بعد أن تتبع الخطوات السابقة )

Upgrade و اتنظر ال شريط التقدم حتى ينتهي البحث ثم ستغلق المحرر تلقائيا و يكتب

لك الكود بين السطرين في كود الزر

وهو سيصبح كالتالي في vb.net:

        MsgBox("Eias -The Crash", MsgBoxStyle.Exclamation, "About!!")

و الآن لنأخذ مثال آخر...المثال الآن سوف يكون أكثر تعقيدا أي أننا لن نعتمد على مكان واحد بل سيكون الكود مجزءو أيضا ستكون

هناك فكرة أخرى و هي كيف نعدل الكود المعدل سيتناسب من ما نريد:

لكي نعلم الوقت الذي مضى على تشغيل ال Windwos كنا نكتب في vb6 الكود التالي:

في قسم General كنا نكتب الكود:

Private Declare Function GetTickCount Lib "Kernel32" () As Long

و في حدث النقر على الزر كنا نكتب الكود:

Me.Caption = Format(GetTickCount / 10000 / 6, "0")

و الآن سوف نحدث بالطريقة نفسها كل كود على حدى الآن اختار الكود الأول

Private Declare Function GetTickCount Lib "Kernel32" () As Long

و ضعه في محرر التحديث Upgrade Visual basic6 Code ثم انقر Upgrade ستحصل على الكود التالي:

    Private Declare Function GetTickCount Lib "Kernel32" () As Integer

وهو لا يختلف نهائيا ..ستضع هذا الكود تحتPublic Class Form1 .

و الآن نأتي لكود الزر أيضا كرر العملية السابقة فستحصل على الكود التالي :

  'UPGRADE_WARNING: Couldn't resolve default property of object 

Me.Caption. Click for more: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?

keyword="vbup1037"'
  'UPGRADE_WARNING: Couldn't resolve default property of object 

GetTickCount. Click for more: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?

keyword="vbup1037"'


'من هنا يبدا الكود 
        Me.Caption = VB6.Format(GetTickCount / 10000 / 6, "0")

و ستجد أن الكود لم يتعدل تعديل كامل و بقي و فيه مشاكل و أيضا و كتب لك ال.net عبارتين بالأصفر بأن الكود لم يتحدث أو

يحل بشكل كامل و لهذا يمكن مراجعة الرابط التالي في MSDN و لكي تذهب للرابط انقر عليه من الضغط على مفتاح ALT .

ولكن عندما نمعن النظر في الكود نجد بأن الخطأ واضح لا يحتاج إلى عودة ل MSDN و الخط الأزرق موضوع تحته وهو كلمة

Me.Caption

طيب نحن في vb.net لم يعد عندنا خاصية اسمها Caption ونحن نعلم أنها تحولت للخاصية Text أي عنوان الForm

طيب نحن لو بدلنا كلمة Caption ب Text سينجد الكود أصبح جاهز و صحيح ..و بالتالي يصبح الكود:

       Me.Text = VB6.Format(GetTickCount / 10000 / 6, "0")

و سيظهر الوقت في عنوان الForm .

كان هذا مثال للتعديل اليدوي و التعاون بين المبرمج و vb.net

طبعا هناك أمور لن يفهمها الvb.netأبدا مثلا لو كنت مستخدم تسمية في القسم General مثل :

Dim a As Integer

ثم أتيت للزر و كتبت فيه الكود :

a = 10
Me.Caption = a

ثم أخذت الكود الأخير فقط و وضعته في محرر التحديث فأنه لن يعطيك نتيجة لأن a غير معروقة بالنسبة له لذلك عليك أن تراعي

الكود قبل تحديثه..

بالنسبة لتحديث الادوات فأنا حاليا أجري تجارب على هذه العملية و إن شاء الله النتيجة قريبة..

و شكرا لكم..

إيــاس نبهان

تم تعديل هذه المشاركة بواسطة الغملاسي في 7 يوليو 2006 في 05:31

#2

شكراً لك أخي إياس ..

ani.gif
#3

جزاك الله كل خير أخى إياس

م / صابر سميـسم

للبرمجــــــ عدن ـــــــــيات

flashflash5@hotmail.com

#5

السلام عليكم ...بالنسبة لتحديث الأدوات فهو مفيد في قابلية الvb.net للاستيراد يعني لو أنك حاولت أن تستورد أداة مصممة بال

VB6 عن طريق Project ثم Add Reference فلن تجد الأدة الفي صندوق الToolBox..و لكن سيقوم محرر التحديث

بإضافتها إذا لا مفر من استخدامه في تحديث الأدوات تحضيرا لإضافتها ..و لكن لحظة إن محرر التحديث لا يسمح بإضافة أداة فقط

يتعامل مع الادوات الموجودة في ذاكرته ...كيف نجعل الأداة موجودة في ذاكرته؟

إن الأدوات القياسية التي تأتي مع vb6 في حال كنت قد نصبته على جهازك ستكون موجودة مثل Common Dialog ولكن

لكي نضيف إداة خارجية عليك إضافتها في البداية من Project ثم Add Reference..

و بعدها افتح محرر التحديث عن طريق Toolsثم .. Upgrade Visual basic6 Code وبعدها إلى التبويب

Reference ثم Add Reference ثم اختر الأداة و ضع أمامها إشارة صح ثم Add و بعدها ستعود للنافذة الرئيسية و تكون

الأداة موجودة في التبويب Reference ثم اختر الأمر (و الأداة محددة)Upgrade و انتظر قليلا.

بعدها اذهب إلى Project ثم Add Reference و بعدها للتبويب Comو ليس.Net حدد الأداة التي حدثتها ثم اختر

Select حتى تظهر في المربع في الأسفل (سنأخذ مثال أداة Common Dialog) ثم ضع الأدة على النموذج ستجد اسمها تغير

وهو AxCommonDialog1

ضع الكود التالي للتجربة :

AxCommonDialog1.ShowOpen()

و شكرا لكم

إيـاس

#6

جزاك الله

1.GIF

هذا الموضوع مغلق.

مواضيع مشابهة