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

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

اذهب الى الأسفل

خطوة خطوة لانشاء تطبيق بيسط لجلب بيانات حالة الطقس للدول بإستخدام Yahoo Weather API Empty خطوة خطوة لانشاء تطبيق بيسط لجلب بيانات حالة الطقس للدول بإستخدام 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 لتلك المنطقة وهو رقم يمكنك الحصول عليه من خلال [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] والبحث عن المنطقة وعرض WOEID من الموقع .....حيث يمكن العثور على عنوان URL وبه رقم WOEID . فمثلا في URL أدناه 1526301 هو WOEID لمنطقة شبرا بالقاهرة 


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

وهكذا يمكنك الحصول على رقم 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

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

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

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

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



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

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


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

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



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

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

https://egy-tech.forumegypt.net

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

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

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

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


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

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

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

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

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

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

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

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

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

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

الملفين فى المرفقات
المرفقات
خطوة خطوة لانشاء تطبيق بيسط لجلب بيانات حالة الطقس للدول بإستخدام Yahoo Weather API Attachment
ex.zip لا تتوفر على صلاحيات كافية لتحميل هذه المرفقات.(198 Ko) عدد مرات التنزيل 18

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

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

https://egy-tech.forumegypt.net

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

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

مُساهمة من طرف أحمد مناع الإثنين ديسمبر 17, 2018 8:21 am

الرفع للاهمية  خطوة خطوة لانشاء تطبيق بيسط لجلب بيانات حالة الطقس للدول بإستخدام Yahoo Weather API 1f46b  خطوة خطوة لانشاء تطبيق بيسط لجلب بيانات حالة الطقس للدول بإستخدام Yahoo Weather API 1f46b

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

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

https://egy-tech.forumegypt.net

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

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


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