تبليغاتX
Iranian Scorpion Security Group

Iranian Scorpion Security Group

همه چیز در مورد امنیت

از خصوصیت Tag غافل نشوید

از خصوصیت Tag غافل نشوید

بیشتر برنامه نویسان Visual Basic هیچ وقت از خصوصیت Tag که همراه اغلب کنترلها هست، استفاده نمی کنند. براستی این خصوصیت که کاری انجام نمی دهد، پس فلسفه وجودی آن چیست؟ واقعیت آنست که این خصوصیت در موارد زیادی بسیار سودمند است. می تواینید هر گونه اطلاعاتی که می خواهید را در خصوصیات Tag کنترل ذخیره کنید و بهر طریقی که مایلید از آن اطلاعات استفاده کنید.

یک مثال، زمانی است که آرایه ای از کنترلهای CommandButton ایجاد می کنید. برنامه نویسان اغلب از آرگومان Index که به روال رویداد Click پاس داده می شود، برای تشخیص اینکه کدام دکمه از آرایه کلیک شده است استفاده می کنند. با انتساب یک مقدار گویا به خصوصیت  Tag، می توانید در عوض از آن استفاده کرده و در نتیجه کد خواناتری داشته باشید. در اینجا کدی برای یک مثال ساده می بینید:       

Private Sub Command1_Click(Index As Integer)

Select Case Command1(Index).Tag
    Case "Exit"
        ' Code to exit the program goes here.
    Case "Cancel"
        ' Code to cancel goes here.
End Select

End Sub

یک روش دیگر برای استفاده از خصوصیات Tag زمانی است که با کنترل TreeView کار می کنید. TreeView از چندین گره تشکیل می شود وخوبست که بازای هر گره، علاوه بر متنی که نمایش می دهد،  داده هایی مرتبط با آن داشته باشیم. اینکار را می توان بسادگی با استفاده از خصوصیت Tag هر کدام از گره ها انجام داد.

 

+ نوشته شده در  پنجشنبه چهاردهم اردیبهشت 1385ساعت 1:22  توسط بیتا  | 

خالی کردن تمامی کادرهای متن(Text Box) روی یک فرم

خالی کردن تمامی کادرهای متن(Text Box) روی یک فرم

حتما تا کنون بارها صفحات وبی را با چندین فیلد متنی، مثل فرمی برای سفارش آنلاین دیده اید.  

این فرم ها اغلب یک دکمه Clear یا Reset دارند که متنی را که در تک تک فیلدها وجود دارد پاک می کند و شما می توانید دوباره از ابتدا شروع به پر کردن آنها کنید. می توانید همانند این کار را برای فرم های Visual Basucانجام دهید، یعنی همه کنترلهای TextBox روی فرم را خالی کنید تا داده های جدید در آنها وارد شود.

برای انجام این کار، از کلکسیون Controls فرم استفاده کنید. این کلکسیون بازای هر کنترلی که روی فرم قرار دارد، یک عنصر دارد. با چرخیدن در این کلکسیون و با استفاده از کلمه کلیدی TypeOf می توان نوع هر کدام از این کنترلها رامشخص کرد. اگر کنترل Text Box بود، متن آنرا پاک کرد و چنانچه Text Box نبود آنرا نادیده گرفت. در زیر یک روال برای خالی کردن تمامی کنترلهای TextBox روی فرم آمده است:  

Public Sub ClearTextBoxes()

Dim c As Control

For Each c in Controls
   If TypeOf c Is TextBox Then
      c.Text = ""
   End If
Next

End Sub

در ضمن می توانید این تکنیک را به سایر کنترلها نیز بسط دهید. برای مثال کد زیر تمامی کنترلهای Check Box روی فرم را خالی می کند(تیکشان را بر می دارد):

For Each c In Controls
  If TypeOf c Is CheckBox Then
    c.Value = False
  End I
f

Next

منبع: http://www.pgacon.com/visualbasic.htm

نویسنده: Peter G. Aitken

لینک به منبع: http://www.pgacon.com/visualbasic.htm#Prevent%20Multiple%20Program%20Instances%20From%20Running

+ نوشته شده در  جمعه هشتم اردیبهشت 1385ساعت 1:34  توسط بیتا  | 

جلوگیری از اجرای چندین نمونه از یک برنامه

جلوگیری از اجرای چندین نمونه از یک برنامه

بسیاری از برنامه های ویندوز، از جمله برنامه هایی که توسط Visual Basic ایجاد می شوند، اجازه اینرا می دهند که در آن واحد، بیش از یک نمونه یا کپی از برنامه اجرا شود.  برای مثال می توانید در یک زمان، دو یا چند کپی از Notepad را در حال اجرا داشته باشید و با آن فایلهای متنی مختلف را ویرایش کنید.  مواردی هستند که در آنها مجاز دانستن چندین نمونه از یک برنامه فکر خوبی نیست. ممکن است برنامه ای یک فولدر را زیرنظر داشته باشد و بدنبال فایل های جدیدی باشد که در آن قرار داده می شود؛ بدین ترتیب هیچ نیازی به داشتن دو نمونه در حال اجرا از این برنامه نیست. همینطور برنامه ای که که front-end یک بانک اطلاعاتی است بایستی محدود به یک نمونه گردد، چراکه داشتن دو یا چند کپی اجرایی از آن در یک زمان ممکن است منجر به خطاهای کار با داده ها شود.

برای جلوگیری از اجرای همزمان چندین نمونه از یک برنامه، از خصوصیت App.PrevInstance استفاده کنید. این خصوصیت درصورتیکه نمونه دیگری از برنامه در حال اجرا باشد، مقدار True بر می گرداند. می توانید در یک روتین رویداد Load برنامه از این خصوصیت استفاده کنید. می توانید اگر مقدار True برگرداند، پیغامی را به کاربر نشان دهید و در صورت تمایل قبل از متوقف کردن نمونه تکراری جدید، کپی در حال اجرا را فعال سازید. در زیر نمونه کدی که باید آنرا در روتین رویداد Load قرار دهید آمده است:           

If App.PrevInstance Then
    MsgBox "یک نمونه دیگر از این برنامه اکنون در حال اجراست"
    AppActivate App.Title
    Unload Me
End If

منبع: http://www.pgacon.com/visualbasic.htm

نویسنده: Peter G. Aitken

لینک به منبع: http://www.pgacon.com/visualbasic.htm#Prevent%20Multiple%20Program%20Instances%20From%20Running

+ نوشته شده در  شنبه دوم اردیبهشت 1385ساعت 0:26  توسط بیتا  | 

بنام خدا و سلام!

باسلام خدمت دوستان عزیز،

من بیتا، یه برنامه نویس تازه کار که اصلا خبره هم نیست و خودش هم مرتب داره از دیگران و اینجا و اونجا چیز یاد می گیره و بهمین دلیل هیچ ادعایی نداره، با یاد ایزد یکتا و امید به اینکه مطالبی که اینجا می نویسم مفید باشه و آموزنده، شروع می کنم. امیدوارم که فرصت کافی داشته باشم و بتونم در آینده بخش نکته ها و ترفندهای Visual Basic رو مرتب بروز کنم. لطفا از نظر دادن دریغ نفرمائید!

ضمنا از دوست خوبم DevilHell که این گوشه از وبلاگش رو در اختیار من گذاشته متشکرم.    
+ نوشته شده در  شنبه دوم اردیبهشت 1385ساعت 0:24  توسط بیتا  |