PDA

View Full Version : ایجاد یک object توسط کد نویسی



mahmoodreza
شنبه 28 شهریور 1383, 16:10 عصر
سلام
چجوری میشه که مثلا من یک تکست باکس را بوسیله کد ایجاد کنم.
تویه ای اس پی من این امکان داشتم که کدهای این ابجکت را هم ببینم و حت میتونستم که اون ها را تغییر بدم...
آیا این امکان در وی بی هم هست ؟
یک چیزی مثلا شبیه creat.textbox???

و یک سوال دیگه ایا امکان اینکه کدهای ابجکتهای ایجاد شدهه بر روی فرم را ببینم هست؟
ممنون

kochol
شنبه 28 شهریور 1383, 17:29 عصر
این سوال من هم است
و فکر میکنم باید از دستور
dim txtb as new textbox
استفاده کرد که نتونستم انجامش بدم 8-)

mahyar_net
شنبه 28 شهریور 1383, 20:43 عصر
من تا اونجا که می دونم شما می تونید از کد زیر استفاده کنید :
imports system.controls
که کد بالا را در اولین خط وارد کرده و کد زیر را در ادامه وارد کنید:
dim txtb as new textbox

Gidora
شنبه 28 شهریور 1383, 21:39 عصر
توی VB 6.0 به علت عدم شیی محوری استفاده از این روشها امکانپذیر نیست و باید از یک سری روشهای عتیقه دیگه استفاده کرد یک روش اینه:

Dim objTxt As TextBox
Set objTxt = Me.Controls.Add("VB.textbox", "txt")یک روش دیگه هم استفاده از آزایه‌های کنترله. ابتدا یک TextBox روی فرم بگذارید. مقدار Index رو صفر قرار بدید بعد بقیه رو با دستور Load اضافه کنید.

Load Text1(1)
Load Text1(2)
Text1(1).Visible = True
Text1(2).Visible = True
...
بعد هم باید خصوصیات Left و Top و ... رو تنظیم کنید تا درست دیده بشن.

kochol
شنبه 28 شهریور 1383, 21:40 عصر
ممنون
باید امتحانش کنم

mahmoodreza
دوشنبه 30 شهریور 1383, 17:43 عصر
سلام
ممنون
متاسفانه اولین کد کار نکرد و دومین هم اگه مقدار من ثابت نباشه نمیتونم فرم را بسازم... یعنی اینکه اگه قرار باشه تویه یک حلقه بزارم به مشکل میخورم...
راه دیگه ای به نظرتون نمیرسه ؟

Ali_mx
دوشنبه 30 شهریور 1383, 22:21 عصر
من هم همین مشکلات رو در وی بی 6 داشتم
راه حل اینه:
VB.Net
(:D)

mr_esmaily
دوشنبه 30 شهریور 1383, 23:06 عصر
سلام
کار نشد نداره!

Dim WithEvents ctlTimer As VB.Timer
Dim WithEvents ctlText As VB.TextBox
Dim WithEvents ctlCommand As VB.CommandButton
Private Sub ctlCommand_Click()
ctlText.Text = "You Clicked the Command button"
ctlTimer.Enabled = False
Set ctlTimer = Nothing
ctlCommand.Caption = "Thank's"
ctlText.BackColor = vbYellow
End Sub
Private Sub ctlTimer_Timer()
If ctlCommand.Caption = "Click Me" Then
ctlCommand.Caption = "Herry Up!"
ctlText.BackColor = vbBlue
Else
ctlCommand.Caption = "Click Me"
ctlText.BackColor = vbRed
End If
End Sub

Private Sub Form_Load()
Set ctlTimer = Controls.Add("VB.Timer", "ctlTimer1", Form1)
ctlTimer.Interval = 1000

Set ctlText = Controls.Add("VB.TextBox", "ctlText1", Form1)
ctlText.Move 100, 100, 2500, 100
ctlText.BackColor = vbRed
ctlText.Visible = True

Set ctlCommand = Controls.Add("VB.CommandButton", "ctlCommand1", Form1)
ctlCommand.Move 500, 500, 1500, 500
ctlCommand.Caption = "Click Me"
ctlCommand.Visible = True
End Sub
درضمن بعد از قرار دادن این کد در پروژه خود می توانید مانند ابجکتهای دیگه به خصوصیات و رفتارهایشان دسترسی پیدا کنید.

:P

کم حوصله
دوشنبه 30 شهریور 1383, 23:23 عصر
:تشویق: :تشویق: :تشویق:
ایول اسمائیلی خان

MM_Mofidi
دوشنبه 30 شهریور 1383, 23:47 عصر
:تشویق: :تشویق:
داش اسماعیل اگه بخواهیم چنتا ازش درست کنیمچی(حلقه for(
ضمنا من چیزای دیگه(Picturebox,Checkbox,..) را درست کردم اما در Sub ctlCommand_Click() قابلل دسترسی نبود؟؟؟ :shock: :?

mr_esmaily
دوشنبه 30 شهریور 1383, 23:16 عصر
سلام

اگه بخواهیم چنتا ازش درست کنیمچی(حلقه for(
می تونین از کد زیر استفاده کنید

Dim objTxt(4) As TextBox

For i = 0 To 4
Set objTxt(i) = Me.Controls.Add("VB.textbox", Chr(i + 65), Me)
objTxt(i).Left = 100
If i <> 0 Then objTxt(i).Top = objTxt(i - 1).Top + 400
objTxt(i).Height = 100
objTxt(i).Visible = True
Next i

من چیزای دیگه(Picturebox,Checkbox,..) را درست کردم اما در Sub ctlCommand_Click() قابلل دسترسی نبود؟؟؟
شما باید در قسمت جنرال و با کمک کلمه کلیدی WithEvents نوع ابجکت و نام اون رو تعریف کنید.

Dim WithEvents "نام کنترل" As VB."نوع کنترل"
البته همیشه لازم نیست بصورت بالا باشه مثلا برای اینترنت اکسپلورر بصورت زیر عمل میشه

Dim WithEvents Exp As InternetExplorer

:P