خطوة خطوة لانشاء تطبيق بيسط لجلب بيانات حالة الطقس للدول بإستخدام Yahoo Weather API

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

خطوة خطوة لانشاء تطبيق بيسط لجلب بيانات حالة الطقس للدول بإستخدام Yahoo Weather API

مُساهمة من طرف أحمد مناع في الثلاثاء سبتمبر 03, 2013 1:34 pm

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


أخوانى الكرام أهلا وسهلا بكم ....في هذه المقالة سوف نرى كيف يمكنك تطوير تطبيق الطقس لنظام التشغيل Windows 7 والذي يستخدم  Yahoo Weather API  لجلب بيانات حالة الطقس. التطبيق سيكون لها أيضا بعض من أحدث الميزات المثيرة من ويندوز 7 مثل شريط الأدوات المصغرة وشريط التقدم....و ذلك من خلال الخطوات البسيطة التالية :


1_ فى البداية نحتاج الى تحميل حزمة Windows API code pack   لإضافة ميزات ويندوز 7 إلى التطبيق....ثم قم بإستخراج  المحتويات إلى الموقع الذي تختاره فى جهازك ( الحزمة تحتوى على ملفات المشاريع التي سوف تستخدم في مشروعنا )

2_ قم بفتح Visual Studio و انشاء مشروع جديد Windows Forms Application


3_ قم بتحديد ايقونة المشروع من نافذة مستكشف الحلول Solution ثم النقر يمين و من القائمة التى ستظهر أختر الامر Add ثم الامر Existin ومن المربع الحوارى الذى سيظهر انتقل إلى المجلد الذي تم استخراج حزمة Windows API code pack....ثم حدد المجلد المفتوح 'WindowsAPICodePack' ثم قم بإضافة المشاريع التالية إلى المشروع :


أ. المجلد 'core'
ب. المجلد 'shell'.

4_ قم بتحديد ايقونة المشروع مرة أخرى ثم النقر يمين ومن القائمة التى ستظهر أختر الامر Add References ومن النافذة التي تظهر حدد علامة التبويب "Projects" ، وسوف تجد قائمة المشاريع التى تم إضافتها إلى فى الخطوة 3.قم بتحديد الكل وانقر فوق موافق

5_ قم إضافة عناصر التحكم التالية إلى النموذج الخاص بك :

   Rich Text Box : RTTemp
  Rich Text Box : RTWeatherType
   Picture Box : weatherImage

العنصر RTTe هو سيتم استخدامها لعرض درجة الحرارة
العنصر RTWeatherTy سيتم استخدامها لعرض نوع الطقس.


6_ لكى نستطيع الحصول على درجة حرارة منطقة معينة او دولة معينة يجب علينا معرفة WOEID لتلك المنطقة وهو رقم يمكنك الحصول عليه من خلال http://weather.yahoo.com والبحث عن المنطقة وعرض WOEID من الموقع .....حيث يمكن العثور على عنوان URL وبه رقم WOEID . فمثلا في URL أدناه 1526301 هو WOEID لمنطقة شبرا بالقاهرة 



وهكذا يمكنك الحصول على رقم WOEID لاى منطقة بالعالم بنفس المنهج



7_ كتابة الشفرات .....على النحو التالى :

_ إستيراد مساحات الأسماء التالية :
الرمز:

Imports Microsoft.WindowsAPICodePack.Shell
Imports Microsoft.WindowsAPICodePack.Taskbar
Imports System.Xml
Imports System.Xml.XPath
_ نقوم بالاعلان عن المتغيرات التي سيتم استخدامها في التطبيق :

الرمز:

Private strLocationID As String() = {"2295411", "615702", "44418", "2295424", "2295426"}
Private strLocations As String() = {"Mumbai", "Paris", "London", "Chennai", "Trivandrum"}
Private currentLocation As Integer = 0
Private buttonNext As ThumbnailToolbarButton
Private buttonPrevious As ThumbnailToolbarButton
Private tbManager As TaskbarManager = TaskbarManager.Instance
في التعليمات البرمجية كما هو مبين أعلاه، لدينا قائمة من أسماء المواقع و أرقام WOEID الخاصه بهم. لدينا أيضا 2 'ThumbnailToolbarButtons' التي سيتم استخدامها لتغيير و التنقل بين تلك المواقع.

_ التعليمة البرمجية التالية المبينة أدناه هى اجراء لإحضار تقرير الطقس لدولة أو منطقة معينه. سنقوم باستخدام currentLocation لتتبع تفاصيل الموقع
الرمز:

Sub GetWeatherReport(ByVal locationId As Integer)
        Me.Text = strLocations(locationId)
        Dim doc As New XPathDocument("http://weather.yahooapis.com/forecastrss?w=" & strLocationID(locationId) & "&u=c")
        Dim nav As XPathNavigator = doc.CreateNavigator()
        Dim ns As New XmlNamespaceManager(nav.NameTable)
        ns.AddNamespace("yweather", "http://xml.weather.yahoo.com/ns/rss/1.0")
        Dim nodes As XPathNodeIterator = nav.[Select]("/rss/channel/item/yweather:condition", ns)
        While (nodes.MoveNext())
            Dim node As XPathNavigator = nodes.Current
            RTTemp.Text = node.GetAttribute("temp", ns.DefaultNamespace).ToString() & "°C"
            RTWeatherType.Text = node.GetAttribute("text", ns.DefaultNamespace).ToString()
            weatherImage.ImageLocation = "http://l.yimg.com/a/i/us/we/52/" & node.GetAttribute("code", ns.DefaultNamespace).ToString() & ".gif"
            SetProgressBarStyle(Convert.ToInt16(node.GetAttribute("temp", ns.DefaultNamespace)))
        End While
End Sub

في التعليمات البرمجية كما هو مبين أعلاه، ونقوم جلب تفاصيل الطقس الحالي حول الموقع ومن ثم تعيين نمط progressbar يعتمد على درجة الحرارة

_ نقوم  لتعيين  نمط شريط التقدم والقيمة باستخدام الاساليب 'SetProgressValue'and' SetProgressState '....وذلك على النحو التالى :
الرمز:

 Private Sub SetProgressBarStyle(ByVal weather As Integer)
        tbManager.SetProgressValue(50, 100)
        If weather <= 10 Then
            tbManager.SetProgressState(TaskbarProgressBarState.Normal)
        End If
        If weather >= 20 Then
            tbManager.SetProgressState(TaskbarProgressBarState.Paused)
        End If
        If weather >= 30 Then
            tbManager.SetProgressState(TaskbarProgressBarState.[Error])
        End If
 End Sub
وفى الشفرة أعلاه تم تعيين نمط شريط التقدم على أساس درجة حرارة....على النحو التالى :

TaskbarProgressBarState.Normal :لعرض اللون العادى لشريط التقدم أذا كان درجة الحرارة  أقل من او يساوى 10 
·         TaskbarProgressBarState.Paused : لعرض اللون الاصفر لشريط التقدم فى حالة كون درجة الحرارة أكبر من او يساوى 20


·         TaskbarProgressBarState.Error : لعرض شريط التقدم باللون الاحمر فى حالة ان درجة الحرارة اكبر من او يساوى 30

_ فى حدث الظهور للنافذة
Form’s Shown event  نكتب الشفرة التالية :
الرمز:


Private Sub Form1_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
 

       buttonNext = New ThumbnailToolbarButton(My.Resources.nextArrow, "Next Location")
        buttonNext.Enabled = True
        AddHandler buttonNext.Click, AddressOf buttonNext_Click
        buttonPrevious = New ThumbnailToolbarButton(My.Resources.prevArrow, "Previous Location")
        buttonPrevious.Enabled = True
        AddHandler buttonPrevious.Click, AddressOf buttonPrevious_Click
        TaskbarManager.Instance.ThumbnailToolbars.AddButtons(Me.Handle, buttonPrevious, buttonNext)
        GetWeatherReport(currentLocation)
 

   End Sub

في التعليمات البرمجية هو مبين أعلاه، أنشأنا اثنين من الأزرار للتنقل بين المناطق و المواقع المختلفة . 'ThumbnailToolbarButton'accepts حجتين. أول واحد هو رمز من زر واحد الثاني هو تلميح الأداة ليتم عرضها. واضاف لدينا أيضا معالج حدث لهذه الأزرار لهذا الحدث العميل. مرة واحدة يتم إنشاء الأزرار، ونحن إضافتها إلى شريط المهام باستخدام المثال.

الرمز:

TaskbarManager.Instance.ThumbnailToolbars.AddButtons(this.Handle, buttonPrevious, buttonNext)

_ أما التعليمات البرمجية التالية هى للتنقل بين المواقع

الرمز:

Private Sub buttonNext_Click(ByVal sender As Object, ByVal e As EventArgs)
        If (currentLocation + 1) < strLocationID.Length Then
            currentLocation += 1
            GetWeatherReport(currentLocation)
        End If
End Sub
 

الرمز:


Private Sub buttonPrevious_Click(ByVal sender As Object, ByVal e As EventArgs)
        If (currentLocation - 1) >= 0 Then
            currentLocation -= 1
            GetWeatherReport(currentLocation)
        End If
End Sub

و اليكم صور من التطبيق اثناء التشغيل










لتحميل المشروع على الرابط التالى :


[url=http://cid-2c5f5b0560e374cb.skydrive.live.com/self.aspx/.Public/Uploads/Weather - Win7Gadget.zip]

المرفقات [/url]



ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: خطوة خطوة لانشاء تطبيق بيسط لجلب بيانات حالة الطقس للدول بإستخدام Yahoo Weather API

مُساهمة من طرف شيغو في الخميس ديسمبر 19, 2013 9:36 pm

مشكور احمد ياليت توضح دي


3_ قم بتحديد ايقونة المشروع من نافذة مستكشف الحلول Solution ثم النقر يمين و من القائمة التى ستظهر أختر الامر Add ثم الامر Existin ومن المربع الحوارى الذى سيظهر انتقل إلى المجلد الذي تم استخراج حزمة Windows API code pack....ثم حدد المجلد المفتوح 'WindowsAPICodePack' ثم قم بإضافة المشاريع التالية إلى المشروع :

أ. المجلد 'core'
ب. المجلد 'shell'.

يعني طريقة الاضافة لانه باخيار دا تطلع مجلدات وماتنضاف معاي

شيغو
..
..

تاريخ التسجيل : 11/07/2013
المساهمات : 29
النقاط : 47
التقيم : 0
الدولة : السعودية
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: خطوة خطوة لانشاء تطبيق بيسط لجلب بيانات حالة الطقس للدول بإستخدام Yahoo Weather API

مُساهمة من طرف أحمد مناع في الجمعة ديسمبر 20, 2013 9:20 am

أرجوا المعذرة أخى ..يمكنك استخدام الملفين :

Microsoft.WindowsAPICodePack.dll
Microsoft.WindowsAPICodePack.Shell.dll

و إدراجهما للمشروع عن طريق تحديد ايقونة المشروع  ثم النقر يمين ومن القائمة التى ستظهر أختر الامر Add References ومن التويب browse أختر الملفين ....بدلا من ادراج المشاريع السابقة كاملة

الملفين فى المرفقات
المرفقات
ex.zip لا تتوفر على صلاحيات كافية لتحميل هذه المرفقات.(198 Ko) عدد مرات التنزيل 11

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى