امتیاز موضوع:
  • 2 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
null کردن آیکن
نویسنده پیام
mabus آفلاین
Banned

ارسال‌ها: 30
موضوع‌ها: 10
تاریخ عضویت: دى ۱۳۹۰

تشکرها : 20
( 21 تشکر در 16 ارسال )
ارسال: #1
null کردن آیکن
سلام دوستان،
گاهی لازم میشه این کار رو انجام داد،(الان متاسفانه واسه من لازم شده) پس لطفا نگید نیازی به ابن کار نیست ویا جوابی بدید که منو حرصی کنه...

وقتی به یک فرم و یا یک شی مثل SysTray، از طریق مشخصه ی Iconش بهش آیکن میدیم،
چطوری میتونیم
اون آیکن رو (درحین برنامه نویسی)، Null کنیم (یعنی بدون آیکن)
ودوباره وقتی نیازش داشتیم برابر همون مقدار آیکن قبلی بکنیم ( یعنی با آیکن)
من اینو نوشتم ولی جواب نداد:
systray.Icon= "C:\address\address...\icon.ICO" '<<<adrese icon
نوشتم ولی اررو 13 رو میده
یا این:
systray.Icon=vbnull
حالا من شی (چی) کنم؟!
۱۶-دى-۱۳۹۰, ۰۱:۰۲:۵۶
ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321
HamedFaa آفلاین
كاربر دو ستاره
**

ارسال‌ها: 117
موضوع‌ها: 16
تاریخ عضویت: اسفند ۱۳۸۹

تشکرها : 15
( 61 تشکر در 47 ارسال )
ارسال: #2
RE: null کردن آیکن
شما نباید آیکن رو نال کنید باید برنامه رو از حالت نمایش تو systray خارج کنید.
این سورس رو برات نوشتم

ماژول
کد:
Public Declare Function SetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProcA Lib "user32" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function Shell_NotifyIconA Lib "shell32.dll" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long

Public Type NOTIFYICONDATA
  cbSize As Long
  hWnd As Long
  uID As Long
  uFlags As Long
  uCallbackMessage As Long
  hIcon As Long
  szTip As String * 64
End Type

Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4

Public formloaded As Boolean
Public oldproc As Long

Public Function proc&(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long)
  If Msg = 1400 And lParam = 517 And formloaded Then Form1.PopupMenu Form1.mnu
  proc = CallWindowProcA(oldproc, hWnd, Msg, wParam, lParam)
End Function

فرم
کد:
Option Explicit

Private Sub Command1_Click()
  Dim nid As NOTIFYICONDATA
  With nid
    .hWnd = Me.hWnd
    .cbSize = Len(nid)
    .uID = 0
  End With
  Shell_NotifyIconA NIM_DELETE, nid
  SetWindowLongA Me.hWnd, -4, oldproc
End Sub

Private Sub Command2_Click()
  Dim nid As NOTIFYICONDATA
  With nid
    .cbSize = Len(nid)
    .hWnd = Form1.hWnd
    .uID = 0
    .uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP
    .uCallbackMessage = 1400
    .hIcon = Form1.Icon
    .szTip = "Tooltip here" & vbNullChar
  End With
  Shell_NotifyIconA NIM_ADD, nid
End Sub

[تصویر:  untitled.jpg]
۱۶-دى-۱۳۹۰, ۰۸:۳۸:۴۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321
mabus آفلاین
Banned

ارسال‌ها: 30
موضوع‌ها: 10
تاریخ عضویت: دى ۱۳۹۰

تشکرها : 20
( 21 تشکر در 16 ارسال )
ارسال: #3
RE: null کردن آیکن
HamedFaa ی عزیز، جوابت از اونایی بود که اول تاپیک گفتم از این جوابا ندید،
من مشکلی توی نمایش دادن یا عدم نمایش دادن ایکن ندارم....

اول اینکه من از کامپوننت Codejock.Controls استفاده میکنم که یک شی systray داره و من از این شی استفاده میکنم
دوم اینکه وقتی که فرم رو توسط دستور
("CloseIt = FindWindow(vbNullString, "Form1
(PostMessage CloseIt, WM_CLOSE, CLng(0), CLng(0
میبندم،
فرم درواقع (ظاهرا) exit میشه اما یه فرم دیگه همچنان با اون فرمی که توسط دستور بالا بسته شده کار میکنه(به هر دلیلی)
وقتی این اتفاق میفته ایکن فرمی که (همون فرمی که با دستور بالا بستیمش) کاربر exitش کرده، دوباره نمایش داده میشه
نمونه کوچکش رو برای رفع خطا پایین گذاشتم ببینید:


فایل‌(های) پیوست شده
.rar   icon systray.rar (اندازه: 559.92 KB / تعداد دفعات دریافت: 41)
۱۶-دى-۱۳۹۰, ۱۵:۲۷:۵۷
ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321
mabus آفلاین
Banned

ارسال‌ها: 30
موضوع‌ها: 10
تاریخ عضویت: دى ۱۳۹۰

تشکرها : 20
( 21 تشکر در 16 ارسال )
ارسال: #4
RE: null کردن آیکن
توروخدا جواب بدین، مهمه واسم
اگه راهی هست بگین.
(آخرین ویرایش در این ارسال: ۱۸-دى-۱۳۹۰, ۱۵:۲۹:۳۹، توسط mabus.)
۱۸-دى-۱۳۹۰, ۱۵:۲۳:۵۷
ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321
lvlehdi آفلاین
تازه وارد

ارسال‌ها: 12
موضوع‌ها: 2
تاریخ عضویت: مرداد ۱۳۹۰

تشکرها : 6
( 8 تشکر در 6 ارسال )
ارسال: #5
RE: null کردن آیکن
سلام دوستان منم دونبال همچین چیزیم
منو تو command میام یک عکس توش لود میکنم
کارم که تموم میشه میخوام عکس حذف بشه دستوری مخوام انجام بدم
command1.picture="adres"
command1.picture=vbnull
vbempty
""
اینا را قرار دادم اما اررور میده چی کار کنم؟
۱۹-دى-۱۳۹۰, ۰۰:۳۵:۲۱
ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321
mabus آفلاین
Banned

ارسال‌ها: 30
موضوع‌ها: 10
تاریخ عضویت: دى ۱۳۹۰

تشکرها : 20
( 21 تشکر در 16 ارسال )
ارسال: #6
RE: null کردن آیکن
lvlehdi دوست گرامی
سلام
خودم فهمبدم باید چیکار کنم،
دوتا pictureBox رو فرم میزارم، یکیش رو خالی(null) میزاریم بمونه، یکیش رو هم، خاصیت Pictureش رو برابر آیکن مورد نظرمون قرار میدیم،
وقتی میخواستیم null بشه خاصیت Icon یا picture شی مورد نظرمون رو برابر Picture_Null.Picture قرار میدیم
و وقتی دوباره میخواستیم حاوی Icon یا عکس مورد نظر بشه، شی مورد نظرمون رو برابر Picture_NotNull.Picture قرار میدیم.
شاید روش درستی نباشه ولی بهرحال واسه من جواب داد
---
ااگه واسه توام جواب داد خبرشو بده
۱۹-دى-۱۳۹۰, ۰۱:۴۰:۵۹
ارسال‌ها
پاسخ
تشکر شده توسط : lvlehdi, mahdi321
lvlehdi آفلاین
تازه وارد

ارسال‌ها: 12
موضوع‌ها: 2
تاریخ عضویت: مرداد ۱۳۹۰

تشکرها : 6
( 8 تشکر در 6 ارسال )
ارسال: #7
RE: null کردن آیکن
mabus دوست گرامی
سلام
واقعا ممنون مرسی جواب داد من بجای Picturebox از image استفاده کردم
بهترین راحل هم همین بود که شما گفتیدWink
*دوتا image mizarim اولی را icon مورد نظر را لود میکنی تو image2 را خالی قرار میدیم
command1.picture=image1.picture
این حالت عکس را تو command لود میکنه برای اینکه null بشه
از
command1.picture=image2.picture
چون تو image2 چیزی نداشتیم بخاطر همین اینجا دیگه تو command هیچ عکسی قابل نمایش نیست و null شده:X
۱۹-دى-۱۳۹۰, ۰۳:۲۱:۲۴
ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321
HamedFaa آفلاین
كاربر دو ستاره
**

ارسال‌ها: 117
موضوع‌ها: 16
تاریخ عضویت: اسفند ۱۳۸۹

تشکرها : 15
( 61 تشکر در 47 ارسال )
ارسال: #8
RE: null کردن آیکن
البته این جواب سوال شما نبود. یه راه حل بود.

برای خالی کردن کنترل image یا picture میتونید از این کد هم استفاده کنید.
کد:
Picture1.Picture = LoadPicture("")
۱۹-دى-۱۳۹۰, ۰۸:۱۸:۲۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  تغییر آیکن هنگام کپی RAMA2009 2 3,861 ۰۵-اردیبهشت-۱۳۹۱, ۰۰:۳۵:۰۸
آخرین ارسال: RAMA2009
  replace کردن یا delete کردن فایل سیستمی ویندوز ppcsoft 6 5,903 ۱۳-آذر-۱۳۹۰, ۲۲:۰۵:۰۶
آخرین ارسال: ppcsoft
  ]گذاشتن Tooltip برا آیکن های listveiw pariya1 1 2,320 ۰۳-تير-۱۳۹۰, ۱۰:۱۹:۰۰
آخرین ارسال: pariya1
  مخفی کردن آیکن ها در Systray rezanew 3 3,350 ۲۲-آذر-۱۳۸۷, ۰۴:۱۷:۴۳
آخرین ارسال: dk-arta
  قرار دادن آیکن برنامه در SysTray mojtabamalaekeh 0 3,881 ۲۲-آبان-۱۳۸۷, ۱۰:۳۲:۳۴
آخرین ارسال: mojtabamalaekeh
  کپی کردن دسته جمعی با واید کارت و لاگ کردن اررور؟؟؟ sylvester 10 10,464 ۲۱-مهر-۱۳۸۷, ۱۹:۳۷:۰۸
آخرین ارسال: ajlajlajl
  مخفی کردن و غیر قابل حذف کردن ویروس lord_viper 7 6,522 ۲۲-خرداد-۱۳۸۷, ۱۸:۰۲:۳۱
آخرین ارسال: lord_viper
  زیپ کردن و آنزیپ کردن فایل Payman62 2 5,534 ۱۸-مرداد-۱۳۸۶, ۲۰:۵۳:۵۹
آخرین ارسال: Payman62
  جلوگیری کردن از گیر کردن برنامه ba_maram_shiraz 7 6,854 ۱۱-شهریور-۱۳۸۵, ۰۸:۲۶:۱۶
آخرین ارسال: ba_maram_shiraz
  تغییر آیکن یه فایل EXE از طریق VB ba_maram_shiraz 3 3,812 ۲۲-مرداد-۱۳۸۵, ۱۰:۱۹:۰۶
آخرین ارسال: ba_maram_shiraz

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS