سوال در مورد دستور move

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • saber2q

    • 2012/04/13
    • 90

    سوال در مورد دستور move

    سلام
    آیا راهی وجود داره که در دستورات VBA و در دستور Move، نقطه مرجع 0،۰ به جای اینکه بالا سمت چپ در نظر گرفته بشه، بالا سمت راست در نظر گرفته بشه و همه کنترل ها هم از نقطه بالا و سمت راستشون نسبت به نقطه مرجع موقعیت دهی بشن؟؟؟

    برای ساختن فرم های راست به چپ فارسی میخوام...
  • MEYTI

    • 2010/11/11
    • 362

    #2
    RE: سوال در مورد دستور move

    با سلام دوست عزیز
    بعیدی میدونم متد right در move وجود داشته باشه
    ولی شاید با بازی با اعداد بتونی به خواسته مورد نظر برسی

    Private Sub CommandButton1_Click()


    'Move each control on the form right 25 points
    'and up 25 points.
    Controls.Move -25, -25


    End Sub
    مهدی کریمی

    کامنت

    • saber2q

      • 2012/04/13
      • 90

      #3
      RE: سوال در مورد دستور move

      ممنون
      چند تا سوال دیگه:
      1- آیا با دستور move همزمان میشه ارتفاع و عرض کنترل رو هم داد؟
      2- چطور میشه جابجایی فرم را توسط کاربر با ماس امکانپذیر کنیم؟
      3- چجوری به تیتر لیست باکس ها مقدار بیدیم؟ (Listbox Head)
      4- اینم در مورد AND هست, فرض کنیم میخوام ابعاد 5عدد button رو همزمان و با یک دستور تغییر بدم, چطور این کار امکان پذیره که به ازاء هر کدوم یکبار ارتفاع و یک بار عرض ندم چون اینجوری فقط 10خط دستور باید بنویسم جهت ابعاد 5تا کلید؟
      5- چطوری میتونم طول متنی که در یک لیبل نوشته شده رو از لحاظ پیکسلی به دست بیارم؟؟ چون سایز فونت لیبل ها متغییره و باید به همون نسبت طول و ارتفاع هر لیبل رو متغیر در نظر بگیرم که متن داخلش از لیبل خارج نشه...

      کامنت

      • Javid Mokhtari
        مدير تالار ويژوال بيسيك

        • 2012/01/16
        • 1213

        #4
        RE: سوال در مورد دستور move

        چند تا سوال دیگه:
        1- آیا با دستور move همزمان میشه ارتفاع و عرض کنترل رو هم داد؟

        * اگه کد CommandButton1.Move رو نوشته و کلید فاصله رو بزنید طریقه ی وارد کردن طول،عرض،فاصله ی بالا و فاصله ی چپ را از طریق یک Label Box به شما نشان میدهد.
        ================================================== ====================================
        2- چطور میشه جابجایی فرم را توسط کاربر با ماس امکانپذیر کنیم؟

        * انجام این کار که ممکنه و مشکلی نیست...!!
        ================================================== ====================================
        3- چجوری به تیتر لیست باکس ها مقدار بیدیم؟
        * روی لیست باکس کلیک کنید و از قسمت Properties در گزینه ی Row Source آدرس محدوده ی مورد نظر برای Header را بدهید.......مثلاً: a1:c3
        ================================================== ====================================
        4- اینم در مورد AND هست, فرض کنیم میخوام ابعاد 5عدد button رو همزمان و با یک دستور تغییر بدم, چطور این کار امکان پذیره که به ازاء هر کدوم یکبار ارتفاع و یک بار عرض ندم چون اینجوری فقط 10خط دستور باید بنویسم جهت ابعاد 5تا کلید؟

        * می تونید از کد زیر استفاده کنید:
        Dim c As Control
        For Each c In UserForm1.Controls
        If TypeName(.c) = "CommandButton" Then
        c.Left = 20
        c.Top = 20
        c.Height = 40
        c.Width = 50
        End If
        Next c
        ================================================== ===============================
        5- چطوری میتونم طول متنی که در یک لیبل نوشته شده رو از لحاظ پیکسلی به دست بیارم؟؟ چون سایز فونت لیبل ها متغییره و باید به همون نسبت طول و ارتفاع هر لیبل رو متغیر در نظر بگیرم که متن داخلش از لیبل خارج نشه...
        [/quote]

        * روش مختلفی میشه به کار برد.
        مثلاً:
        میتونید یک نسبت بین اندازه فونت و انداره لیبلتون ایجاد کنید
        Label1.Width = Label1.FontSize + 55
        Label1.Height = Label1.FontSize + 55


        دوره های آموزش رایگان اکسل از صفر تا پیشرفته بصورت تصویری
        بیش از 60 جلسه آموزش ویدئویی رایگان

        شرکت در دوره:

        https://javidsoft.ir/courses/


        کامنت

        • saber2q

          • 2012/04/13
          • 90

          #5
          RE: سوال در مورد دستور move

          نوشته اصلی توسط jansiz hayat

          2- چطور میشه جابجایی فرم را توسط کاربر با ماس امکانپذیر کنیم؟

          * انجام این کار که ممکنه و مشکلی نیست...!!
          ================================================== ====================================

          4- اینم در مورد AND هست, فرض کنیم میخوام ابعاد 5عدد button رو همزمان و با یک دستور تغییر بدم, چطور این کار امکان پذیره که به ازاء هر کدوم یکبار ارتفاع و یک بار عرض ندم چون اینجوری فقط 10خط دستور باید بنویسم جهت ابعاد 5تا کلید؟

          * می تونید از کد زیر استفاده کنید:
          Dim c As Control
          For Each c In UserForm1.Controls
          If TypeName(.c) = "CommandButton" Then
          c.Left = 20
          c.Top = 20
          c.Height = 40
          c.Width = 50
          End If
          Next c
          سلام
          ممنون از پاسخ هاتون.
          در مورد سوال 2 میدونم خیلی ابتداییه ولی من پیداش نکردم, میشه راهش رو بگید؟

          در مورد سوال4: این روشی که گفتی برای مقدار دادن به تعدادی کنترل با نام مساوی و عددهای انتهایی به صورت پشت سر همه.
          یعنی روشی نیست که بشه چندین نام رو (که شبیه هم نیستن) با استفاده از یک دستور همزمان مقدار دهی کنیم؟

          کامنت

          • Javid Mokhtari
            مدير تالار ويژوال بيسيك

            • 2012/01/16
            • 1213

            #6
            RE: سوال در مورد دستور move


            سلام
            ممنون از پاسخ هاتون.
            در مورد سوال 2 میدونم خیلی ابتداییه ولی من پیداش نکردم, میشه راهش رو بگید؟

            * وقتی شما یک فرم رو ایجاد و اجرا می کنید،قاعدتاً با موس قابل جابجائی هستش.
            ================================================== =====================
            در مورد سوال4: این روشی که گفتی برای مقدار دادن به تعدادی کنترل با نام مساوی و عددهای انتهایی به صورت پشت سر همه.
            یعنی روشی نیست که بشه چندین نام رو (که شبیه هم نیستن) با استفاده از یک دستور همزمان مقدار دهی کنیم؟

            * نه اخوی اشتباه نکنید.کد بالا اصلاً با نام کامند کاری ندارد،بلکه با نوع آن کار دارد.
            برای امتحان نام کامند ها رو عوض کنید و کد رو اجرا کنید.خواهید دید که درست عمل می کند.


            دوره های آموزش رایگان اکسل از صفر تا پیشرفته بصورت تصویری
            بیش از 60 جلسه آموزش ویدئویی رایگان

            شرکت در دوره:

            https://javidsoft.ir/courses/


            کامنت

            • khakzad

              • 2010/03/17
              • 2034

              #7
              RE: سوال در مورد دستور move

              نوشته اصلی توسط jansiz hayat

              سلام
              ممنون از پاسخ هاتون.
              در مورد سوال 2 میدونم خیلی ابتداییه ولی من پیداش نکردم, میشه راهش رو بگید؟

              * وقتی شما یک فرم رو ایجاد و اجرا می کنید،قاعدتاً با موس قابل جابجائی هستش.
              ================================================== =====================
              در مورد سوال4: این روشی که گفتی برای مقدار دادن به تعدادی کنترل با نام مساوی و عددهای انتهایی به صورت پشت سر همه.
              یعنی روشی نیست که بشه چندین نام رو (که شبیه هم نیستن) با استفاده از یک دستور همزمان مقدار دهی کنیم؟

              * نه اخوی اشتباه نکنید.کد بالا اصلاً با نام کامند کاری ندارد،بلکه با نوع آن کار دارد.
              برای امتحان نام کامند ها رو عوض کنید و کد رو اجرا کنید.خواهید دید که درست عمل می کند.


              سلام
              با تشکر از شما
              اگر بخوایم جابجایی فرم امکان ناپذیر باشه چی؟
              فکر می کنم منظور دوستمون همین بوده!
              چون اون حالت ا ول پیش فرض هست

              کامنت

              Working...