PDA

View Full Version : سوال: مشکل در End کردن برنامه



Ninja-Assassin
پنج شنبه 31 مرداد 1392, 13:49 عصر
ســـــــلام دوستان خوبید خسته نباشید :X
ببخشید یه سوال داشتم من تو یه برنامه ای یه قسمتش گیر کردم
یه تکه برنامه گذاشتم به اون نگاه کنید تو Form2 یه تکست باکس و یه چک باکس هست که چک باکس فعال باشه برنامه با ضربدر end میشه و وقتی غیر فعال باشه در صورت زدن ضربدر یه پسورد میخواد تا از برنامه خارج شه و پسوردش همون تکست باکس Form2 هست تو تکست باکس به صورت پیش فرض End نوشته شده با زدن ضربدر (در صورتی که چک باکس غیر فعال باشه) یه کادری ظاهر میشه که پسوردو میخواد اگه طرف End رو تایپ کنه خارج میشه ولی اگه نکنه یا یه چیز دیگه وارد کنه خارج نمیشه
خوب این توضیحات برنامه
مشکل اینجاست اگه کاربر کنسل بزنه یا پسورد رو اشتباه وارد کنه یه پیغام میاد میگه پسورد غلطه وقتی اوکی رو میزنی فرم Hide میشه اگه میشه این مشکلو برام حل کنید خیلی ممنون میشم :قلب:
هر کاری کردم نشد که وقتی کاربر esc زد یا غلط پسورد رو نوشت فرم برگرده نمیشه :(

mmssoft
پنج شنبه 31 مرداد 1392, 14:12 عصر
الان درست هستش...

یه پیشنهاد : سعی کنید کدهاتون رو یه کم تر و تمیز تر بنویسید تا بعدا که خواستید ویرایش کنید به مشکل برنخورید.

miladatashin
پنج شنبه 31 مرداد 1392, 14:22 عصر
کل کدی که تو رویداد unload فرم نوشتید رو پاک کنید و این کد رو جایگزین کنید


Private Sub Form_Unload(Cancel As Integer)
Dim I As String
If (Form2.ChkE.Value = 0) Then
I = InputBox("Please enter the correct password:", "Password")
If I = Form2.txt Then
End
Else
Cancel = 1
MsgBox "Password is incorrect!", vbOKOnly + vbDefaultButton1 + 16, "Incorrect"
End If
End If
End Sub

Ninja-Assassin
پنج شنبه 31 مرداد 1392, 14:59 عصر
واییییییییی مرسی از لطفت هر دوتون مشکلم حل شد خیلییییی ممنوووووون :قلب:

mmssoft منظورتون از کمتر فهمیدم آره من عادت دارم کدو پیچیده کنم و منظورتون از تمیز تر فک کنم اینه که همه ی کد هارو کنار هم مینویسم از اول اینجوری بودم الان من یه برنامه بزرگ دارم مینویسم فک کنم فقط خودم ازش سر در میارم :)))))
شما چه پیشنهادی دارید من چطوری باید بنویسم؟؟

mmssoft
پنج شنبه 31 مرداد 1392, 15:07 عصر
من علاوه بر تصحیح برنامتون، شیوه کد نویسیش رو هم تغییر دادم... برین یه نگاهی بهش بندازین (کدهای فرم اول) و با کد های خودتون مقایسه کنید، منظورم رو می فهمید...

mmssoft
پنج شنبه 31 مرداد 1392, 15:11 عصر
در ضمن بهتره از توضیحات هم برای کدهای مهم یا پیچیدتون استفاده کنید :

برای مثال :

Form2.Show 1,Form1 'نمایش فرم دوم

Ninja-Assassin
پنج شنبه 31 مرداد 1392, 15:31 عصر
بله چشم ممنون بخاطر محبتتون حتما به توصیه هاتون عمل میکنم بازم ممنون ایشالله سعی میکنم از این به بعد تمیز تر بنویسم :)

Ninja-Assassin
پنج شنبه 31 مرداد 1392, 15:51 عصر
ببخشید یه سوال دیگه :خجالت:
تو این تکه برنامه آیکن برنامه تو Notification Area قرار میگیره یه منو هم رو آیکن هست وقتی رو آیکن کلیک راست میکنی بسته نمیشه حتما باید یه گزینه ای رو انتخاب کنی
میخوام اگه میشه یه کاری کنید که با کلیک به یه جا دیگه یا دسکتاپ اینا اون منو بسته شه ممنون

meys34
پنج شنبه 31 مرداد 1392, 19:58 عصر
ببخشید یه سوال دیگه :خجالت:
تو این تکه برنامه آیکن برنامه تو Notification Area قرار میگیره یه منو هم رو آیکن هست وقتی رو آیکن کلیک راست میکنی بسته نمیشه حتما باید یه گزینه ای رو انتخاب کنی
میخوام اگه میشه یه کاری کنید که با کلیک به یه جا دیگه یا دسکتاپ اینا اون منو بسته شه ممنون

قبل از باز کردن popup این تابع {SetForegroundWindow (Me.hWnd)} رو فراخوانی کنید...

قبلا تو مایکروسافت دیده بودم ولی هرچی گشتم لینکشو پیدا نکردم...



تو این لینک هم استفاده کرده ولی توضیح نداده چرا باید از SetForegroundWindow استفاده کرد... به هرحال...
http://support.microsoft.com/kb/176085

Ninja-Assassin
جمعه 01 شهریور 1392, 11:35 صبح
ممنوووووووون داداش حل شد :قلب:

Private Declare Function FindWindowA Lib "user32.dll" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Dim Temp As Long

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static Message As Long
Message = X / Screen.TwipsPerPixelX
SetForegroundWindow (Me.hwnd)
Select Case Message
Case WM_RBUTTONUP: Me.PopupMenu mnuF2
Case WM_LBUTTONDBLCLK
Load Form1
Form1.Visible = True
End Select
End Sub

majid12376
شنبه 12 بهمن 1392, 22:31 عصر
سلام
اگر تو Unlaod فرم دستور cancel=ture رو بزنی فرم به هیچ عنوان بسته نمیشه
ولی اگر cancel=false بزنی بسته میشه