نمایش نتایج 1 تا 9 از 9

نام تاپیک: ایجاد یک تابع برای استفاده در فرم های مختلف برنامه

  1. #1

    ایجاد یک تابع برای استفاده در فرم های مختلف برنامه

    سلام
    فرض کنید برنامه دارای چند فرم می باشد و در هر فرم تعدادی کنترل از نوع تکست باکس و یا لیبل وجود دارد . تعداد کنترل ها در هر فرم متغییر است
    میخواهم یک تابع (فانکشن ) داشته باشم با 10آرگومان ورودی( به تعداد حداکثر کنترل های فرم ها)
    میخواهم وقتی این تابع رو در هر فرم فراخوانی می کنم مثلاً تکست باکس های آن فرم تهی شود و یا کپشن لیبل های مشخصی که بر روی فرم است پاک شود.
    نمیدونم آیا امکان نوشتن چنین تابعی وجود دارد یا نه ؟
    با تشکر

  2. #2

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

    سلام
    فرض بفرمائیدیک تابع عمومی بصورت زیر داریم

    Public Function VisTxt(Txt1 As TextBox, Txt2 As TextBox, Txt3 As TextBox)
    Txt1.Visible = False
    Txt2.Visible = False
    Txt3.Visible = False

    End Function


    حالا فرمی داریم که فقط 2 تکست باکس دارد . میخواهم با استفاده از تابع فوق این دو تکست باکس را مخفی کنم
    فراخوانی تابع :

    Call VisTxt(text2, Text3)


    در کد فراخوانی فوق چون بجای سه ورودی دو ورودی درج شده خطا صادر میشود ولی اگر فرم من 3 تکست باکس داشته باشد مشکلی وجود ندارد
    در کل منظورم این است که آرگومان های اون تابع عمومی باید به چه صورتی نوشته شود که در فراخوانی اگر تعداد ورودی ها هم کمتر از تعداد آرگومان ها بود مشکلی ایجاد نشود
    آرگومان از نوع اختیاری باشد
    با تشکر
    آخرین ویرایش به وسیله atf1379 : سه شنبه 11 شهریور 1399 در 15:43 عصر

  3. #3

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

    نقل قول نوشته شده توسط atf1379 مشاهده تاپیک
    سلام
    فرض بفرمائیدیک تابع عمومی بصورت زیر داریم

    Public Function VisTxt(Txt1 As TextBox, Txt2 As TextBox, Txt3 As TextBox)
    Txt1.Visible = False
    Txt2.Visible = False
    Txt3.Visible = False

    End Function


    حالا فرمی داریم که فقط 2 تکست باکس دارد . میخواهم با استفاده از تابع فوق این دو تکست باکس را مخفی کنم
    فراخوانی تابع :

    Call VisTxt(text2, Text3)


    در کد فراخوانی فوق چون بجای سه ورودی دو ورودی درج شده خطا صادر میشود ولی اگر فرم من 3 تکست باکس داشته باشد مشکلی وجود ندارد
    در کل منظورم این است که آرگومان های اون تابع عمومی باید به چه صورتی نوشته شود که در فراخوانی اگر تعداد ورودی ها هم کمتر از تعداد آرگومان ها بود مشکلی ایجاد نشود
    آرگومان از نوع اختیاری باشد
    با تشکر

    Public Function VisTxt(Txt1 As TextBox, Optional Txt2 As TextBox, Optional Txt3 As TextBox)
    Txt1.Visible = False
    If Not Txt2 Is Nothing Then Txt2.Visible = False
    If Not Txt3 Is Nothing Then Txt3.Visible = False
    End Function

  4. #4

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

    نقل قول نوشته شده توسط the king مشاهده تاپیک

    Public Function VisTxt(Txt1 As TextBox, Optional Txt2 As TextBox, Optional Txt3 As TextBox)
    Txt1.Visible = False
    If Not Txt2 Is Nothing Then Txt2.Visible = False
    If Not Txt3 Is Nothing Then Txt3.Visible = False
    End Function

  5. #5

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

    نقل قول نوشته شده توسط the king مشاهده تاپیک

    Public Function VisTxt(Txt1 As TextBox, Optional Txt2 As TextBox, Optional Txt3 As TextBox)
    Txt1.Visible = False
    If Not Txt2 Is Nothing Then Txt2.Visible = False
    If Not Txt3 Is Nothing Then Txt3.Visible = False
    End Function

    سلام
    اگه عمل مخفی کردت تکست باکس ها رو در حلقه for ... next قرار بدهیم کد رو به چه صورتی باید نوشت ؟
    من کد رو بصورت زیر تغییر دادم ولی خطا میده


    Public Function VisTxt(Txt1 As TextBox, Optional Txt2 As TextBox, Optional Txt3 As TextBox)

    dim i as integer
    for i=1 to 3
    If Not "Txt" & i Is Nothing Then "Txt" & i.Visible = False

    End Function




  6. #6
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

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

    اگه عمل مخفی کردت تکست باکس ها رو در حلقه for ... next قرار بدهیم کد رو به چه صورتی باید نوشت ؟
    1- اسامی کنترل ها رو با , یا ; JOIN کنین و بصورت یک STRING یکجا به روتین بفرستین.

    2- در روتین اول اسامی رو SPLIT و بعد هر کدوم رو بصورت زیر باهاش کار کنین:
    me.controls(control_name).visible=false


    3- اگر همه اسامی کنترل ها مشابه هست مثل همین Txt1 , txt2 , ...
    FOR i=1 TO 3
    me.controls("Txt" & TRIM(i)).visible= false
    NEXT

  7. #7

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

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    1- اسامی کنترل ها رو با , یا ; JOIN کنین و بصورت یک STRING یکجا به روتین بفرستین.

    2- در روتین اول اسامی رو SPLIT و بعد هر کدوم رو بصورت زیر باهاش کار کنین:
    me.controls(control_name).visible=false


    3- اگر همه اسامی کنترل ها مشابه هست مثل همین Txt1 , txt2 , ...
    FOR i=1 TO 3
    me.controls("Txt" & TRIM(i)).visible= false

    NEXT
    ممنون جناب استاد mazoolagh !
    حالت سوم مد نظر هست و میخوام تابع رو بصورت عمومی تعریف کنم که در فرم های مختلف از اون استفاده کنم به همین خاطر یک متغییر عمومی بصورت Public frm As Form تعریف کردم و در فرم این متغییر رو بصورت Set frm = Me به فرم مربوطه نسبت میدم و بجای me در حلقه از frm استفاده می کنم ولی خطا صادر میشه
    فایل های ضمیمه فایل های ضمیمه

  8. #8
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,607

    Cool نقل قول: ایجاد یک تابع برای استفاده در فرم های مختلف برنامه

    سلام به همه من از VB6 شروع کردم به برنامه نویسی برای همین هم تا اونجایی که یادمه می شد از ورودی ParamArray هم در متود ها استفاده کرد.
    بنابراین نیازی نیست ورودی ها رو بصورت جداگونه تعریف کنید ی ورودی ParamArray برای متود با تایپ مورد نظر تعریف می کنید و از اون ورودی بعنوان یک آرایه با عناصری از همون تایپ استفاده می کنید.

    مثال:

    Public Sub Visiblity(ParamArray args() As TextBox)
    'Statements
    End Sub
    آخرین ویرایش به وسیله ROSTAM2 : سه شنبه 18 بهمن 1401 در 10:01 صبح

  9. #9

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

    نقل قول نوشته شده توسط ROSTAM2 مشاهده تاپیک
    سلام به همه من از VB6 شروع کردم به برنامه نویسی و به زبان بیسیک علاقه زیادی دارم برای همین هم تا اونجایی که یادمه می شد از ورودی ParamArray هم در متود ها استفاده کرد.
    بنابراین نیازی نیست ورودی ها رو بصورت جداگونه تعریف کنید ی ورودی ParamArray برای متود با تایپ مورد نظر تعریف می کنید و از اون ورودی بعنوان یک آرایه با عناصری از همون تایپ استفاده می کنید. تمام.

    مثال:

    Public Sub Visiblity(ParamArray args() As TextBox)
    'Statements
    End Sub


    https://groups.google.com/g/microsof.../c/tQKP_Z57JJs

    احسنت !

تاپیک های مشابه

  1. پاسخ: 4
    آخرین پست: یک شنبه 26 مرداد 1399, 00:59 صبح
  2. دسته و زیر دسته ها و طریقه نمایش محصولات هر دسته
    نوشته شده توسط rahahost در بخش Laravel Framework
    پاسخ: 16
    آخرین پست: شنبه 06 دی 1393, 22:13 عصر
  3. پاسخ: 2
    آخرین پست: پنج شنبه 20 آذر 1393, 09:07 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •