امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
حذف شئ در زمان اجرا
نویسنده پیام
فاطمه وطن دوست آفلاین
عضو افتخاری
****

ارسال‌ها: 510
موضوع‌ها: 101
تاریخ عضویت: اردیبهشت ۱۳۸۷

تشکرها : 936
( 1000 تشکر در 386 ارسال )
ارسال: #1
حذف شئ در زمان اجرا
سلام

برای حذف یه شئ در زمان اجرا چی کار باید کرد؟

اگرم بخوام یه USER CONTROL ایجاد کنم که براش EVENT تعیین کنم ( رویداد حذف

- CLS یا DELETE) که بتونم اون یوز کنترل رو حذف کنم ( مثلا با راست کلیک از منو

میان بر یوزر کنترل -گزینه DELETE )

من تو ساخت یوزر کنترل زیاد وارد نیستم.

اگرم دارم اشتباه میرم بهم بگین. Shy

بسته آموزشی فتوشاپ جلوه... در صورت تمایل به داشتن این بسته پیغام خصوصی بدید.
نرم افزار اندرویدی آزمون تستی ...... (مخصوص مربیان و هنر جو ها)
۱۲-تير-۱۳۸۷, ۱۲:۲۸:۰۲
ارسال‌ها
پاسخ
hamed_Arfaee آفلاین
مدیر بخش
*****

ارسال‌ها: 1,334
موضوع‌ها: 231
تاریخ عضویت: تير ۱۳۸۳

تشکرها : 1250
( 2634 تشکر در 730 ارسال )
ارسال: #2
RE: حذف شئ در زمان اجرا
با سلام
كنترلي كه هنگام طراحي رسم شده (بوجود آمده) را نمي توان هنگام اجرا حذف كرد
ولي ميتوان همان كنترل را موقع اجرا بوجود آورد و در همان زمان هم حذف كرد با دستور
Controls.Add
Controls.Remove
اينهم يك مثال :
کد:
Dim WithEvents ComSavBmp As VB.CommandButton
Dim i As Integer
Private Sub Command1_Click()
On Error Resume Next
i = i + 1
  Set ComSavBmp = Controls.Add("VB.CommandButton", "ComSavBmp" & i, Me)
    With ComSavBmp
        .Move 950, 1365 + (i * 330), 3060, 330
        .Caption = "IranVig ..."
        .Enabled = True
        .Visible = True
    End With
End Sub
Private Sub Command2_Click()
Controls.Remove "ComSavBmp" & i
i = i - 1
End Sub
Private Sub ComSavBmp_KeyPress(KeyAscii As Integer)
Dim tr As String
tr = "1234567890" & Chr(8)
If InStr(tr, Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
Private Sub Form_Load()
i = 0
End Sub

حامد ارفعی

موفقيت، پيش رفتن است، نه به نقطه ي پايان رسيدن.(آنتوني رابينز)


تریگرها در SQL server

آیا میدانید SQL ای
۱۲-تير-۱۳۸۷, ۱۴:۲۶:۳۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : فاطمه وطن دوست, mojtabamalaekeh
فاطمه وطن دوست آفلاین
عضو افتخاری
****

ارسال‌ها: 510
موضوع‌ها: 101
تاریخ عضویت: اردیبهشت ۱۳۸۷

تشکرها : 936
( 1000 تشکر در 386 ارسال )
ارسال: #3
RE: حذف شئ در زمان اجرا
hamed_Arfaee نوشته است:با سلام
كنترلي كه هنگام طراحي رسم شده (بوجود آمده) را نمي توان هنگام اجرا حذف كرد
ولي ميتوان همان كنترل را موقع اجرا بوجود آورد و در همان زمان هم حذف كرد با دستور
Controls.Add
Controls.Remove
اينهم يك مثال :
کد:
Dim WithEvents ComSavBmp As VB.[b]CommandButton[/b]
Dim i As Integer
Private Sub Command1_Click()
On Error Resume Next
i = i + 1
  Set ComSavBmp = Controls.Add("VB.[b]CommandButton[/b]", "ComSavBmp" & i, Me)
    With ComSavBmp
        [b].Move 950, 1365 + (i * 330), 3060, 330[/b]
        [b].Caption = "IranVig ..."[/b]
        [b].Enabled = True[/b]
        [b].Visible = True[/b]
    End With
End Sub
Private Sub Command2_Click()
Controls.Remove "ComSavBmp" & i
i = i - 1
End Sub
Private Sub ComSavBmp_KeyPress(KeyAscii As Integer)
Dim tr As String
tr = "1234567890" & Chr(8)
If InStr(tr, Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
Private Sub Form_Load()
i = 0
End Sub

سلام
به جای Command Button بالا من از USERCONTROL استفاده کردم .

ولی مقدار ComSavBmp ---> Nothing هست ، چرا ؟

در ضمن در قسمت خصوصیت دکمه - خصوصیات یوزر کنترل رو نوشتم .

بسته آموزشی فتوشاپ جلوه... در صورت تمایل به داشتن این بسته پیغام خصوصی بدید.
نرم افزار اندرویدی آزمون تستی ...... (مخصوص مربیان و هنر جو ها)
(آخرین ویرایش در این ارسال: ۱۲-تير-۱۳۸۷, ۱۶:۲۱:۳۴، توسط فاطمه وطن دوست.)
۱۲-تير-۱۳۸۷, ۱۶:۰۳:۳۵
ارسال‌ها
پاسخ
mojtabamalaekeh آفلاین
کاربر با تجربه
****

ارسال‌ها: 566
موضوع‌ها: 104
تاریخ عضویت: آذر ۱۳۸۶

تشکرها : 1378
( 631 تشکر در 223 ارسال )
ارسال: #4
RE: حذف شئ در زمان اجرا
خیلی ممنون حامد خان. معنی WithEvents رو یاد گرفتم.
کد:
Set ComSavBmp = Controls.Add("VB.CommandButton", "ComSavBmp" & i, Me)
اینجوری که رویدادهای تعریف شده برای متغیر ComSavBmp فقط واسه آخرین دکمه ی ایجاد شده کار می کنن.
نمیشه متغیر ComSavBmp رو از نوع آرایه ای تعریف کرد یا آرایه ای از ComSavBmp درست کرد؟
نقل قول: به جای Command Button بالا من از USERCONTROL استفاده کردم .

ولی مقدار ComSavBmp ---> Nothing هست ، چرا ؟
چون یوزر کنترل شما جزئی از VB نیست بلکه جزئی از پروژه شماست.
چیکار کنیم آقا حامد؟ با اینکه تغییرات زیر رو دادم اما...
کد:
Dim WithEvents ComSavBmp As Project1.UserControl1
کد:
Set ComSavBmp = Controls.Add("Project1.UserControl1", "ComSavBmp" & i, Me)
اما این هم جواب نداد. مقدارش Nothing بود.


(آخرین ویرایش در این ارسال: ۱۲-تير-۱۳۸۷, ۱۷:۰۶:۵۰، توسط mojtabamalaekeh.)
۱۲-تير-۱۳۸۷, ۱۶:۵۳:۲۰
ارسال‌ها
پاسخ
تشکر شده توسط : فاطمه وطن دوست
hamed_Arfaee آفلاین
مدیر بخش
*****

ارسال‌ها: 1,334
موضوع‌ها: 231
تاریخ عضویت: تير ۱۳۸۳

تشکرها : 1250
( 2634 تشکر در 730 ارسال )
ارسال: #5
RE: حذف شئ در زمان اجرا
mojtabamalaekeh نوشته است:خیلی ممنون حامد خان. معنی WithEvents رو یاد گرفتم.
کد:
Set ComSavBmp = Controls.Add("VB.CommandButton", "ComSavBmp" & i, Me)
اینجوری که رویدادهای تعریف شده برای متغیر ComSavBmp فقط واسه آخرین دکمه ی ایجاد شده کار می کنن.
نمیشه متغیر ComSavBmp رو از نوع آرایه ای تعریف کرد یا آرایه ای از ComSavBmp درست کرد؟
بله قسمت ايونتها رو من اشتباهي كپي كردم
در اين حالت نميشه بصورت ارايه اي درست كرد اشيا رو ( يعني من نتونستم) ولي راهي هست كه اشيا بصورت آرايه اي باشن و بشه يك ايونت عمومي براشون تعريف كرد اونم اخر سر براش مثال ميزنم .

mojtabamalaekeh نوشته است:
نقل قول: به جای Command Button بالا من از USERCONTROL استفاده کردم .

ولی مقدار ComSavBmp ---> Nothing هست ، چرا ؟
چون یوزر کنترل شما جزئی از VB نیست بلکه جزئی از پروژه شماست.
چیکار کنیم آقا حامد؟ با اینکه تغییرات زیر رو دادم اما...
کد:
Dim WithEvents ComSavBmp As Project1.UserControl1
کد:
Set ComSavBmp = Controls.Add("Project1.UserControl1", "ComSavBmp" & i, Me)
اما این هم جواب نداد. مقدارش Nothing بود.

من خودم هم نفهميدم قضيه چيه يكم باهاش ور رفتم و اينا رو فهميدم
براي زادن يك كنترل از نوع يك يوزر كنترل بايد يك كارايي كرد !!!
در خصوصيات پروجكت Project Propertis و تو تب Make بايد گزينه Remove information about unused ActiveX controls رو بردارين
ولي بازم مشكلي هستم اونم اين كه نميشه به خصوصيات ذاتي كنترل در اين هنگام تولد دست پيدا كرد .
مثلا خصوصيت نمايش (Visible) بصورت ذاتي براي يوزر كنترل تعريف شده و براي كنترلهايي قابل دسترس است كه هنگام طراحي بوجود آمدند نه اجرا !!!
بصورت خلاصه تر خصوصيت visible براي يوزر كنترل تا زماني كه رسم نشده قابل دسترس نيست و اين نوع زادن در هنگام اجرا متفاوت است با حالت عادي .
پس الان نميشه يوزر كنترل بوجود اومده رو ديد !!! ولي بوجود مياد .!!!

پس ميشه بصورت ديگه ازش استفاده كرد
اول كنترل رو بوجود مياريم بعد از طريق اسمي كه بهش داديم باهاش كار ميكنيم و نشونش مي ديم ::
(( يه جور كلك رشتي ))
کد:
Dim i As Integer
Private Sub Command1_Click()
i = i + 1
   Controls.Add "Project1.UserControl1", "User" & i, Me
    With Me.Controls("User" & i)
        .Move 950, 1365 + (i * 330), 3060, 330
        .Caption = "IranVig ..."
        .Visible = True
    End With
End Sub
تو اين حالت اشيا بوجود ميان ولي بازهم نميشه بصورت آرايه اي باشن ولي تو مثال زير ميتونين بصورت آرايه اي استفاده كنين :
تو اين حالت بايد قبلا از كنترل يك نمومه بصورت انديس گذاري شده روي فرم موجود باشه مثلا بايد command1(0) موجود باشه تا بتونيم بقيه رو ازش كپي بگيريم ::

کد:
Private Sub CmdCopy_Click()
i = i + 1
Load Command(Command.Count)
Command(Command.UBound).Move 950, 1365 + (i * 330), 3060, 330
Command(Command.UBound).Visible = True
End Sub


نكته ::
1) اگه اشيا رو بصورت ارايه اي بوجود نياريم ميشه براشون ايونت هم تعريف كرد .
2) اگه نياز به توليد چندين شي هست (بصورت ارايه اي)و بايد به ايونتهاي اشيا دسترسي داشت بهتره كه از روش دوم استفاده بشه .

حامد ارفعی

موفقيت، پيش رفتن است، نه به نقطه ي پايان رسيدن.(آنتوني رابينز)


تریگرها در SQL server

آیا میدانید SQL ای
۱۳-تير-۱۳۸۷, ۰۳:۱۰:۳۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : mojtabamalaekeh, فاطمه وطن دوست
ajlajlajl آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,192
موضوع‌ها: 70
تاریخ عضویت: مهر ۱۳۸۴

تشکرها : 932
( 2618 تشکر در 1020 ارسال )
ارسال: #6
RE: حذف شئ در زمان اجرا
راه حل همه این مشکلات: VB.NET

میزان رای دشمن است!
[تصویر:  cff100.png]
۱۳-تير-۱۳۸۷, ۰۹:۴۸:۰۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : فاطمه وطن دوست
hamed_Arfaee آفلاین
مدیر بخش
*****

ارسال‌ها: 1,334
موضوع‌ها: 231
تاریخ عضویت: تير ۱۳۸۳

تشکرها : 1250
( 2634 تشکر در 730 ارسال )
ارسال: #7
RE: حذف شئ در زمان اجرا
يك مثال جالب تو MSDN پيدا كردم
نوع كنترل ها رو از VBcontrolExtender تعريف ميكنن ::
کد:
Dim WithEvents ComSavBmp As VBControlExtender
Dim i As Integer
Private Sub Command1_Click()
On Error Resume Next
i = i + 1
  Set ComSavBmp = Controls.Add("Priject1.UserControl1", "ComSavBmp" & i, Me)
    With ComSavBmp
        .Move 950, 1365 + (i * 330), 3060, 330
        .Caption = "IranVig ..."
        .Enabled = True
        .Visible = True
    End With
End Sub
البته بازهم تغييراتي كه قبلا گفتم بايد تو پروژه انجام بشه
http://support.microsoft.com/kb/190670

حامد ارفعی

موفقيت، پيش رفتن است، نه به نقطه ي پايان رسيدن.(آنتوني رابينز)


تریگرها در SQL server

آیا میدانید SQL ای
۱۴-تير-۱۳۸۷, ۱۰:۵۵:۲۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : فاطمه وطن دوست


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  بستن برنامه اکسل در حال اجرا aleas 1 1,064 ۲۳-شهریور-۱۳۹۸, ۱۷:۲۴:۱۱
آخرین ارسال: Di Di
  جلو گیری از اجرا فیلم aleas 3 4,380 ۲۰-بهمن-۱۳۹۶, ۱۹:۰۶:۱۴
آخرین ارسال: aleas
  اجرا نشدن keybd_event vbKeyMenu در ویندوز 8.1 javad917 3 2,627 ۱۳-آذر-۱۳۹۶, ۲۱:۲۰:۲۸
آخرین ارسال: javad917
  ارسال پارامتر به برنامه ی در حال اجرا. Blossom 42 27,149 ۰۹-اسفند-۱۳۹۳, ۲۲:۴۴:۱۶
آخرین ارسال: 9988
  اجرای خودکار برنامه در یک زمان خاص iman_yakoza 22 24,285 ۰۷-اسفند-۱۳۹۳, ۱۷:۰۶:۵۹
آخرین ارسال: Ghoghnus
  محاسبه میان چند ساعت و زمان مختلف sepahbod 5 6,496 ۰۴-تير-۱۳۹۲, ۱۶:۴۰:۴۵
آخرین ارسال: Ghoghnus
  [سوال] اجرا نشدن دستورات هندل کردن خطا در محیط IDE وی بی flush 6 6,016 ۰۵-اسفند-۱۳۹۱, ۲۱:۴۹:۳۵
آخرین ارسال: Payman62
  چگونه يه تايمر را روي فرم قرار دهيم و مدت اجرا آن را به يك ساعت تغيير دهيم! rap0661 10 11,357 ۱۱-خرداد-۱۳۹۱, ۱۹:۵۶:۵۸
آخرین ارسال: Ghoghnus
  كمك براي اجرا شدن برنامه فقط براي يك بار Mr.pRoGraMmer 15 15,373 ۰۴-شهریور-۱۳۹۰, ۰۳:۴۴:۴۸
آخرین ارسال: joker
  [سوال] اجرا و بررسی دستورات SQL در ADODB one hacker alone 2 3,205 ۱۶-مرداد-۱۳۹۰, ۱۰:۳۶:۱۵
آخرین ارسال: one hacker

پرش به انجمن:


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

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