اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

نجوم المشاركات

  1. منتصر الانسي

    منتصر الانسي

    المشرفين السابقين


    • نقاط

      6

    • Posts

      1292


  2. عسل قليل الدسم

    عسل قليل الدسم

    عضو جديد 01


    • نقاط

      3

    • Posts

      14


  3. ابو جودي

    ابو جودي

    أوفيسنا


    • نقاط

      1

    • Posts

      7311


  4. walid7799

    walid7799

    03 عضو مميز


    • نقاط

      1

    • Posts

      153


Popular Content

Showing content with the highest reputation since 03/19/26 in ملفات

  1. Version 2.0.0

    30 تنزيل

    اقدم لكم اليوم أداة ستزيد من إنتاجيتكم أثناء العمل مع الإستعلامات فبدلاً من العمل مع الإستعلامات من خلال جزء التنقل ستقوم هذه الأداة بتجميع جميع الإستعلامات داخل مربع قائمة والجميل أنه لن يتم تحميل القائمة إلا بالإستعلامات التي تم تحديد نوعها فمثلاً تريد العمل مع إستعلامات التحديث فقط أو الإلحاق فقط وهكذا بالإضافة إلى هذا يمكنك تصفية النتائج من خلال كتابة عبارة نصية تتضمنها جملة Sql فمثلاً تريد الإستعلامات التي تتضمن بيانات جدول محدد فيكفي أن تكتب إسم الجدول في مربع التصفية ليتم تصفية الإستعلامات التي تتضمن هذا الجدول فقط وكمثال رائع آخر وأعتقد أن جميعنا سيعجب به إذا قمنا مثلا بتعديل إسم عنصر تحكم في نموذج وسبق أن تم وضع عنصر التحكم هذا كمعيار لتصفية إستعلام أو أكثر فيمكن كتابة إسمه في مربع التصفية ليتبقى لدينا الإستعلامات التي ذكر فيها إسم عنصر التحكم هذا لا وأزيدكم من الشعر بيت يمكنكم بعد ذلك إستبدال إسم عنصر التحكم هذا بالإسم الجديد وإستعراض النتائج في إستعلام مؤقت وإذا نجح العمل يمكنك تحديث جملة Sql الخاصة بالإستعلام المحدد بالتعديلات الجديدة وهذا كله عن طريق الأداة وبدون حتى أن تضطر إلى فتح الإستعلام في وضع التصميم يوجد للأداة وظيفة أخرى وهي تعديل جملة Sql الخاصة بعناصر التحكم (مربعات التحرير والسرد ومربعات القائمة) وتقوم بنفس ماسبق ذكره ولكن على عبارة Sql لمصدر الصف الخاص بعنصر التحكم الأداة بسيطة ولا تحتوي إلا على ثلاثة نماذج فقط ستجدونها في المرفق بإسم القالب يمكنكم إستيرادها إلى تطبيقاتكم والعمل بها بكل سهولة ولكن الخيار المفضل لدي هو إستخدامها كوظيفة إضافية وهي ما ستجدونه داخل مجلد الوظيفة الإضافية مع مستند يشرح طريقة تثبيتها أرجو أن تجدوا في هذه الأداة الفائدة التي وجدتها أنا شخصيا وإذا كان لدى أي أحد منكم أي ملاحظات فالرجاء أن لا يبخل علينا بها تحياتي
    3 points
  2. Version 1.01

    30 تنزيل

    توليد أرقام مستندات تلقائية مثل أرقام الفواتير والطلبات والسندات (ترقيم تلقائي احترافي) أربع أنماط للترقيم Yearly → INV-2026-000001 : التصفير واعادة الترقيم عند بدء العام الجديد Monthly → INV-2026-04-000001 : التصفير واعادة الترقيم عند بدء الشهر الجديد Daily → INV-2026-04-05-000001 : التصفير واعادة الترقيم عند بدء اليوم الجديد Sequential→ INV-000001 : ترقيم لا نهائى بدون اعادة بدء الترقيم مستمر بلا توقف المزايا : إنشاء تلقائي لجدول التسلسل : tblSequences وظيفته تخزين تسلسل الأرقام الفريد لكل مفتاح (Key) استرداد ذكي عند حذف جدول التسلسل : tblSequences عن طريق الخطأ تم تصميم الكود بحكمة ليعيد إنشاءه تلقائيا ويستأنف الترقيم من آخر رقم موجود في جدول البيانات الأصلي - أى لا انقطاع ولا تكرار أبدا التحكم الأمثل لإضافة بادئة مخصصة أى أنه يمكن عمل أكثر من عملية ترقيم لنفس الحقل حسب النوع, الفرع , المحافظة مثلا .... Cairo-2026-000018 Alex-2026-000001 التحكم فى شكل تنسيق الترقيم للأرقام بطول سلسلة مخصصة من 1 الى 10 مثل : 000001 أو 0000000001 أو حتى آمن في بيئة الشبكة المتعددة المستخدمين: عدم تكرار أي رقم حتى لو فتح عشرة مستخدمين نفس النموذج في نفس اللحظة مع عمل معالجة خاصة لمنع تعارض الطلبات المتزامنة مع حد أقصى للمحاولات لمنع التوقف التام تحت الضغط الشديد
    2 points
  3. Version 2.0.0

    68 تنزيل

    أقدم لكم اليوم أداة بسيطة ولكن فائدتها كبيرة لما تختصره من الوقت والجهد في كتابة الأوامر الخاصة بمربعات حوار الرسائل MsgBox خصوصاً في حالة النصوص الطويلة بإستخدام هذه الأداة لن تحتاج إلا إلى إدخال عنوان الرسالة والنص الخاص بها وتحديد بقية الخيارات من خلال تحديدها من قائمة الخيارات بدون الحاجة إلى أي معرفة برمجية وعند الإنتهاء من تحديد الخيارات يمكنك إستعراض الرسالة للتأكد من ظهورها بالشكل المطلوب وعندها كل ماعليك هو نقر زر لنسخ صيغة الأمر والذهاب للمكان المطلوب في تطبيقك ولصقه بإمكان الأداة القيام بإنشاء صيغتين للأمر 1- صيغة الأمر البسيطة والتي ستكون بالشكل التالي MsgBox "نص الرسالة",vbOk,"العنوان" 2- صيغة الأمر ضمن شرط If وستظهر عندما تحتوي الرسالة على أكثر من زر لتصبح بالشكل التالي If MsgBox ("نص الرسالة",vbOkCancel,"العنوان")=vbOk Then End If كذلك ستجد خيارات إضافية كإمكانية تحديد إتجاه الرسالة لتناسب الرسائل باللغة العربية أو الإنجليزية وإمكانية الإحتفاظ بالنص في متغير والذي يكون مفيداً للغاية عند العمل مع النصوص الطويلة والتي تحتوي على أكثر من سطر وغيرها من المزايا الإضافية التي ستجدونها من خلال تجربتكم للأداة. كما ذكرت فالأداة بسيطة جداً لدرجة أني لم أحتاج لإضافة أي تعليمات توضيحية لطريقة عملها فهي لاتحتوي إلا على نموذج واحد فقط ويمكنك تخصيص قاعدة بيانات مستقلة للقيام بمساعدتك في إنشاء الصيغ لبقية التطبيقات أو إستيراد النموذج لأي تطبيق والعمل به بكل بساطة. كفائدة إضافية وحتى لا تحتاج لإستيراد النموذج إلى جميع تطبيقاتك فقد أنشأت منه نسخة تعمل كوظيفة إضافية Add-In مرفق معها مستند وورد يشرح طريقة تثبيتها وإستخدامها أرجو أن تنال هذا الأداة إعجابكم وإذا كانت هناك أي ملاحظات فأرجو ذكرها تحياتي
    2 points
  4. Version 1.0.1

    18 تنزيل

    هذا الموضوع يعد مهماً وحيوياً لمصممي ومطوري النظم أكثر من المستخدم العادي خاصة عند استخدام حدث Timer مع أي نموذج ويريد مطور النظام فتح محرر الأكواد (VBA) في نفس وقت عرض النماذج هنا تحدث المشكلة الكلاسيكية: المطور لا يستطيع تعديل أي كود لأن التايمر النموذج يعطل التركيز داخل المحرر و يسبب أخطاء بفضل هذه الفكرة الثورية هذا الأمر أصبح من الماضي السحيق فكرة العمل باختصار 1 - عند فتح النموذج يبدأ TimerInterval تلقائياً 2 - إذا تم فتح محرر VBA بأى طريقة كانت يتم إيقاف التايمر فوراً 3 - عند إغلاق المحرر والعودة إلى النماذج يتم تشغيل التايمر من جديد تلقائياً وفوراً 4 - لا حاجة لتمرير اسم النموذج الرئيسي أو اسم عنصر الـ Subform يدوياً 5 - المطلوب فقط هو تمرير اسم عنصر التحكم الذي سيتم عرض الوقت فيه (Label أو TextBox) حسب الحاجة والرغبة مميزات الحل ذكـي : يكتشف النموذج الرئيسي والفرعي تلقائياً متعدد : يعمل مع أكثر من نموذج في نفس الوقت مـــرن : يدعم Label و TextBox كعناصر عرض للوقت آمـــن : إذا تم حذف الوحدة النمطية يتحول تلقائياً إلى Fallback Mode باستخدام دالة الوقت الرئيسية : Now() خفيف : لا يعتمد على Timer إضافي للمراقبة جاهــز : يعمل مع النماذج الرئيسية و الفرعية أو الرئيسية المستقلة أو الرئيسية والفرعية معا ----------------------------------------------------- الوحدة النمطية العامة الاسم المقترح: basClockManager الكود... Option Compare Database Option Explicit #If VBA7 Then Private Declare PtrSafe Function SetWinEventHook Lib "user32" ( _ ByVal eventMin As Long, _ ByVal eventMax As Long, _ ByVal hmodWinEventProc As LongPtr, _ ByVal pfnWinEventProc As LongPtr, _ ByVal idProcess As Long, _ ByVal idThread As Long, _ ByVal dwFlags As Long) As LongPtr Private Declare PtrSafe Function UnhookWinEvent Lib "user32" ( _ ByVal hWinEventHook As LongPtr) As Long Private Declare PtrSafe Function GetAncestor Lib "user32" ( _ ByVal hwnd As LongPtr, _ ByVal gaFlags As Long) As LongPtr #Else Private Declare Function SetWinEventHook Lib "user32" ( _ ByVal eventMin As Long, _ ByVal eventMax As Long, _ ByVal hmodWinEventProc As Long, _ ByVal pfnWinEventProc As Long, _ ByVal idProcess As Long, _ ByVal idThread As Long, _ ByVal dwFlags As Long) As Long Private Declare Function UnhookWinEvent Lib "user32" ( _ ByVal hWinEventHook As Long) As Long Private Declare Function GetAncestor Lib "user32" ( _ ByVal hwnd As Long, _ ByVal gaFlags As Long) As Long #End If Private Const EVENT_SYSTEM_FOREGROUND As Long = &H3 Private Const WINEVENT_OUTOFCONTEXT As Long = &H0 Private Const GA_ROOT As Long = 2 Private gHook As LongPtr Private gAccessHwnd As LongPtr Private gClocks As Object Private Sub EnsureClockStore() If gClocks Is Nothing Then Set gClocks = CreateObject("Scripting.Dictionary") End If End Sub Private Function MakeClockKey(frm As Access.Form) As String On Error GoTo ErrorHandler Dim vParentForm As Access.Form Dim vControlName As String Set vParentForm = frm.Parent vControlName = GetSubformControlName(vParentForm, frm) If Len(vControlName) > 0 Then MakeClockKey = vParentForm.Name & "|" & vControlName & "|" & frm.Name Exit Function End If ErrorHandler: MakeClockKey = frm.Name End Function Private Function CreateClockState(frm As Access.Form, _ ByVal pControlName As String, _ ByVal pIntervalMS As Long) As Object Dim vState As Object Set vState = CreateObject("Scripting.Dictionary") Dim vIsSubform As Boolean Dim vParentName As String Dim vSubCtlName As String On Error Resume Next vParentName = frm.Parent.Name vSubCtlName = GetSubformControlName(frm.Parent, frm) vIsSubform = (Len(vSubCtlName) > 0) On Error GoTo 0 vState.Add "Key", MakeClockKey(frm) vState.Add "HostFormName", frm.Name vState.Add "ParentFormName", vParentName vState.Add "SubformControlName", vSubCtlName vState.Add "IsSubform", vIsSubform vState.Add "ControlName", pControlName vState.Add "WasStoppedByVBE", False vState.Add "IntervalMS", pIntervalMS Set CreateClockState = vState End Function Public Sub StartSmartClock(frm As Access.Form, _ ByVal pControlName As String, _ Optional ByVal pIntervalMS As Long = 1000) On Error GoTo ErrorHandler EnsureClockStore Dim vKey As String Dim vState As Object vKey = MakeClockKey(frm) If gClocks.Exists(vKey) Then gClocks.Remove vKey Set vState = CreateClockState(frm, pControlName, pIntervalMS) gClocks.Add vKey, vState frm.TimerInterval = pIntervalMS If gAccessHwnd = 0 Then gAccessHwnd = Application.hWndAccessApp If gHook = 0 Then gHook = SetWinEventHook( _ EVENT_SYSTEM_FOREGROUND, _ EVENT_SYSTEM_FOREGROUND, _ 0, _ AddressOf ForegroundChangedProc, _ 0, 0, _ WINEVENT_OUTOFCONTEXT) End If Exit Sub ErrorHandler: End Sub Public Sub StopSmartClock(frm As Access.Form) On Error Resume Next EnsureClockStore Dim vKey As String vKey = MakeClockKey(frm) frm.TimerInterval = 0 If gClocks.Exists(vKey) Then gClocks.Remove vKey End If If gClocks.Count = 0 Then If gHook <> 0 Then UnhookWinEvent gHook gHook = 0 End If Set gClocks = Nothing End If End Sub Public Sub SmartClockTimer(frm As Access.Form) On Error Resume Next EnsureClockStore Dim vKey As String Dim vState As Object vKey = MakeClockKey(frm) If Not gClocks.Exists(vKey) Then Exit Sub Set vState = gClocks(vKey) If IsVbeOpen() Then vState("WasStoppedByVBE") = True frm.TimerInterval = 0 Exit Sub End If Dim vTimeText As String vTimeText = Format$(Now(), "dd/mm/yyyy hh:nn:ss AM/PM") If Len(vState("ControlName")) > 0 Then UpdateControlDisplay frm, vState("ControlName"), vTimeText End If End Sub Private Function IsVbeOpen() As Boolean On Error Resume Next IsVbeOpen = Application.VBE.MainWindow.Visible If Err.Number <> 0 Then IsVbeOpen = False On Error GoTo 0 End Function Private Sub UpdateControlDisplay(frm As Access.Form, ByVal pControlName As String, ByVal pDisplayText As String) On Error Resume Next Dim vControl As Access.Control Set vControl = frm.Controls(pControlName) If vControl Is Nothing Then Exit Sub Select Case vControl.ControlType Case acTextBox If vControl.Value <> pDisplayText Then vControl.Value = pDisplayText End If Case acLabel If vControl.Caption <> pDisplayText Then vControl.Caption = pDisplayText End If End Select End Sub Private Function GetSubformControlName(vParentForm As Access.Form, vChildForm As Access.Form) As String On Error Resume Next Dim vControl As Access.Control For Each vControl In vParentForm.Controls If vControl.ControlType = acSubform Then If vControl.Form Is vChildForm Then GetSubformControlName = vControl.Name Exit Function End If End If Next vControl End Function Private Function GetStateTargetForm(vState As Object, ByRef vForm As Access.Form) As Boolean On Error GoTo ErrorHandler If vState("IsSubform") Then If (SysCmd(acSysCmdGetObjectState, acForm, vState("ParentFormName")) And acObjStateOpen) = 0 Then Exit Function Set vForm = Forms(vState("ParentFormName")).Controls(vState("SubformControlName")).Form Else If (SysCmd(acSysCmdGetObjectState, acForm, vState("HostFormName")) And acObjStateOpen) = 0 Then Exit Function Set vForm = Forms(vState("HostFormName")) End If GetStateTargetForm = Not (vForm Is Nothing) Exit Function ErrorHandler: Set vForm = Nothing End Function #If VBA7 Then Public Sub ForegroundChangedProc( _ ByVal hWinEventHook As LongPtr, _ ByVal eventId As Long, _ ByVal hwnd As LongPtr, _ ByVal idObject As Long, _ ByVal idChild As Long, _ ByVal dwEventThread As Long, _ ByVal dwmsEventTime As Long) #Else Public Sub ForegroundChangedProc( _ ByVal hWinEventHook As Long, _ ByVal eventId As Long, _ ByVal hwnd As Long, _ ByVal idObject As Long, _ ByVal idChild As Long, _ ByVal dwEventThread As Long, _ ByVal dwmsEventTime As Long) #End If On Error Resume Next If gClocks Is Nothing Then Exit Sub If gClocks.Count = 0 Then Exit Sub If GetAncestor(hwnd, GA_ROOT) <> gAccessHwnd Then Exit Sub Dim vKey As Variant Dim vState As Object Dim vForm As Access.Form For Each vKey In gClocks.Keys Set vState = gClocks(vKey) If vState("WasStoppedByVBE") Then If GetStateTargetForm(vState, vForm) Then vForm.TimerInterval = vState("IntervalMS") Dim vTimeText As String vTimeText = Format$(Now(), "dd/mm/yyyy hh:nn:ss AM/PM") If Len(vState("ControlName")) > 0 Then UpdateControlDisplay vForm, vState("ControlName"), vTimeText End If vState("WasStoppedByVBE") = False End If End If Next vKey End Sub ----------------------------------------------------- طريقة الاستدعاء في النماذج نموذج يعرض الوقت في Label الكود... Private Sub Form_Load() Application.Run "StartSmartClock", Me, "lblTime", 1000 End Sub Private Sub Form_Timer() Application.Run "SmartClockTimer", Me End Sub Private Sub Form_Unload(Cancel As Integer) Application.Run "StopSmartClock", Me End Sub ----------------------------------------------------- نموذج يعرض الوقت في TextBox الكود... Private Sub Form_Load() Application.Run "StartSmartClock", Me, "txtTime", 1000 End Sub Private Sub Form_Timer() Application.Run "SmartClockTimer", Me End Sub Private Sub Form_Unload(Cancel As Integer) Application.Run "StopSmartClock", Me End Sub ----------------------------------------------------- نموذج بدون عرض نصي للوقت الكود... Private Sub Form_Load() Application.Run "StartSmartClock", Me, "", 1000 End Sub Private Sub Form_Timer() Application.Run "SmartClockTimer", Me End Sub Private Sub Form_Unload(Cancel As Integer) Application.Run "StopSmartClock", Me End Sub ----------------------------------------------------- كما تلاحظون الاستدعاء سهل وموحد سواء أردنا عرض الوقت في TextBox أو Label Application.Run "StartSmartClock", Me, "", 1000 ملاحظة هامة حول معامل : TimerInterval وهو المعامل الثالث فى الاستدعاء (Interval) الرقم: 1000 هو قيمة TimerInterval يمثل الفاصل الزمني بالميلي ثانية القيمة الافتراضية : 1000 (ثانية واحدة) تم ضبطها مسبقاً داخل الوحدة النمطية هل هو إجباري؟ لايمكن حذفه والاعتماد على القيمة الافتراضية طرق الاستدعاء المختلفة مع المعامل : ' الطريقة الأولى: تمرير قيمة مخصصة (مثلاً نصف ثانية) Application.Run "StartSmartClock", Me, "lblTime", 500 ' الطريقة الثانية: حذف المعامل (يتم استخدام 1000 تلقائياً) Application.Run "StartSmartClock", Me, "lblTime" في بعض الحالات قد يرغب المصمم في عمل التالى : ساعة عادية لذلك سوف تكون قيمة : TimerInterval =1000 (ثانية واحدة) ساعة دقيقة (Stopwatch) تكون قيمة TimerInterval = 100 (جزء من الثانية) ساعة بطيئة (تحديث نادر) تكون قيمة TimerInterval = 5000 (5 ثوانٍ) لهذا السبب تم جعل هذا المعامل اختيارياً مع استخدام القيمة الإفتراضية المنطقية مع إتاحة المجال للمصمم لتغييره حسب احتياجاته ----------------------------------------------------- نموذج مع Fallback ( منتهى الأمان ) الكود... Option Compare Database Option Explicit Private mIsSmartClockActive As Boolean Private Sub Form_Load() AttemptStartSmartClock End Sub Private Sub Form_Timer() Dim vTimeText As String vTimeText = Format$(Now(), "dd/mm/yyyy hh:nn:ss AM/PM") If mIsSmartClockActive Then Application.Run "SmartClockTimer", Me Me.txtDClock = vTimeText Else ' Fallback: النموذج يحدث نفسه بنفسه Me.txtDClock = vTimeText Me.lblDClock.Caption = vTimeText End If End Sub Private Sub Form_Unload(Cancel As Integer) On Error Resume Next If mIsSmartClockActive Then Application.Run "StopSmartClock", Me End If Me.TimerInterval = 0 On Error GoTo 0 End Sub Private Sub AttemptStartSmartClock() On Error GoTo FallbackMode Application.Run "StartSmartClock", Me, "lblDClock", 1000 mIsSmartClockActive = True Exit Sub FallbackMode: Err.Clear mIsSmartClockActive = False Me.TimerInterval = 1000 End Sub ----------------------------------------------------- الخلاصة النهائية :الاستدعاء المناسب عرض الوقت في : Label LabelStartSmartClock Me, "lblTime" عرض الوقت في : TextBox StartSmartClock Me, "txtTime" بدون عرض نصى للوقت مثلا : ساعة عقارب (بدون عرض نصي) StartSmartClock Me, "" نموذج فرعي (Subform) نفس الكود - يتم اكتشافه تلقائياً نماذج متعددة في نفس الوقت مدعوم بالكامل ملاحظات مهمة إعدادات الأمان : يجب تفعيل Trust access to the VBA project object model في إعدادات Trust Center إصدار Access : يعمل مع Access 2007 والإصدارات الأحدث مراجع إضافية : لا يحتاج إلى إضافة أي مراجع Fallback Mode : إذا تم حذف الوحدة النمطية، يتحول النموذج تلقائياً إلى استخدام Now() مع هذا الحل الفريد أصبح : التحكم في TimerInterval أثناء فتح محرر VBA أمراً تلقائياً بالكامل، دون أي تدخل يدوي أو تعقيدات سهولة فتح محرر VBA و إضافة أو تعديل أى أكواد في نفس وقت عرض النماذج وبدون أن تحدث المشكلة الكلاسيكية بسبب : TimerInterval استمتع بتجربة تطوير سلسة وخالية من المشاكل
    1 point
  5. Version 1.0.0

    243 تنزيل

    برنامج مجانى تماما كامل لمتابعة ذوى الاحتياجات الخاصة والمهارات والأهداف التى يجب تجاوزها فى كل مرحلة والتى توضع حسب خطط منظمة ومتسلسلة ومتصلة يصلح لمراكز التأهيل وبه اسلوب ووضع خطط لكلاً من (مهارات التنمية - صعوبات التعلم - مهارات التخاطب - تأهيل وظيفى ...) ويمكن البرنامج من وضع جلسات وأعادتها ووضع تقارير عن كل شىء من الخطط والأهداف والجلسات والاخصائى وطرق البحث المكثفة والمتخصصة عن الحالات ووضع وتقييم الحالة وما تم من انجازات خلال تنفي> الخطط اللهم أكتب الشفاء لكل من أصابه ابتلاء واللهم أليك السؤال وفعلك ما شئت فأرحم عباداً يا من كتبت على نفسك الرحمة وأن الرحمن الدنيا والأخرة ورحيمهما نسألكم الدعاء أخوكم فى الله وليد الجمل سائلاً لله أن يجعله سبباً فى تحسين حالات أولادنا وأطفالنا ورحمة من الله لنا
    1 point
  6. Version 1.0.0

    94 تنزيل

    الخصائص ببساطة مجموعات المستخدمين — كل مستخدم ينتمي لمجموعة وكل مجموعة لها صلاحياتها التحكم في الصلاحيات للنماج والتقارير — وعددها 5 صلاحيات لكل كائن (فتح / إضافة / تعديل / حذف / تصدير) حماية النماذج والتقارير — لا يتم فتح أي نموذج أو تقرير إلا بعد التحقق من الصلاحية التصدير الآمن — تصدير التقارير والاستعلامات لـ PDF/Excel مع التحقق من الصلاحية أولاً الصلاحيات على مستوى المجموعة أى انه بنقل اى مستخدم من مجموعة لاخرى تنطبق عليه فورا صلاحيات المجموعة
    1 point
  7. Version 1.0.0

    48 تنزيل

    أقدم لكم اليوم أداة جميلة ستجعل تطبيقاتكم تظهر بمظهر برامج ويندوز الأخرى وذلك لأنها تسمح لكم بإظهار رسائل التنبيه في منطقة الإشعارات كما بالصورة يتميز هذا النوع من الرسائل عن مربع الرسائل المعروف في أنها لا تكون منبثقة أمام بقية النماذج ولاتتسبب في إيقاف العمل لإغلاقها تشمل هذه الرسالة عنوان ونص وأيقونة كما بالصورة العمل بالأداة سهل جداً وكما يقولون بأن الصورة تعادل ألف كلمة فقد أرفقت معها صورة متحركة توضح طريقة العمل بها بالإضافة إلى بعض التعليمات الإضافية تجدونها داخل الملف المرفق والتي توضح الشروط الواجب توافرها حتى تعمل بنجاح وكيفية الإستفادة منها في تطبيقاتكم الخاصة أرجو أن تنال إعجابكم تحياتي
    1 point
×
×
  • اضف...

Important Information