PDA

View Full Version : سوال: قرار گرفتن text در پایین صفحه در حالت maximize



pmoshir
شنبه 04 مهر 1388, 10:29 صبح
مشکل اینه که میخوام در load فرم top تکست باکس رو طوری تنظیم کنم که در تمامی مانیتورها در پایین فرم قرار بگیره.ضمنا فرم در حالت ماکسیمم باید باشه.
اگه همکاری کنید ممنون میشم.

pmoshir
شنبه 04 مهر 1388, 12:55 عصر
دوستان درخواست کمک دارم.:ناراحت:

alirezabahrami
شنبه 04 مهر 1388, 15:41 عصر
مشکل اینه که میخوام در load فرم top تکست باکس رو طوری تنظیم کنم که در تمامی مانیتورها در پایین فرم قرار بگیره.ضمنا فرم در حالت ماکسیمم باید باشه.
اگه همکاری کنید ممنون میشم.
با سلام
نمونه اصلاح شده را ببين!
فقط يادت باشه كه با توجه به مكاني كه براي تكست باكس نسبت به بالاي فرم در نظر مي گيريد عدد ثابت را كم و زياد كن
موفق باشيد

pmoshir
شنبه 04 مهر 1388, 16:00 عصر
متشکرم آقای بهرامی

ولی مشکله من حل نشد.چون روی یه مانیتوره دیگه که کوچکتر یا بزرگتر باشه Error میده.یه سوال میشه عدد 1700 رو یه جوری لود کرد یعنی تشخیص داد.چون رو هر کامپیوتری این عدد فرق میکنه.آیا میشه؟؟؟

باز هم متشکرم از همکاریتون

alirezabahrami
شنبه 04 مهر 1388, 16:19 عصر
متشکرم آقای بهرامی

ولی مشکله من حل نشد.چون روی یه مانیتوره دیگه که کوچکتر یا بزرگتر باشه Error میده.یه سوال میشه عدد 1700 رو یه جوری لود کرد یعنی تشخیص داد.چون رو هر کامپیوتری این عدد فرق میکنه.آیا میشه؟؟؟

باز هم متشکرم از همکاریتون
مطمئني كهerrorميده ؟ چون همين الآن اين فايل را روي دو كامپيوتر 17 و 15 اينچ امتحان كردم و هيچ اروري صادر نشد . و قاعدتاً هم نبايد errorبده ، چرا كه در كد: Text2.Top = Me.WindowHeight - 1700
Me.WindowHeight ارتفاع فرم جاري است وعدد 1700 نيز مقدار فاصله اي است كه تكست باكس از قسمت پائين بايد داشته باشد و اگر ميخواهيد تكست باكس بالاتر قرار بگيرد اين عدد بايد بيشتر شود .
موفق باشيد

pmoshir
دوشنبه 06 مهر 1388, 09:44 صبح
نکته همین جاست جناب بهرامی ارتفاع فرم جاری با رزولیشن های متفاوت و اندازه متفاوت مانیتورها تغییر میکنه و وقتی عدد 1700 رو ست کنیم با تغییر رزولیشن کامپیوتر Erro دریافت میکنیم.

alirezabahrami
دوشنبه 06 مهر 1388, 11:03 صبح
نکته همین جاست جناب بهرامی ارتفاع فرم جاری با رزولیشن های متفاوت و اندازه متفاوت مانیتورها تغییر میکنه و وقتی عدد 1700 رو ست کنیم با تغییر رزولیشن کامپیوتر Erro دریافت میکنیم.
با سلام
1 - نكنه دوباره فايل اولي خودت را آزمايش ميكنيدوفايلي كه بنده آن را اصلاح كردم آزمايش نكرده ايد .
2- بنده مطمئنم كه فايل اصلاح شده با تغيير مانيتور و تغيير روزليشن مشكلي ندارد . با اين وجود از دوستان ديگر هم استدعا ميشود يكبار فايل اصلاح شده را با روزليشن هاي مختلف تست كنند .
با تشكر

alirezabahrami
سه شنبه 07 مهر 1388, 08:19 صبح
نکته همین جاست جناب بهرامی ارتفاع فرم جاری با رزولیشن های متفاوت و اندازه متفاوت مانیتورها تغییر میکنه و وقتی عدد 1700 رو ست کنیم با تغییر رزولیشن کامپیوتر Erro دریافت میکنیم.

1- ابتدا عيناً كد اول را در يك ماژول عمومي كپي و پيست كن
2-كد دوم را در رويداد لود فرم كپي كن
3- با توجه به روزليشن هاي مختلف عدد 1700 را تغيير بده
موفق باشيد



Public dblYRes As Double
Public dblXRes As Double
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
Private Declare Function GetSystemMetrics Lib "User32" (ByVal nIndex As Long) As Long
'Constants for GetSystemMetrics
Const SM_CXSCREEN = 0 ' Width of screen
Const SM_CYSCREEN = 1 ' Height of screen

Public objResolution As Object
Public objCcResolution As Object
Public Sub Get_System_Metrics()
dblYRes = GetSystemMetrics(SM_CYSCREEN)
dblXRes = GetSystemMetrics(SM_CXSCREEN)
End Sub
Public Sub ChangeRes(iWidth As Double, iHeight As Double)
Dim a As Boolean
Dim i As Integer
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
ChangeDisplaySettings DevM, 0
End Sub
Public Sub ReChangeResolution()
Dim strResolution As String
Dim intResolution As Integer
Set objResolution = CreateObject("Scripting.FileSystemObject")
If objResolution.FileExists("c:\Crs.Bin") = True Then
Set objCcResolution = objResolution.OpenTextFile("c:\Crs.Bin", 1, -1)
If objCcResolution.atEndofline = False Then
strResolution = Trim(objCcResolution.READALL)
objCcResolution.Close
'******** Return XResolution
intResolution = InStr(1, strResolution, ",", vbTextCompare)
dblXRes = Trim(Left(strResolution, intResolution - 1))

'******** Return YResolution

strResolution = Right(strResolution, Len(strResolution) - intResolution)
intResolution = InStr(1, strResolution, ",", vbTextCompare)
dblYRes = Trim(strResolution)


objResolution.DeleteFile "c:\Crs.Bin", True

Call ChangeRes(dblXRes, dblYRes)
End If
End If
End Sub








Call Get_System_Metrics
If dblXRes = 800 And dblYRes = 600 Then
Text2.Top = Me.WindowHeight - 1700
ElseIf dblXRes = 960 And dblYRes = 600 Then
Text2.Top = Me.WindowHeight - 1700
ElseIf dblXRes = 1024 And dblYRes = 768 Then
Text2.Top = Me.WindowHeight - 1700
ElseIf dblXRes = 1088 And dblYRes = 612 Then
Text2.Top = Me.WindowHeight - 1700
ElseIf dblXRes = 1152 And dblYRes = 864 Then
'Text2.Top = Me.WindowHeight - 2300
ElseIf dblXRes = 1280 And dblYRes = 720 Then
Text2.Top = Me.WindowHeight - 1700
ElseIf dblXRes = 1280 And dblYRes = 800 Then
Text2.Top = Me.WindowHeight - 1700
ElseIf dblXRes = 1280 And dblYRes = 960 Then
Text2.Top = Me.WindowHeight - 1700
ElseIf dblXRes = 1280 And dblYRes = 1024 Then
Text2.Top = Me.WindowHeight - 1700
End If

e601
جمعه 17 مهر 1388, 20:56 عصر
سلام

ضمن تشکر از آقای بهرامی فکر میکنم راه بهتر و کوتاهتری هم وجود داره !

فایل ضمیمه رو مشاهده کنید.

یا علی...