PDA

View Full Version : پیغام out of memory در Resize فرم



S_O_S1982
شنبه 08 اسفند 1388, 12:12 عصر
دوستان سلام

مشکلی که مطرح می کنم و به دلیل اینکه اطلاعات زیادی در موردش ندارم و شاید کسی که فقط بهش برخورد کرده بتونه دلیلش و بگه ..

مشکل من اینه که در یک mdiform یک Tree view گذاشتم و فرم هام رو رو اون نمایش می دم ، رو هر فرمی هم که کاربر کلیلک کنه ، اون فرم باز میشه
وقتی من این کار رو برای چندین بار پشت سر هم انجام می دم ، یعنی فرم و باز می کنم و می بندم ، بعد از یک مدت در اجرای event کی که مربوط به Formresize فرم اصلی برنامه یعنی همون mdiform هست ، پیغام out of memory و می ده ، برنامه رو که دوباره اجرا می کنم کار می کنه ، تا اینکه باز بعد از یه مدت که یک فرم خاصی رو باز و بسته می کنم ، این اخطار رو میده
کسی تا حالا به این مشکل برخورده ؟

vbhamed
شنبه 08 اسفند 1388, 14:33 عصر
سلام

اون قسمت برنامتون رو ارسال كنيد

S_O_S1982
شنبه 08 اسفند 1388, 15:11 عصر
سلام

اون قسمت برنامتون رو ارسال كنيد


سلام
جایی که مارکش کردم ، جایی هست که error میده ، البته بعد از اینکه این error رو داد من ازش رد هم که بشم ، فرم های دیگه رو که می خوام باز کنم ، بازم هم همین Error رو می ده

ممنون



Private Sub MDIForm_Resize()

If Me.WindowState = 1 Then Exit Sub
If Me.Width < Screen.Width / 2 Then Me.Width = Screen.Width / 2
If Me.Height < Screen.Height / 2 Then Me.Height = Screen.Height / 2
m_MainTreeForm.top = 0
m_MainTreeForm.Left = 0
m_MainTreeForm.Height = Me.ScaleHeight
If m_MainTreeForm.Width > Me.ScaleWidth / 2 Then m_MainTreeForm.Width = Me.ScaleWidth / 2
If Not m_frmCurrentForm Is Nothing Then
m_frmCurrentForm.Height = m_MainTreeForm.Height
m_frmCurrentForm.Width = Me.ScaleWidth - m_MainTreeForm.Width
m_frmCurrentForm.Left = m_MainTreeForm.Width
m_frmCurrentForm.top = m_MainTreeForm.top
m_frmCurrentForm.Show
End If

End Sub

vbhamed
شنبه 29 اسفند 1388, 15:50 عصر
سلام

كدتون رو به شكل زير تغيير بدين


Private Sub MDIForm_Resize()

On Error Resume Next

Static run As Byte

If run Then Exit Sub

If Me.WindowState = 1 Then Exit Sub

run = 1
'--------------------------------------------

If Me.Width < Screen.Width / 2 Then Me.Width = Screen.Width / 2
If Me.Height < Screen.Height / 2 Then Me.Height = Screen.Height / 2

m_MainTreeForm.Top = 0
m_MainTreeForm.Left = 0
m_MainTreeForm.Height = Me.ScaleHeight

If m_MainTreeForm.Width > Me.ScaleWidth / 2 Then m_MainTreeForm.Width = Me.ScaleWidth / 2
If Not m_frmCurrentForm Is Nothing Then

m_frmCurrentForm.Height = m_MainTreeForm.Height
m_frmCurrentForm.Width = Me.ScaleWidth - m_MainTreeForm.Width
m_frmCurrentForm.Left = m_MainTreeForm.Width
m_frmCurrentForm.Top = m_MainTreeForm.Top
m_frmCurrentForm.Show
End If


'-------------------------------------------
run = 0

End Sub


فقط يادتون باشه اگر جايي خواستيد دستور Exit Sub بزاريد حتما قبلش run = 0 رو هم بزاريد