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

ضبط مقاسات الشاشة

مغلق
بدأه HnHn في 14 يونيو 2004 · 6 رد · 2,469 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أولا أبغى طريقة

لتنسيق البرنامج بحيث يعمل على أي مقاس لشاشة المستخدم

يواءا 800 في 600 أو 1024 في 768 أو أي مقاس

ثانيا :

أبغى أجعل البرنامج لا يعمل في حالة وجود مقاس الشاشة

أكبر من . 600x 800 ويظهر رسالة بأن البرنامج يعمل على مقاس

600x800

سجل ايميلك هنا

googlejb5.gif ليصلك كل ما هو مفيد في عالم البرمجة
#2

السلام عليكم

اولا عند بدء تشغيل البرنامج يجب ان تفحص ابعاد الشاشة بالطريقة التالية

'Declaration
dim ScreenW as long 
Dim ScreenH as long

'Form Load
ScreenW = Screen.Width / 15
ScreenH = Screen.Height / 15

if ScreenW <> 800 and ScreenH <> 600 then 
   Msgbox "Screen Reselution must be 800*600"
  End
else
msgbox "test Ok"
end if

هذا الكود يفي بالغرض

تحياتي لك

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#3

وكيف عن طريق ال API يمكنني تغيير المقاس؟

فالمثال اعلاه فقط يتاكد من المقاس

من قال لا إله إلا الله صادقا دخل الجنة

موقعي للتعارف و تبادل الأخبار http://www.xybond.com

#4

السلام عليكم

هذه دوال APi لتغيير دقة الشاشة

فقط قم بنسخ الكود بالكامل ولصقه في الفورم

Private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lpDevMode As Any) As Boolean
Private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwflags As Long) As Long
    Const CCDEVICENAME = 32
    Const CCFORMNAME = 32
    Const DM_PELSWIDTH = &H80000
    Const DM_PELSHEIGHT = &H100000


Private Type DEVMODE
    dmDeviceName As String * CCDEVICENAME
    dmSpecVersion As Integer
    dmDriverVersion As Integer
    dmSize As Integer
    dmDriverExtra As Integer
    dmFields As Long
    dmOrientation As Integer
    dmPaperSize As Integer
    dmPaperLength As Integer
    dmPaperWidth As Integer
    dmScale As Integer
    dmCopies As Integer
    dmDefaultSource As Integer
    dmPrintQuality As Integer
    dmColor As Integer
    dmDuplex As Integer
    dmYResolution As Integer
    dmTTOption As Integer
    dmCollate As Integer
    dmFormName As String * CCFORMNAME
    dmUnusedPadding As Integer
    dmBitsPerPel As Integer
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
    End Type
    Dim DevM As DEVMODE




Sub ChangeRes(iWidth As Single, iHeight As Single)
    Dim a As Boolean
    Dim i&
    i = 0


    Do
        a = EnumDisplaySettings(0&, i&, DevM)
        i = i + 1
    Loop Until (a = False)
    Dim b&
    DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
    DevM.dmPelsWidth = iWidth
    DevM.dmPelsHeight = iHeight
    b = ChangeDisplaySettings(DevM, 0)
End Sub
        
Private Sub Command1_Click()
'åäÇ ãÞÇÓ ÇáÔÇÔÉ
ChangeRes 1024, 768
End Sub

تحياتي لكم

prof_1982@hotmail.com

تم تعديل هذه المشاركة بواسطة prof_1982 في 15 يونيو 2004 في 13:58

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#5

اعتقد انه مافيش حل غير ان انت تتحكم

فى مقاس الشاشه وتغيرها فى كل مره ويمكنك بعد

انهاء البرنامج اعاده الشاشه الى ماكانت عليه

#7

لأني قرأت عن هذه المعلومة في أحدى المواقع الخاصه بالفيجول

ولقيت أنهم يستخدمون هذا الأمر

on Erro Resume Next 
IbIstatus.width = me.width-1500
cmdnext.left=IbIstatus.width+700
cmdlast.left=cmdnext.left+340

ثم يستخدم جملة تكرار ويضع داخلها جميع الحقول الموجودة في الفورم

لتبيطق المقاسات علىيها جميعاً في حال تغير مقاسات

الشاشة

سجل ايميلك هنا

googlejb5.gif ليصلك كل ما هو مفيد في عالم البرمجة

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

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

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

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

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

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