ورود

View Full Version : سوال: تعریف شئ با دستور



temp.1991
دوشنبه 17 تیر 1387, 00:30 صبح
آیا می توان یک شی را با یک دستور در ویژوال بیسیک تعریف کرد. بطور مثال اینکه در هنگام اجرای برنامه با زدن یک دکمه که در آن یک دستور برای درست کردن یک شئ نوشته شده است با زدن آن دکمه یک تکس باکس یا یک دکمه ایجاد شود ؟
من فکر می کنم که باید با همان دستور dim این کار را کرد و نوع آن را یک شی قرار داد . ولی من این کار را کردم و عملی نشد. لطفا به سوال من پاسخ دهید. :متفکر:
متشکرم.

sokote_bi_payan
دوشنبه 17 تیر 1387, 02:44 صبح
به نام خدا

با سلام

فکر نمی کنم بصورت عادی یعنی هیچی نداشته باشید و یک کنترل بسازید اما اگه مثلا یه تکست تو فرم قرار بدید بعد خاصیت ایندکس اونو مثلا بذارید صفر حالا میشه چندین تکست باکس درست کرد :


load text1(1)
text1.visible = true

Danial_Yousefi
دوشنبه 17 تیر 1387, 03:05 صبح
از طریق این کد میشه

dim frm(999) as form1

بعد تو کد برنامت می نویسی

nfrm=nfrm+1
frm(nfrm).visible=true

فاطمه وطن دوست
دوشنبه 17 تیر 1387, 07:02 صبح
سلام

لینک 1 هم میگه چطوری تولید کنید چطوری حذف کنید .

در ضمن واسه دسترسیش از لینک 2 هم میتونید استفاده کنید .

1-

http://barnamenevis.org/forum/showthread.php?t=112001&highlight=%D8%AD%D8%B0%D9%81


-2

http://barnamenevis.org/forum/forumdisplay.php?f=43&order=desc&page=2

majjjj
دوشنبه 17 تیر 1387, 10:23 صبح
آیا می توان یک شی را با یک دستور در ویژوال بیسیک تعریف کرد. بطور مثال اینکه در هنگام اجرای برنامه با زدن یک دکمه که در آن یک دستور برای درست کردن یک شئ نوشته شده است با زدن آن دکمه یک تکس باکس یا یک دکمه ایجاد شود ؟
من فکر می کنم که باید با همان دستور dim این کار را کرد و نوع آن را یک شی قرار داد . ولی من این کار را کردم و عملی نشد. لطفا به سوال من پاسخ دهید. :متفکر:
متشکرم.

این نمونه همونیه که میخواهی

اوبالیت به بو
دوشنبه 17 تیر 1387, 10:43 صبح
http://barnamenevis.org/forum/showpost.php?p=543902&postcount=3
آرايه كنترلي رو جستجو كنيد.

temp.1991
سه شنبه 18 تیر 1387, 12:11 عصر
با تشکر از همه ی دوستان .
ولی منظور من چیزی به جز استفاده از آرایه های اشیا بود من خودم ای راه رو می دونستم . آیا بدون استفاده از آرایه اشیا میشه چنین کاری کرد؟
فایلی رو که majjjj فرستاده بودید من خیلی از دستوراتش رو نمی دونم و نمیدونم که چیکار میکنند.

در واقع سوال اصلی من اینه که دستور زیر چیکار می کنه ؟ و آیا نمیشه برای این منظور از اون استفاده کرد؟
Dim text1 As Textbox

Mbt925
سه شنبه 18 تیر 1387, 13:23 عصر
با استفاده دستوری که گفتین نمیشه شیء ای رو ایجاد کرد ولی کاربرد دیگه ای داره که با توضیحات زیر بهش پی می برید.

اشیائی که رو یک فرم قرار دارن، در مجموعه ی کنترل های اون فرم وجود دارن، نام این مجموعه Controls Collection هست و
برای اینکه شیء ای به کنترل های رو یک فرم اضافه بشه، باید به این مجموعه اضافه بشه و برای حذف نیز باید از این مجموعه حذف بشه.

برای اینکه کنترلی به مجموعه اضافه یا از اون حذف بشه، دو متد برای مجموعه ی کنترل ها درنظر گرفته شده با نام Add و Remove

--------------اضافه کردن کنترل : استفاده از متد ADD

برای اینکه کنترلی رو به مجموعه اضافه کنید از دستور زیر استفاده کنید :



Form1.Controls.Add "VB.CommandButton" , "Ctrl1"
آرگومان اول، نوع کنترلیه که می خواین به مجموعه اضافه کنید و آرگومان دوم نام این کنترل جدیده.

با دستور بالا کنترل به مجموعه اضافه میشه ولی بروی Form1 ظاهر نمیشه، چون خصوصیت Visible کنترل هایی که جدید اضافه میشن بصورت پیش فرض False هست.

حال چطور باید خصوصیت Visible کنترل جدید رو True کرد؟

برای این منظور دو روش وجود داره :

روش اول :



Controls("Ctrl1").Visible = True
این روش، روش بدی نیست ولی کار باهاش کمی مشکله. از طرفی وقتی بعد از تایپ کردن Controls("Ctrl1") نقطه (.) قرار میدید، لیست خصوصیات کنترل جدید باز نمیشه، بنابراین کار یکم مشکل میشه.
راه حل ساده تر روش زیره :

روش دوم:

اول یه متغیر(شیء) از نوع کنترلی که می خوایم ایجاد کنیم ، تعریف می کنیم :



dim cmdCtrl as CommandButton
حالا یه تغییر کوچیک در دستور اضافه کردن کنترل جدید ایجاد می کنیم:



Set cmdCtrl = Form1.Controls.Add ( "VB.CommandButton" , "Ctrl1" )
با این تغییر ، وقتی کنترل جدید اضافه میشه ، یه ارجاع از اون کنترل در شیء cmdCtrl که ایجاد کردیم قرار می گیره، حالا هر تغییر روی شیء cmdCtrl ایجاد کنیم ، روی کنترلی که ایجاد کردیم اعمال میشه ،
برای مثال برای تغییر خصوصیت Visible کنترل جدید بصورت زیر عمل می کنیم:



cmdCtrl.Visible = True
همون طور که می بینید روش دوم ساده تره.
می تونید بجای تعریف شیء از نوع دکمه، شیءای از نوع Object ایجاد کنید، شیء Object برای ایجاد همه نوع کنترل قابل استفاده است.

البته این قضیه جزئیات و استثنائات زیاد داره که در این مقوله نمی گنجه.

--------------حذف کردن کنترل : استفاده از متد REMOVE

برای حذف کنترل از مجموعه ی کنترل ها به شکل زیر عمل کنید:



Controls.Remove "Ctrl1"
Ctrl1 نام کنترل ایه که می خواید حذفش کنید.



------


فکر کنم حالا به کاربرد تعریف شیء پی بردید!!!