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

[ تمت الإجابة ]هل توجد طريقة لتثبيت حجم الفورم

بدأه ابن بسطا في 31 أكتوبر 2008 · 7 رد · 1,648 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

مع الشكر

#2

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

اخر الكريم ابن بسطا

نعم توجد طريقة لجعل الفورم غير قابلة للاتساع كما طلبت

الكود بسيط جداا وهو كالاتى

Form1.BorderStyle = vbFixedSingle

ومرفق صورة توضح إمكانية تغيير هذه الخاصية عن طريق التصميم (Design Time)

post-173948-1225478007.jpg

اخوك

مهندس : مــــــودى

#3

اخى الكريم ابن بسطا

عذرا , لقد فهمت سؤالك بطريقة اخرى ولم الاحظ انك تريد الاحتفاظ بزرارى التكبير والتصغير اعلى الفورمة

لذلك اليك هذا الحل البسيط (هو طبعا مش عملى 100 فى الـ 100 بس هيفى بالغرض)

فى الحدث Form_Resize (وهو الحدث الذى يتم تنفيذه كلما حاولت تغيير حجم الفورمة) قم بوضع الكود التالى (والغرض منه تثبيت حجم الفورم):

Private Sub Form_Resize()

Form1.Width = 7500

Form1.Height = 5850

End Sub

وبذلك فى كل مرة تحاول تكبير الفورم هترجع تانى للحجم اللى انت محدده

طبعا فى حل تانى بأستخدام الـ API's بس ده حل مؤقت لحد ماجيبلك الكود الاخر

وشكرا

#4

طريقتين،

من خلال اختيار القيمة Fixed Single كما يظهر في الصورة

post-173948-1225478007.jpg

التي وضعها الأخ في الأعلى

ثم تنتقل إلى خاصية MaxButton و MinButton وتعطيهم القيمة TRUE.

باستخدام Windows API, تقوم بإلغاء خاصة WS_SIZEBOX من Style النافذة

Private Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias _
	 "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, _
	 ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32.dll" Alias _
	 "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long

Private Const WS_SIZEBOX As Long = &H40000
Private Const GWL_STYLE As Long = -16
Private Const SW_SHOW As Long = 5

Private Sub Form_Activate()
Dim Style As Long
	Style = GetWindowLong(Me.hwnd, GWL_STYLE)
	Style = Style Xor WS_SIZEBOX
	Style = SetWindowLong(Me.hwnd, GWL_STYLE, Style)
	ShowWindow Me.hwnd, SW_SHOW
End Sub

تم تعديل هذه المشاركة بواسطة Xacker في 31 أكتوبر 2008 في 22:35

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#5

الاساتذة الافاضل Mooddy و Xacker اشكركم علي ما تم تقديمة من عون لي فالطريقتين قاما بتوصيلي للنتيجة المطلوبة

وبالنسبة لطريقة الاستاذ Mooddy

الخاصة بالكود

Private Sub Form_Resize()

Form1.Width = 7500

Form1.Height = 5850

End Sub

كان ينقصها ان نعطي MaxButton القيمة TRUE لتصبح كما اريد

اما بالنسبة لطريقة الاستاذ Xacker

فقامت بتنفيز ما اريد بالضبط ايضا بالرغم من عدم استخدام Windows API

ولكن لي سوال اين او كيف استخدم Windows API

مع الشكر

#6

ضع الكود السابق في مشروع وسترى كيف يتم توزيعه في المشروع، إن كنت تريد استخدام دالة API معينة ولا تعرف الطريقة فاطرح سؤالك في قسم البرمجة بـ Windows API.

عادة يتم وضع الدوال والثوابت الخاصة بها في module ويتم استدعاءها من داخل الفورم من خلال جعلها Public.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#7

استاذ Xacker

بالفعل عندما وضعت الكود في الفورم وجدت تم توزيعة مشكور لك تعبك وانا انتهيت من برنامجي فهو مجرد الة حاسبة لحساب قيم محددة تفيدني في عملي اي مجرد برنامج بسيط لاني مبتدا في الفيجول واجهل امور كثيرة واشكر انت والاستاذ Mooddy علي حسن مساعدتكم لي

ولقد وضعت برنامجي في المرفقات لابداء الراي والنصيحة ان كانت لديكم اي ملاحظات

GDR.ZIP

#8

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

تمت الإجابة على الموضوع

إدارة الفريق العربي للبرمجة

سبحان الله وبحمده ... سبحان الله العظيم

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…