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

تصغير الفورم على شريط المهام

مغلق
بدأه أبو عبير 2005 في 22 يوليو 2006 · 7 رد · 2,868 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الإخوة الكرام السلام عليكم ورحمة الله وبركاته

فضلاً لا أمراً

أريد كود لتصغير الفورم أسفل الشاشة على شريط مهام الوندوز .

ولكم الشكر الجزيل .

وقد أرفقت لكم مثال لتوضيح المطلوب .

___________.zip

#2

اخي الفاضل ابو عبير

السلام عليكم ورحمة الله وبركاته

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

Private Sub امر1_Click()
DoCmd.Minimize
End Sub

الحل الاخر بإستخدام الماكرو

1. من كائنات قاعدة البيانات اختر وحدات ماكرو

2. قم بإنشاء ماكرو جديد

3. من لوحة الماكرو اكتب اسم الماكرو وليكن مثلا تصفير نموذج

4. في قسم الاجراء اختر Minimize

5. قم بإغلاق الماكرو وسيطلب منك تسميه له اعطه اسم مثلا تصغير

6. انتقل الان الى النموذج واعرضه في وضع التصميم

7. اختر زر الامر ومن خصائص زر الامر اختر التبويب حدث

8. في حدث عند النقر اكتب او اختر تصغير

وهذا ملفك بعد التعديل

Minimize.rar

#3

أختي العزيزة زهرة

هذا الكود لتصغير الفورم أسفل شاشة الأكسس ما هو بجانب الساعة

الكود المطلوب أن يكون النموذج في نفس شريط مهام الوندوز بجانب الساعة .

مثلاً ( عندما نفتح المستندات نشاهدها في شريط المهام ولو فتحنا جهاز الكمبيوتر لوجدناه بجانب المستندات بجانب الساعة وأنا أريد الفورم بجانب جهاز الكمبيوتر ) .

أعرف أني طولت لكن للتوضيح وزيادة فهم المطلوب .

#4

ما فيه حل للتصغير على شريط المهام وإلاّ أنا عندي مشكلة في الأكسس

#5

اخي ابو عبير

السلام عليكم ورحمة الله وبركاته

لوضع النموذج مصغر في اسفل الشاشة بجانب الساعة اتبع هذه الطريقة

1. اضغط بالماوس الايمن على شريط المهام

2. اختر اشرطة ادوات ثم اختر شريط ادوات جديد

24_07_06_10_36_04_1153762564FO1.gif

3. سيظهر لك مربع حوار موقع الملفات المطلوب وضعها اختر المجلد الموجود به النموذج الخاص بك ثم اضغط موافق

24_07_06_10_37_21_1153762641FO_.gif

4. الان ستجد النموذج او اي ملف تختاره موجود في شريط المهام بجانب الساعة كل ما عليك هو الضغط علبه ليتم فتحه مباشره

24_07_06_10_40_16_1153762816FO3.gif

اما عن وجود كود يقوم بهذه العملية فاعتقد انه سيكون طويل جدا لانه يعتمد على API لان هذا من خصائص الويندوز وليس من خصائص الاكسيس

انظر لهذا الكود الخاص بإضافة ايفونة بجانب الساعة

Imports System.Runtime.InteropServices
Imports System
Imports System.Resources
Imports System.IO
Public Class BalloonTip

#Region "Private Message handler Class"
   Private Class MessageHandler
	   Inherits Form '//Inherite from Form class so we can receive events

	   <DllImport("User32", CharSet:=CharSet.Auto)> _
	   Private Shared Function RegisterWindowMessage(ByVal lpString As String) As Int32
	   End Function

	   Private Const WM_USER As Integer = &H400
	   Private Const WM_USER_TRAY As Integer = WM_USER + 1
	   Private Const WM_MOUSEMOVE = &H200
	   Private Const WM_LBUTTONDOWN = &H201
	   Private Const WM_LBUTTONUP = &H202
	   Private Const WM_LBUTTONDBLCLK = &H203
	   Private Const WM_RBUTTONDOWN = &H204
	   Private Const WM_RBUTTONUP = &H205
	   Private Const WM_RBUTTONDBLCLK = &H206
	   Private Const WM_MBUTTONDOWN = &H207
	   Private Const WM_MBUTTONUP = &H208
	   Private Const WM_MBUTTONDBLCLK = &H209

	   Private Const NIN_BALLOONSHOW As Int32 = &H402
	   Private Const NIN_BALLOONHIDE As Int32 = &H403
	   Private Const NIN_BALLOONTIMEOUT As Int32 = &H404
	   Private Const NIN_BALLOONUSERCLICK As Int32 = &H405

	   Public Shadows Event Click(ByVal sender As Object, ByVal e As System.EventArgs)
	   Public Shadows Event DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs)
	   Public Shadows Event MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
	   Public Shadows Event MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
	   Public Shadows Event MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
	   Public Event Reload()
	   Public Event BalloonShow(ByVal sender As Object)
	   Public Event BalloonHide(ByVal sender As Object)
	   Public Event BalloonTimeout(ByVal sender As Object)
	   Public Event BalloonClick(ByVal sender As Object)

	   Private WM_TASKBARCREATED As Int32 = RegisterWindowMessage("TaskbarCreated")

	   Public Sub New()
		   ShowInTaskbar = False
		   StartPosition = FormStartPosition.Manual
		   Me.FormBorderStyle = FormBorderStyle.FixedToolWindow
		   Size = New Size(100, 100)
		   Location = New Point(-500, -500)
		   Show()
	   End Sub

	   Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
		   Select Case m.Msg
			   Case WM_USER_TRAY
				   Select Case m.LParam.ToInt32
					   Case WM_LBUTTONDBLCLK, WM_RBUTTONDBLCLK, WM_MBUTTONDBLCLK
						   RaiseEvent DoubleClick(Me, New MouseEventArgs(MouseButtons, 0, MousePosition.X, MousePosition.Y, 0))
					   Case WM_LBUTTONDOWN, WM_RBUTTONDOWN, WM_MBUTTONDOWN
						   RaiseEvent MouseDown(Me, New MouseEventArgs(MouseButtons, 0, MousePosition.X, MousePosition.Y, 0))
					   Case WM_MOUSEMOVE
						   RaiseEvent MouseMove(Me, New MouseEventArgs(MouseButtons, 0, MousePosition.X, MousePosition.Y, 0))
					   Case WM_LBUTTONUP
						   RaiseEvent MouseUp(Me, New MouseEventArgs(MouseButtons.Left, 0, MousePosition.X, MousePosition.Y, 0))
						   RaiseEvent Click(Me, New MouseEventArgs(MouseButtons.Left, 0, MousePosition.X, MousePosition.Y, 0))
					   Case WM_RBUTTONUP
						   RaiseEvent MouseUp(Me, New MouseEventArgs(MouseButtons.Right, 0, MousePosition.X, MousePosition.Y, 0))
						   RaiseEvent Click(Me, New MouseEventArgs(MouseButtons.Right, 0, MousePosition.X, MousePosition.Y, 0))
					   Case WM_MBUTTONUP
						   RaiseEvent MouseUp(Me, New MouseEventArgs(MouseButtons.Middle, 0, MousePosition.X, MousePosition.Y, 0))
						   RaiseEvent Click(Me, New MouseEventArgs(MouseButtons.Middle, 0, MousePosition.X, MousePosition.Y, 0))
					   Case NIN_BALLOONSHOW
						   RaiseEvent BalloonShow(Me)
					   Case NIN_BALLOONHIDE
						   RaiseEvent BalloonHide(Me)
					   Case NIN_BALLOONTIMEOUT
						   RaiseEvent BalloonTimeout(Me)
					   Case NIN_BALLOONUSERCLICK
						   RaiseEvent BalloonClick(Me)
					   Case Else
						   Debug.WriteLine(m.LParam.ToInt32)
				   End Select
			   Case WM_TASKBARCREATED
				   RaiseEvent Reload()
			   Case Else
		   End Select
		   MyBase.WndProc(m)
	   End Sub
   End Class
#End Region

   Private Result As Boolean

   <StructLayout(LayoutKind.Sequential)> Private Structure NOTIFYICONDATA
	   Dim cbSize As Int32
	   Dim hwnd As IntPtr
	   Dim uID As Int32
	   Dim uFlags As Int32
	   'Dim uCallbackMessage As IntPtr
	   Dim uCallbackMessage As Int32
	   Dim hIcon As IntPtr
	   <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=128)> Dim szTip As String
	   Dim dwState As Int32
	   Dim dwStateMask As Int32
	   <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=256)> Dim szInfo As String
	   Dim uVersion As Int32
	   <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=64)> Dim szInfoTitle As String
	   Dim dwInfoFlags As Int32
   End Structure

   Const NIF_MESSAGE As Int32 = &H1
   Const NIF_ICON As Int32 = &H2
   Const NIF_STATE As Int32 = &H8
   Const NIF_INFO As Int32 = &H10
   Const NIF_TIP As Int32 = &H4
   Const NIM_ADD As Int32 = &H0
   Const NIM_MODIFY As Int32 = &H1
   Const NIM_DELETE As Int32 = &H2
   Const NIM_SETVERSION As Int32 = &H4
   Const NOTIFYICON_VERSION As Int32 = &H5
   Const NIS_HIDDEN = &H1
   Const NIS_SHAREDICON = &H2

   Const NIIF_ERROR = &H3
   Const NIIF_INFO = &H1
   Const NIIF_NONE = &H0
   Const NIIF_WARNING = &H2

   Const NIM_SETFOCUS = &H4
   Const NIIF_GUID = &H5
   Const WM_USER = &H400
   Const WM_USER_TRAY = WM_USER + 1

   Private Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" ( _
	   ByVal dwMessage As Int32, _
	   ByRef lpData As NOTIFYICONDATA) As Boolean

   Private uNIF As NOTIFYICONDATA

   Public Enum enumSoundType
	   SOUND_FROMSYSTEM = 1
	   SOUND_FROMRESOURCE = 2
	   SOUND_FROMFILE = 3
   End Enum

   Public Enum enumIconType
	   ICON_NONE = NIIF_NONE
	   ICON_INFO = NIIF_INFO
	   ICON_WARNING = NIIF_WARNING
	   ICON_ERROR = NIIF_ERROR
   End Enum

#Region "Event declarations of tray icon"
   Public Event Click(ByVal sender As Object, ByVal e As System.EventArgs)
   Public Event DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs)
   Public Event MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
   Public Event MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
   Public Event MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
   Public Event BalloonShow(ByVal sender As Object)
   Public Event BalloonHide(ByVal sender As Object)
   Public Event BalloonTimeout(ByVal sender As Object)
   Public Event BalloonClick(ByVal sender As Object)
#End Region

   Private WithEvents Messages As MessageHandler = New MessageHandler

   Private m_ContextMenu As ContextMenu '//Assign Contex menu
   Private m_VisibleBeforeBalloon As Boolean
   Private m_Visible As Boolean
   Private m_Icon As System.Drawing.Icon '//Icon which will appear in system tray

   Public Sub New()
	   With uNIF
		   .hwnd = Messages.Handle '//Message object will receive all events
		   .cbSize = Marshal.SizeOf(GetType(NOTIFYICONDATA))
		   .uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
		   .uCallbackMessage = WM_USER_TRAY
		   .uVersion = NOTIFYICON_VERSION
		   .szTip = ""
		   .uID = 0
	   End With
   End Sub
   Protected Overrides Sub Finalize()
	   Visible = False
	   MyBase.Finalize()
   End Sub

   Public Property Icon() As System.Drawing.Icon
	   Get
		   Return m_Icon
	   End Get
	   Set(ByVal Value As System.Drawing.Icon)
		   m_Icon = Value
		   uNIF.uFlags = uNIF.uFlags Or NIF_ICON
		   uNIF.hIcon = Icon.Handle
		   If Visible Then
			   Shell_NotifyIcon(NIM_MODIFY, uNIF)
		   End If
	   End Set
   End Property

   Public Property Text() As String
	   Get
		   Return uNIF.szTip
	   End Get
	   Set(ByVal Value As String)
		   uNIF.szTip = Value
		   If Visible Then
			   uNIF.uFlags = uNIF.uFlags Or NIF_TIP
			   Shell_NotifyIcon(NIM_MODIFY, uNIF)
		   End If
	   End Set
   End Property
   Public Property ContextMenu() As System.Windows.Forms.ContextMenu
	   Get
		   Return m_ContextMenu
	   End Get
	   Set(ByVal Value As System.Windows.Forms.ContextMenu)
		   m_ContextMenu = Value
	   End Set
   End Property

   Public Property Visible() As Boolean
	   Get
		   Return m_Visible
	   End Get
	   Set(ByVal Value As Boolean)
		   m_Visible = Value
		   If m_Visible Then
			   Shell_NotifyIcon(NIM_ADD, uNIF)
		   Else
			   Shell_NotifyIcon(NIM_DELETE, uNIF)
		   End If
	   End Set
   End Property
   Public Sub ShowNotifyBalloonTip(Optional ByVal Text As String = "Message", _
		   Optional ByVal Title As String = "Title", _
		   Optional ByVal Icon As enumIconType = enumIconType.ICON_INFO, _
		   Optional ByVal Timeout As Integer = 2000)

	   m_VisibleBeforeBalloon = m_Visible
	   With uNIF
		   .uFlags = .uFlags Or NIF_INFO
		   .uVersion = Timeout
		   .szInfo = Text
		   .szInfoTitle = Title
		   .dwInfoFlags = Convert.ToInt32(Icon)
	   End With

	   If Not Visible Then
		   '//By changing Visble Property it will show icon in sys tray
		   Visible = True
	   Else
		   '//This will modify attributes if already visible
		   Shell_NotifyIcon(NIM_MODIFY, uNIF)
	   End If

	   '//After showing balloon tip again switch to standard tooltip
	   uNIF.uFlags = uNIF.uFlags And Not NIF_INFO
   End Sub

   Private Shadows Sub Messages_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Messages.Click
	   RaiseEvent Click(Me, e)
   End Sub

   Private Shadows Sub Messages_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Messages.DoubleClick
	   RaiseEvent DoubleClick(Me, e)
   End Sub

   Private Shadows Sub Messages_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Messages.MouseDown
	   RaiseEvent MouseDown(Me, e)
   End Sub

   Private Shadows Sub Messages_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Messages.MouseMove
	   RaiseEvent MouseMove(Me, e)
   End Sub

   Private Shadows Sub Messages_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Messages.MouseUp
	   RaiseEvent MouseUp(Me, e)

	   If e.Button = MouseButtons.Right Then
		   Messages.Activate()
		   Dim Position As Point = New Point(Cursor.Position.X - Messages.PointToScreen(New Point(0, 0)).X, Cursor.Position.Y - Messages.PointToScreen(New Point(0, 0)).Y)
		   If Not m_ContextMenu Is Nothing Then m_ContextMenu.Show(Messages, Position)
	   End If
   End Sub

   Private Sub Messages_Reload() Handles Messages.Reload
	   If Visible Then Visible = True
   End Sub

   Private Sub Messages_BalloonShow(ByVal sender As Object) Handles Messages.BalloonShow
	   RaiseEvent BalloonShow(Me)
   End Sub

   Private Sub Messages_BalloonHide(ByVal sender As Object) Handles Messages.BalloonHide
	   RaiseEvent BalloonHide(Me)
   End Sub

   Private Sub Messages_BalloonTimeout(ByVal sender As Object) Handles Messages.BalloonTimeout
	   If Not m_VisibleBeforeBalloon Then Visible = False
	   RaiseEvent BalloonTimeout(Me)
   End Sub

   Private Sub Messages_BalloonClick(ByVal sender As Object) Handles Messages.BalloonClick
	   If Not m_VisibleBeforeBalloon Then Visible = False
	   RaiseEvent BalloonClick(Me)
	   Clicked()
   End Sub
   Public Sub Clicked()

   End Sub
End Class

لمزيد من المعلومات زاجع هذا الرابط

/index.php?showtopic=73568

اختكم

زهره

تم تعديل هذه المشاركة بواسطة zahrah في 24 يوليو 2006 في 21:13

#6

أختي العزيزة زهرة لم أفلح في تطيبق الكود

أرجو أن ترفقي لي مثال إذا لم يكن لديك مانع وهل هناك مكتبات تضاف إلى المشروع أم لا .

وأنا آسف على ثقل دمي وسامحيني .

أما بالنسبة للرابط لا يعمل ولا أعلم ما المشكلة .

#7

اخي الفاضل ابو عبير

السلام عليكم ورحمة الله وبركاته

الكود السابق خاص بـ Microsoft Visual Basic.NET وليس ببرنامج الاكسيس لانه يعتمد على API الخاص بالويندوز ولم اقل لك ان هذا الكود يتم وضعه في الاكسيس لانه اساسا لا يمكن تطبيقه بهذه الطريقة فلو اردنا تطبيقه على برنامج الاكسيس فسوف نقوم بتعديله بالكامل ليتناسب مع متطلبات VBA ( فيجول بيسك للتطبيقات الخاص بالاكسيس )

الامر الاخر الرابط موجود في منتديات الفريق العربي للبرمجة قسم Microsoft Visual Basic.NET

انظر هذا الرابط

/index.ph...p;hl=NotifyICOn

#8

والله أحرجتينا بكرمك

أختي العزيزة لا نستطيع أن نوفيك حقك ولكن لكي منا الدعاء في ظهر الغيب .

اللهم أغفر لزهرة وأستر عليها بستر الذي لا يزول .

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

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