صفحه 4 از 6 اولاول ... 23456 آخرآخر
نمایش نتایج 121 تا 160 از 202

نام تاپیک: نفر بعدي كيه ؟ --------- ( ! يك تاپيك جالب و متفاوت ! )

  1. #121
    کاربر دائمی آواتار returnx
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    ?
    پست
    1,190

    نقل قول: نفر بعدي كيه ؟

    ما که کلا با شما موافقیم اما منظورتون رو از نکته نفهمیدم!! الان هدف شما مخفی شدن دوباره Scrollbar بود!؟

    نکته ويژوالي :

    خیلی ها با یک اندازه کردن کنترل های رو فرم مشکل دارن حالا شما به طور مثال 3 تا Textbox رو فرم بزارین یکی رو به اندازه مناسبی که مد نظرتون هست تبدیل کنید بعدش هم هر سه تا رو به ترتیب انتخاب کنید به طوری که Texbox که اندازش رو درست کردید و مد نظرتون هست رو آخر انتخاب کنید حالا به منوی Format برید و گزینه Make Same Size و بعدش هم گزینه ی Both رو انتخاب کنید میبینید دو textbox دیگه به راحتی هر چه تمام تر به اندازه Textbox اولی در اومده و یک اندازه شدند...

    نفر بعدی اصلا با این نکته حال نکرد چون نکته ها کم کم داره تموم میشه و داریم میرسیم به ابزار طراحی...
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 17:43 عصر

  2. #122

    نقل قول: نفر بعدي كيه ؟

    سلام عليکم
    اتفاقا برعکس من که خيلي حال کردم نميدونستم همين چيزي وجود داره
    ممنونم که اينو گفتي و کار من رو آسون کردي
    ======================================

    و کد آقاي واژدي
    - یک فرم ایجاد کرده، سپس در محیط آن دستگیره width را گرفته و تا اندازه ای که اسکرول بار پایین برنامه ظاهر شود پهنای فرم را افزایش میدهیم
    2- اسکرول بار را گرفته و تا سمت راست بکشید تا اندازه ای که گوشه سمت راست فرم را ببینید
    3- دوباره روی دستگیره کیک کرده و ان را به منتها الیه سمت چپ صفحه زمینه بکشید تا اندازه ای که اسکرول بار پایین مخفی میشود
    4- حالا بر روی اسکرول بار کلیک کرده و آنرا تا اندازه ای که میتوانید به سمت چپ بکشید
    من هم نفهميدم منظور آقاي واژدي چيه!!!!!

    نفر بعدي خود آقاي واژدي هستش که ميخواد در مورد کدشون توضيح بدن
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 17:44 عصر

  3. #123

    نقل قول: نفر بعدي كيه ؟

    نقل قول نوشته شده توسط ms2222
    اما منظورتون رو از نکته نفهمیدم!! الان هدف شما مخفی شدن دوباره Scrollbar بود!؟
    سلام علیکم
    اگر در ویندوز xp تست کنید، متوجه میشوید، اما در ویندوز 7 خیر، مشکلی نیست، نتیجه نکته بعد همان نتیجه ایست که در پست 133 اتفاق می افتد

    نفر بعدي خود آقاي واژدي هستش که ميخواد در مورد کدشون توضيح بدن
    دقیقا" درست بود :)

    نکته ويژوالي (باز هم نمیشه گفت نکته):
    یک شی مثلا" یک commandbutton بر روی فرم قرار بدین، سپس دستگیره هایش را گرفته و تغییر اندازه دهید، در حالی که هنوز دستگیره را رها نکرده اید دکمه Delete صفحه کلید را فشار دهید

    باز چطور شد؟

    نفر بعدی همان نتیجه ای را میگیرد که قرار بود در پست 135 اتفاق بیافتد ^_^
    آخرین ویرایش به وسیله vbhamed : سه شنبه 26 فروردین 1393 در 01:18 صبح
    .: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
    .: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]

    .: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.

  4. #124

    نقل قول: نفر بعدي كيه ؟

    سلام
    نفر بعدی همان نتیجه ای را میگیرد که قرار بود در پست 135 اتفاق بیافتد ^_^
    بازم خودم نفر بعدی بودم و قبلا" نتیجه گرفته ام :)

    نکته ويژوالي:
    نمیدونم شما هم تاکنون با این مورد برخورد داشته اید یا نه؛ همانگونه که میدانیم برای دستیابی به خصوصیت یک شی یا type یا ... اگر پس از نام آن یک نقطه بگذاریم لیست خصوصیات در دسترس آن ظاهر میشود، زمانی هم وجود دارد که لیست خصوصیات بسته شده و ما میتوانیم با ctrl+space مجددا" لیست را نمایش دهیم
    زمانی هم وجود دارد که دستور را نوشته ایم ولی با گذاشتن نقطه پس از آن لیست دستورات ظاهر نمیشود، به عنوان مثال قبلا" که نام فرم (Me) را مینوشتیم و نقطه می زدیم لیست متدهای فرم ظاهر میشد اما الآن هرکاری میکنیم این اتفاق نمی افتد، شاید بعضی از دوستان فکر کنند که ممکن است مشکل از برنامه باشد حال انکه اینطور نیست، چون این خود یکی از امکانات وی بی و یک نشانه و علامت است و باز نشدن لیست دستورات یا عدم نمایش ToolTip یک تابع (همون tooltipیی که بعد از نام یک تابع آرگومان دار با زدن space ظاهر میشود) و خیلی از موارد دیگر نشان از این دارد که خطایی در کدهای نوشته شده در روال فعلی وجود دارد، برای یافتن خطای مربوطه کافیست در همانجا یک لحظه F5 را فشار دهیم تا دستگیره خطا کدی که موجب این رفتار برنامه شده است را سریعا" آشکار کند

    برای بهتر متوجه شدن موضوع یک CommandButton با نام Command1 بر روی فرم قرار میدهیم و کد های زیر را در فرم کپی میکنیم، سپس سعی میکنیم لیست متدهای Me را با نقطه گذاری پس از آن بدست بیاوریم، اما اینطور نمیشود اما وقتی F5 را فشار دهیم دلیل این بی تفاوتی وی بی را پیدا می کنیم:

    Private Sub Command1_Click()
    '
    End Sub

    Private Sub Command1_Click()
    Me
    End Sub


    ببخشید خیلی موضوع را کش دادم

    نفر بعدی اطلاعات مفیدی در زمینه وی بی دارند که قصد دارن در اختیار سایر دوستان هم بزارن
    آخرین ویرایش به وسیله محسن واژدی : شنبه 16 مهر 1390 در 09:07 صبح
    .: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
    .: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]

    .: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.

  5. #125
    کاربر دائمی آواتار returnx
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    ?
    پست
    1,190

    نقل قول: نفر بعدي كيه ؟

    امیدوارم مفید باشه البته برای شما مفید نیست چون قطعا میدونید اما برای دوستانی که تازه شروع کردند قطعا مفیده...

    نکته ويژوالي:

    بعضی موقع ها ممکنه برنامتون به هر دلیلی تو یک حلقه بی پایان بیفته برای اینکه مجبور نشید VB6 رو Kill Proccess کنید میتونید از کلید های ترکیبی Ctrl+Pause استفاده کرده و برنامه رو متوقف کنید...
    اما چطور میتونید یک حلقه بی نهایت تو VB6 درست کنید!؟
    کسانی که با C++‎‎‎‎‎‎‎‎ کار کردند میدونند با نوشتن While(1) میتونن چنین حلقه ای رو ایجاد کنند اما درVb6 چطور !؟
    در VB6 هم میشه به صورت بالا عمل کرد و هم به صورت زیر:
    While True
    Wend


    نفر بعدی احتمالا خود جناب واژدی اند....
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 17:44 عصر

  6. #126

    نقل قول: نفر بعدي كيه ؟

    نفر بعدی احتمالا خود جناب واژدی اند....
    بله، متاسفانه هنوز گرفتار بنده هستید :)

    نکته ویژوالی:
    1- بر روی Toolbars کلیک راست میکنیم و گزینه Customize را انتخاب میکنیم
    2- پس از باز شدن فرم customize در نوار منو بر روی منوی Help کلیک میکنیم تا منو باز شود
    3- بر روی گزینه آخر که "About Microsoft Visual Basic" باشد کلیک راست میکنیم
    4- در منوی باز شده در گزینه Name نام "About Microsoft Visual Basic" را به "Show VB Credits" تغییر میدهیم
    5- همه منو ها و فرم customize را میبندیم
    6- به منوی Help رفته و بر روی "About Microsoft Visual Basic" که به "Show VB Credits" تغییرنام یافته است کلیک میکنیم تا فرم ...... ویژوال بیسیک گشوده شود

    احتمالا" نفر بعدی فهمیدند جواب نقطه چین ها چی بود!
    .: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
    .: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]

    .: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.

  7. #127
    کاربر دائمی آواتار returnx
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    ?
    پست
    1,190

    نقل قول: نفر بعدي كيه ؟

    بله، متاسفانه هنوز گرفتار بنده هستید :)
    نه بابا داریم استفاده میکنیم از تجربیاتتون...
    احتمالا" نفر بعدی فهمیدند جواب نقطه چین ها چی بود!
    متاسفانه ، این یکی برای من تکراری بود...

    نکته ویژوالی:

    یکی از مشکلات Vb6 اینکه نمیشه از Cursor های انمیشنی استفاده کرد ، اما با کمک توابع API این امر قابل جبران ، برای استفاده از این نوع Cursor ها میتونید از کد های زیر استفاده کنید:
    یک پروژه جدید ایجاد کنید و دو تا دکمه رو فرم بزارید و کد های زیر رو در پروژه کپی کنید:

    Module:
    'Add a module to your project (In the menu choose Project -> Add Module, Then click Open)
    'Add 2 Command Buttons to your form.
    'Press the first button to load the animated Cursor (move the cursor from the button to the
    'form area to refresh the cursor).
    'Press the second button to unload the cursor.
    'Insert this code to the module :

    Public Const GCL_HCURSOR = -12
    Declare Function ClipCursor Lib "user32" (lpRect As Any) As Long
    Declare Function DestroyCursor Lib "user32" (ByVal hCursor As Any) As Long
    Declare Function LoadCursorFromFile Lib "user32" Alias _
    "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
    Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal _
    hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" (ByVal _
    hwnd As Long, ByVal nIndex As Long) As Long

    Form:
    'Insert this code to your form:

    Dim lResult As Long
    Dim mhAniCursor As Long
    Dim mhAniCursor2 As Long
    Private Sub Command1_Click()
    'Replace 'C:\windows\cursors\hourglas.ani' with your ANI Cursor
    mhAniCursor = LoadCursorFromFile("C:\windows\cursors\hourglas.an i")
    lResult = SetClassLong((hwnd), GCL_HCURSOR, mhAniCursor)
    End Sub

    Private Sub Command2_Click()
    lResult = SetClassLong((hwnd), GCL_HCURSOR, mhBaseCursor)
    lResult = DestroyCursor(mhAniCursor)
    End Sub

    Private Sub Form_Load()
    mhBaseCursor = GetClassLong((hwnd), GCL_HCURSOR)
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    lResult = SetClassLong((hwnd), GCL_HCURSOR, mhBaseCursor)
    lResult = DestroyCursor(mhAniCursor)
    End Sub


    نفر بعدی احتمالا تو دلش گفته این کجاش نکته بود!؟ این خودش یک Source بود... ، باید بگم حق داره...


    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 17:46 عصر

  8. #128
    سلام

    نفر بعدی احتمالا تو دلش گفته این کجاش نکته بود!؟ این خودش یک Source بود... ، باید بگم حق داره...

    واقعیتش،،، بله یک سورس بود،
    .
    .
    .
    اما یک نکته هم قبلش بود :)

    نکته ویژوالی:

    در هنگام تست برنامه در صورت نياز به مشاهده عملکرد يک دستور کافيست اطراف آنرا انتخاب کنيم (منظورم زماني است که وقتي با موس متني را انتخاب ميکنيم اطراف آن آبي رنگ ميشود)، که در اين حال وي بي نتيجه دستور را در قالب يک tooltip نشان ميدهد (براي نمونه اگر "13+2" موجود در دستور a=13+2 را انتخاب کنيم متن tooltip ظاهر شده به اين صورت خواهد بود: 13+2=15)

    البته نکاتي که خوب است اطلاع داشته باشيم:
    - خط اجرايي برنامه حتما بايستي در همان روال قرار داشته باشد، مثلا اگر برنامه در روال Command1_Click قرار دارد و ما دستوري را در روال Command2_Click انتخاب کنيد نتيجه اي را نميبينيم
    - اين اختيار منحصرا" مربوط به توابع و دستورات جزئي است (مانند Instr,Left,Right,Trim, محاسيات رياضي و خيلي دستورات مشابه اينها)
    - از اين اختيار نميتوانيم براي ديدن نتيجه توابع خارجي مانند API ، کامپوننت ها و توابع داخلي که نيازمند مراجعه هستند، استفاده کنيم

    نفر بعدي قبلا" از اين نکته اطلاع داشته
    آخرین ویرایش به وسیله vbhamed : سه شنبه 26 فروردین 1393 در 01:22 صبح
    .: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
    .: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]

    .: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.

  9. #129

    نقل قول: نفر بعدي كيه ؟

    تست کردم نشد
    کد زیر را در فرم کپی کنید و بعد فرم را اجرا کنید، و وقتی که برنامه در دستور stop ایست شد هریک از دستورات بالای stop را انتخاب و موس را روی آنها قرار بدین

    Private Sub Form_Load()
    Dim a%, txt_ps%
    Const my_txt$ = "MySampleText"
    a = 13 + 2 + 6 * 9
    txt_ps% = InStr(1, my_txt$, "Sample")
    Stop
    End Sub

    موفق باشید
    آخرین ویرایش به وسیله vbhamed : سه شنبه 26 فروردین 1393 در 01:23 صبح
    .: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
    .: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]

    .: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.

  10. #130
    کاربر دائمی آواتار arenaw
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    /home/nainemom
    پست
    500

    نقل قول: نفر بعدي كيه ؟

    درست حدس زدید من هیچی نیستم

    نكته ويژوالي :

    آیا میدانستید دستورات ساده vb رو میشه با نوتپد و با پسوند .vbs ذخیره کرد و اونو بدون نصب vb اجرا کرد؟

    نفر بعدي ... یک آقای دست راست، قد متوسط، موهای مشکی کم پشت، و همیشه دوغ رو به نوشابه ترجیح میده (حالا میبینی!)
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 17:48 عصر

  11. #131

    نقل قول: نفر بعدي كيه ؟

    سلام عليکم
    ميشه گفت تقريبا درسته

    نکته ويژوالي(يا شايد سورس):

    با سورس زير ميتونيد برنامتون رو در اجرا شدن محدود کنيد.کد زير رو تو فورم لود بزاريد.برنامه ي زير فقط 10 بار اجرا ميشود.
    Dim RunCount As String
    RunCount = GetSetting("Test1", "Setting1", "RunCount")
    If Val(RunCount) > 10 Then
    MsgBox "مهلت اجراي برنامه تمام شده است" , vbExclamation, "برنامه قابل اجرا نميباشد"
    End
    Else
    SaveSetting "Test1", "Setting1", "RunCount", Str(Val(RunCount) + 1)
    End If

    فقط دوستان راه مطمئني براي امنيت برنامه هاتون نيستش.پيشنهاد ميکنم که در برنامه هايي که براتون مهم هست از اين کد براي امنيت يا تريال کردن استفاده نکنيد.

    موفق باشيد

    نفر بعدي يکي از عزيزاني هست که در اين صفحه(15)پست دادند، ميباشد
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 17:58 عصر

  12. #132
    کاربر دائمی آواتار ASedJavad
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    زیر سایه امام رئوف
    پست
    856

    نقل قول: نفر بعدي كيه ؟

    سلام

    متاسفانه اشتباه بود!!

    نكته ويژوالي (که البته تکراری و بدیهی هست) :

    ما سه فرمت متنی استاندارد داریم (که ویبی ازشون پشتیبانی میکنه):
    یک: txt دو:rtf و سه:html
    حالا فرض کنیم یه ریچ تکست باکس داریم که verbMenu اون رو غیرفعال کردیم و میخوایم خودمون براش یه منوی اختصاصی بنویسیم.
    حالا برا منوی کپی اگه بنویسیم:
    Private Sub MnuCopy_Click()
    Clipboard.Clear
    Clipboard.SetText RichTextBox1.SelText
    End Sub


    فقط متنمون کپی میشه و فرمتش کپی نمیشه
    برا اینکه فرمتش هم کپی بشه و ما بتونیم تو ورد یا وردپد یا یه ریچ تکست باکس دیگه متنمون رو به همراه فرمتش پیست کنیم، باید بنویسیم:
    Private Sub MnuCopy_Click()
    Clipboard.Clear
    Clipboard.SetText RichTextBox1.SelRTF, vbCFRTF
    Clipboard.SetText RichTextBox1.SelText, vbCFText
    End Sub


    که این باعث میشه اگه خواستیم تو نت پد یا تکست باکس معمولی متن رو پیست کنیم، فقط تکستمون کپی بشه و اگه خواستیم تو ورد یا ... پیست کنیم، فرمتش هم پیست بشه.
    مسلما برا html هم مشابه همین قضیه رو داریم


    نفر بعدی اگرچه میدونه باید کم کم از ویبی نقل مکان کنه، ولی هنوز دلش نمیاد!
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:08 عصر

  13. #133
    کاربر دائمی آواتار arenaw
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    /home/nainemom
    پست
    500

    نقل قول: نفر بعدي كيه ؟

    ایول

    نكته ويژوالي :

    میدونید تو ویبی تا هرچند خط که دوست دارید رو تو یه خط جا بدید؟ فقط باید دستورات رو با : جدا کنید. به جز برخی موارد خاص ؛ مثلا استفاده if تو for و بعضی جاهای دیگه

    نفر بعدي ... یک آقایی که زود به زود ویندوزشو عوض میکنه! اسم یکی از اقوام نزدیکشم علی اِ


    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:09 عصر

  14. #134
    کاربر دائمی آواتار kitcat_m18
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    اداره - پشت میز کامپیوتر
    پست
    488

    نقل قول: نفر بعدي كيه ؟

    من ويندوزم رو حداقل 6 ماه يه بار عوض مي کنم متاسفانه اقوام هم ندارم!

    نكته ويژوالي :

    مرجع کتابخانه regular expression چيست؟

    درباره خود regular expression اينو بايد بگم که در واقع کتابخانه افعال باقاعده هست
    مرجع اون سيستم عامل لينوکسه با دستور RegEx که دقيقا از اين کتابخانه استفاده ميکنه شما با مطالعه دستورات افعال باقاعده در لينوکس مي تونين اين کتابخانه رو در وي بي هم به خوبي به کار ببريد

    نفر بعدي يه نفر بيشتر نيست!
    آخرین ویرایش به وسیله vbhamed : سه شنبه 26 فروردین 1393 در 01:28 صبح

  15. #135
    کاربر دائمی آواتار kitcat_m18
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    اداره - پشت میز کامپیوتر
    پست
    488

    نقل قول: نفر بعدي كيه ؟

    کاملا درسته!

    نكته ويژوالي :

    براي ديباگ کردن برنامه هامون چند را وجود داره:

    1 - اضافه کردن چرت و پرت به اول کدهامون که ديباگر ارور بگيره(مبتدي ها)
    2 - استفاده از دکمه F8 که همه جا جواب نميده مخصوصا تو برنامه هايي که داراي تايمر و يا رويداد هاي تکرار شدني(Mouse Movie) هستند
    2 - استفاده از دستور Debug.Assert False براي ديباگ دقيقا همان خط کدي که مي خواهيم
    3 - استفاده از دستور Stop براي ديباگ دقيقا همان خط کدي که مي خواهيم

    نفر بعدي 120 کيلو پرس سينه ميزه!
    آخرین ویرایش به وسیله vbhamed : سه شنبه 26 فروردین 1393 در 01:28 صبح

  16. #136
    کاربر دائمی آواتار kitcat_m18
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    اداره - پشت میز کامپیوتر
    پست
    488
    آفرين بر شما دوست عزيز(خودم)

    نكته ويژوالي :

    مرجع دستورات WebBrowser چيست؟

    شايد براي شما هم اين سوال پيش اومده باشه که دستورات WebBrowser که داراي Library در ويژوال بيسيک نيستند رو از کجا در بيارم؟؟
    خيلي سادست اينا دستورات زبان جاوا هستند جاوا ياد بگير کل پارامتر هاي ارسالي از طريق WebBrowser رو فول ميشي
    در واقع شما ر دستوري مانند WebBrowser1.Document.Forms(0).elements("chkSave"). Click دستورات جاوا رو قاطي VB استفاده کرديد!

    چون دوست ندارم اشتباه حدس بزنم نفر بعدي خيلي وقته 6 سالش تموم شده بيا لپتو بکشم عمو
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:11 عصر

  17. #137
    کاربر دائمی آواتار ASedJavad
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    زیر سایه امام رئوف
    پست
    856

    نقل قول: نفر بعدي كيه ؟

    سلام

    نكته ويژوالي :
    تو ویبی چهار راه داریم برا اینکه بفهمیم یه رشته خالیه یا نه مثلا فرض کنیم متغیری به اسم x از نوع string داریم.
    چهار دستور زیر به ما میگن که این رشته خالیه یا نه:
    If x = "" Then
    If x = vbNullString Then
    If Len(x) = 0 Then
    If LenB(x) = 0 Then

    ظاهرا از نظر حجمی که دستورات از حافظه اشغال میکنن
    به ترتیب دستور اول بیشترین حجم و دستور آخر کمترین حجم رو اشغال میکنن.
    از نظر سرعت هم میتونین کد زیر رو اجرا کنین تا بفهمین فرقشون چیه:
    Private Sub Form_Load()
    Me.AutoRedraw = True
    Dim x As String
    x = ""
    z = Timer
    For i = 1 To 50000000
    If x = "" Then a = 1
    Next
    Print Timer - z
    z = Timer
    For i = 1 To 50000000
    If x = vbNullString Then a = 1
    Next
    Print Timer - z
    z = Timer
    For i = 1 To 50000000
    If Len(x) = 0 Then a = 1
    Next
    Print Timer - z
    z = Timer
    For i = 1 To 50000000
    If LenB(x) = 0 Then a = 1
    Next
    Print Timer - z
    End Sub

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

    نفر بعدی هم خودمم چون یه نکته دیگه هم در همین رابطه دارم
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:12 عصر

  18. #138
    کاربر دائمی آواتار ASedJavad
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    زیر سایه امام رئوف
    پست
    856

    نقل قول: نفر بعدي كيه ؟

    آفرین به خودم درست حدس زدم!

    نكته ويژوالي :
    برای اختصاص یک رشته خالی به یک متغیر رشته ای مثل x دو دستور عمده داریم:
    x = ""
    x = vbNullString

    که دستور دوم هم از نظر حافظه به صرفه تر است (به نظرم 6 بایت اختلاف حافظه دارن) و هم از نظر سرعت که در مورد سرعت کد زیر به خوبی بیانگر مطلب هست:
    Private Sub Form_Load()
    Dim x As String
    Me.AutoRedraw = True
    z = Timer
    For i = 1 To 10000000
    x = ""
    Next
    Print Timer - z
    z = Timer
    For i = 1 To 10000000
    x = vbNullString
    Next
    Print Timer - z
    End Sub

    نفر بعدی با خودش میگه این اختلاف سرعت و حافظه تو کامپیوترای امروزی اصلا به چشم نمیاد
    که باید بهش بگم ما مغزمون تو دوره کامپیوترای دیزلی و حافظه های در حد فلاپی شکل گرفته و کاریش هم نمیشه کرد!
    آخرین ویرایش به وسیله vbhamed : سه شنبه 26 فروردین 1393 در 01:31 صبح

  19. #139
    کاربر دائمی آواتار _behnam_
    تاریخ عضویت
    مهر 1389
    محل زندگی
    سونای ایران ( بوشهر )
    پست
    971

    نقل قول: نفر بعدي كيه ؟

    نفر قبلی جوابی ندارم بدم

    نكته ويژوالي :

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

    نفر بعدی حتما میگه : با این نکتت
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:13 عصر

  20. #140
    نفر قبلی: نه نمیگم :)
    نکته مفیدی بود، چرا که برخی عزیزان اطلاع ندارند که در فروم مطرح میکنند!

    نکته ویژوالی
    البته در ادامه نکته جناب kitcat_m18 در پست 152 است:
    نقل قول نوشته شده توسط kitcat_m18
    نكته ويژوالي :

    براي ديباگ کردن برنامه هامون چند را وجود داره:
    1 - اضافه کردن چرت و پرت به اول کدهامون که ديباگر ارور بگيره(مبتدي ها)
    2 - استفاده از دکمه F8 که همه جا جواب نميده مخصوصا تو برنامه هايي که داراي تايمر و يا رويداد هاي تکرار شدني(Mouse Movie) هستند
    2 - استفاده از دستور Debug.Assert False براي ديباگ دقيقا همان خط کدي که مي خواهيم
    3 - استفاده از دستور Stop براي ديباگ دقيقا همان خط کدي که مي خواهيم
    4- در ساده ترین صورت میتوانیم بر روی دستور مورد نظر یک Break-Point را با کلیک در ستون کناری و سمت دستور یا انتخاب دستور و فشار دادن کلید F9 ایجاد میکنیم، در این هم برنامه با رسیدن به دستور مشخص شده متوقف میشود (البته این نقاط موقتی بوده و با بستن سورس پروژه از بین میروند)

    نفر بعدی: یک ایرانی اصیل
    آخرین ویرایش به وسیله vbhamed : سه شنبه 26 فروردین 1393 در 01:35 صبح
    .: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
    .: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]

    .: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.

  21. #141
    معلوم نیست :)

    نکته ویژوالی :

    راه میانبر در نوشتن متد Print، قبل از نوشته کاراکتر "؟" قرار دهیم
    به عنوان مثال:
    ?"Sample text"

    یا

    Me.?"Sample text"


    نفر بعدی: عبدالله
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:14 عصر
    .: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
    .: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]

    .: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.

  22. #142
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    کـــــــرمان
    پست
    156

    نقل قول: نفر بعدي كيه ؟

    سلام

    نكته ويژوالي :

    نکته که دوستان زیاد گذاشتن دیگه چیزی به ذهنم نمیرسه به جاش یه سورس میزارم .
    سورس برنامه ی Yahoo Multi Login
    Source.rar

    نفر بعدي : حسین سون
    آخرین ویرایش به وسیله vbhamed : سه شنبه 26 فروردین 1393 در 01:39 صبح

  23. #143

    نقل قول: نفر بعدي كيه ؟

    سلام

    شرمنده ali-a2
    butterfly8528 عزيز يه كم دير ديدم تاپيك رو


    نكته ويژوالي :

    يك مشكلي كه تو اكثر برنامه ها داريم اينه كه وقتي داره كار زمانبري انجام ميشه كه تغييراتش روي صفحه هم منعكس ميشه، سرعت كار پايين مياد و تغييرات فرم به چشم ديده ميشه
    به عنوان مثال شما مي‌خواين وقتي فرمتون تغيير سايز داد، اجزاي روي اون هم متناسب با فرم كوچيك يا بزرگ بشه و اگر تعداد اين اجزا زياد باشه كار كند پيش ميره و كاربر اونو مي‌بينه

    براي اين موارد اگر ميشد آپديت فرممون رو متوقف كنيم تا كارها انجام بشه و سپس نتيجه نهايي رو ببينيم خيلي بهتر بود
    تابع API زير براي اينكار وجود داره
    Public Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long

    روش كار به اينصورت هست
    تابع رو به صورت زير فراخواني كنيد
    LockWindowUpdate Me.hwnd

    با اينكار انگار فرمتون قفل شده و هيچ تغييري روي اون نمايش داده نميشه، البته شكل قبليش همچنان روي صفحه است
    حالا شما تغييرات روي فرم و اشياء رو انجام بدين و بعد دستور زير رو بدين
    LockWindowUpdate 0

    اين دستور فرم رو از حالت قفل در مياره و همه تغييرات داده شده رو يكجا منعكس مي‌كنه

    البته همونطور كه تو دستورات ديديد اين تابع با استفاده از هندل اشياء اونها روئ قفل مي‌كنه پس نه فقط فرم بلكه هر شي‌ئي قابل قفل شدن هست و مثلا مي‌تونيد فقط يك پيكچر باكس يا گرايد يا ... رو قفل كنيد
    اما دستور باز كردن قفل همون پارامتر 0 هست كه همه اشياء قفل شده رو يكجا باز مي‌كنه

    نفر بعدي شايد خيلي اين نكته رو لازم داشت !!؟؟
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  24. #144

    نقل قول: نفر بعدي كيه ؟

    سلام
    خوب تند تند چک کن مطالب رو تا سریعتر ببینی تاپیک ها رو!!

    نكته ويژوالي :

    اگر از دستور شرط میخواهید استفاده کنید و چندید if در برنامتون تعریف کردید ، اگه اولین if چک کردن یم مقدار باشه و میخواید بگید که اول برابر نبودنش رو چک کنه میتونید از دستور زیر استفاده کنید

    If Not UCase(Left(Text.Text, 4)) = "reza" Then

    msgBox ("barabar nist")

    else

    msgBox ("barabar hast")

    و بعد تعریف if ها

    این دستور برای پیچوندن برنامه کاربرد داره
    شاید متوجه نشید و بگید که از کد

    If UCase(Left(Text.Text, 4)) <> "reza" Then

    هم میشه استفاده کرد
    ولی بعضی جاها نمیشه از این دستور استفاده کرد و گیر میکنید ، میتونید از این دستور استفاده کنید
    نمیدونم تونستم خوب توضیح بدم یا نه !!!! ولی من خودم به مشکل خوردم و ازش استفاده کردم و مشکلم رفع شد.
    مرسی از استادی که این دستور رو بهم یاد داد و همیشه دعاش میکنم
    فکر کنم تومار نوشتم !!!

    نفر بعدي یه دوست خوب
    آخرین ویرایش به وسیله vbhamed : سه شنبه 26 فروردین 1393 در 01:41 صبح

  25. #145
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: نفر بعدي كيه ؟

    سلام آره منم یه دوست خوب واسه سایت برنامه نویس

    نکته ویژوالي :

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


    Sub DrawBarcode(ByVal bc_string As String, obj As Object)

    Dim xpos!, Y1!, Y2!, dw%, Th!, tw, new_string$
    If bc_string = "" Then obj.Cls: Exit Sub
    'define barcode patterns
    Dim bc(90) As String
    bc(1) = "1 1221" 'pre-amble
    bc(2) = "1 1221" 'post-amble
    bc(48) = "11 221" 'digits
    bc(49) = "21 112"
    bc(50) = "12 112"
    bc(51) = "22 111"
    bc(52) = "11 212"
    bc(53) = "21 211"
    bc(54) = "12 211"
    bc(55) = "11 122"
    bc(56) = "21 121"
    bc(57) = "12 121"
    'capital letters
    bc(65) = "211 12" 'A
    bc(66) = "121 12" 'B
    bc(67) = "221 11" 'C
    bc(68) = "112 12" 'D
    bc(69) = "212 11" 'E
    bc(70) = "122 11" 'F
    bc(71) = "111 22" 'G
    bc(72) = "211 21" 'H
    bc(73) = "121 21" 'I
    bc(74) = "112 21" 'J
    bc(75) = "2111 2" 'K
    bc(76) = "1211 2" 'L
    bc(77) = "2211 1" 'M
    bc(78) = "1121 2" 'N
    bc(79) = "2121 1" 'O
    bc(80) = "1221 1" 'P
    bc(81) = "1112 2" 'Q
    bc(82) = "2112 1" 'R
    bc(83) = "1212 1" 'S
    bc(84) = "1122 1" 'T
    bc(85) = "2 1112" 'U
    bc(86) = "1 2112" 'V
    bc(87) = "2 2111" 'W
    bc(88) = "1 1212" 'X
    bc(89) = "2 1211" 'Y
    bc(90) = "1 2211" 'Z
    'Misc
    bc(32) = "1 2121" 'space
    bc(35) = "" '# cannot do!
    bc(36) = "1 1 1 11" '$
    bc(37) = "11 1 1 1" '%
    bc(43) = "1 11 1 1" '+
    bc(45) = "1 1122" '-
    bc(47) = "1 1 11 1" '/
    bc(46) = "2 1121" '.
    bc(64) = "" '@ cannot do!
    'A Fix made by changing 65 to 42.
    bc(42) = "1 1221" '*
    bc_string = UCase(bc_string)
    'dimensions
    obj.ScaleMode = 3 'pixels
    obj.Cls
    obj.Picture = Nothing
    dw = CInt(obj.ScaleHeight / 40) 'space between bars
    If dw < 1 Then dw = 1
    'Debug.Print dw
    Th = obj.TextHeight(bc_string) 'text height
    tw = obj.TextWidth(bc_string) 'text width
    new_string = Chr$(1) & bc_string & Chr$(2) 'add pre-amble, post-amble

    Y1 = obj.ScaleTop
    Y2 = obj.ScaleTop + obj.ScaleHeight - 1.5 * Th
    obj.Width = 1.1 * Len(new_string) * (15 * dw) * obj.Width / obj.ScaleWidth


    'draw each character in barcode string
    xpos = obj.ScaleLeft
    For n = 1 To Len(new_string)
    c = Asc(Mid$(new_string, n, 1))
    If c > 90 Then c = 0
    bc_pattern$ = bc(c)

    'draw each bar
    For i = 1 To Len(bc_pattern$)
    Select Case Mid$(bc_pattern$, i, 1)
    Case " "
    'space
    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
    xpos = xpos + dw

    Case "1"
    'space
    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
    xpos = xpos + dw
    'line
    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &H0&, BF
    xpos = xpos + dw

    Case "2"
    'space
    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
    xpos = xpos + dw
    'wide line
    obj.Line (xpos, Y1)-(xpos + 2 * dw, Y2), &H0&, BF
    xpos = xpos + 2 * dw
    End Select
    Next
    Next

    '1 more space
    obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
    xpos = xpos + dw

    'final size and text
    obj.Width = (xpos + dw) * obj.Width / obj.ScaleWidth
    obj.CurrentX = (obj.ScaleWidth - tw) / 2
    obj.CurrentY = Y2 + 0.25 * Th
    obj.Print bc_string
    End Sub

    نفر بعدی میگه ای ول به این کد جالب میگه چه پست درازی
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:15 عصر

  26. #146
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    «مینودشت»
    سن
    29
    پست
    216

    نقل قول: نفر بعدي كيه ؟

    سلام

    من اولین باره که دارم تو این بازی آموزنده شرکت میکنم . خیلی جالبه

    نکته ویژوالي :

    با استفاده از این کد میتونید یک فرم شبیه فرم که کد روش اجرا میشه درست کنید

    Private Sub Command1_Click()
    Dim newfrm As Form1
    Set newfrm = New Form1
    newfrm.Visible = True
    End Sub


    نفر بعدی الان روزه هست :)
    آخرین ویرایش به وسیله vbhamed : سه شنبه 26 فروردین 1393 در 01:56 صبح

  27. #147

    نقل قول: نفر بعدي كيه ؟

    آره اگه خدا قبول کنه

    نکته ویژوالی :

    میدونید برای برنامه نویسی هر وقت کارتون گیر کرد از کلک مرغابی میتونی استفاده کنید
    برای اینكه همیشه فرمتون وسط صفحه نمایش داده بشه حالا با هر resolution میتونید وارد خصوصیت فرم بشین و قسمت StartupPosition = 2 بذارین

    نفر بعدی خواهشن تو این ماه مبارک منم دعا کن
    آخرین ویرایش به وسیله vbhamed : پنج شنبه 17 مهر 1393 در 08:38 صبح

  28. #148
    کاربر دائمی آواتار setroyd
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    1,198
    Private Sub Text1_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
    Case 8, 48 To 58:
    Case Else
    KeyAscii = 0
    End Select
    End Sub


    اینم یه روش برای محدود کردن نوشته در textbox فقط به عدد بدون استفاده از if .
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:17 عصر

  29. #149
    کاربر دائمی آواتار program2vb
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    آذربایجان شرقی - تبریز
    پست
    303

    Wink نقل قول: نفر بعدي كيه ؟

    سلام ..ههههههه کی فکرشو میکرد نفر بعد من باشم ... صبح از ساعت 9 دارم اینجا رو میخونم واقعا جالب بود آقای VBhamed عزیز ممنون
    خیلی وقته این تاپیک رو میدیدم و همینجوری رد میشدم و تا حالا تو نیومده بودم امروز برای اولین بار اومدم و خیلی خوشم اومد از این به بعد نفر بعدی هر روز خودم هستم با نکته های جدید

    جواب نفر قبل :


    شر منده داداش سعید من تا حالا sql کار نکردم سوالتو نفربعد من اگه sql بلد باشه جواب میده ببخش شرمنده دیگه .....

    نكته ويژوال :

    میدونستین با استفاده از تابع ApI زیر میتونین تصویر زمینه ویندوز رو به فرمتون بدین :


    Private Declare Function PaintDesktop Lib "user32.dll" (ByVal hdc As Long) As Long


    و میتونین با استفاده از این کد از این تابع استفاده کنین البته پیشنهاد میکنم از یه تایمر با مقدار زمانی یک میلی ثانیه استفاده کنین و کد رو درون تایمر قرار بدین


    PaintDesktop Me.hdc


    براتون آرزوی موفقیت و پیروزی دارم . یا علی


    نفر بعدي ...

    با این شرایطی که این تاپیک میره جلو احتمالا نفر بعدی خودم باشم چون فردا دوباره میام
    ولی اگه یکی دیگه باشه لطفا به سوال نفر قبل من جواب بده
    احتمالا نفر بعدی خیلی آدم خوش شانسیه ......
    آخرین ویرایش به وسیله vbhamed : جمعه 28 تیر 1392 در 13:39 عصر

  30. #150
    کاربر دائمی آواتار program2vb
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    آذربایجان شرقی - تبریز
    پست
    303

    نقل قول: نفر بعدي كيه ؟

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

    نكته ويژوالي :

    آیا میدونستین با استفاده از تابع api زیر میتونین همون کار KeyDown رو انجام بدین ولی اینم بگم ها این قدرتش از KeyDown فرمتون بهتر عمل میکنه و اگه برنامه حتی فکش نباشه بازم کار میکنه

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


    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer 'Key press API


    حالا یدونه تایمر درس کنین با مقدار زمانی 100 میلی ثانیه و توش کد زیز رو بنویسید


    If GetAsyncKeyState(vbKeyLeft) <> 0 Then
    Shape1.Left = Shape1.Left - 10
    End If


    بجای Vbkeyleft میتونین هر کلیدی که خواستین بنویسید یا keyCode کلید رو بنویسید

    موفق و پیروز باشید یا علی

    نفر بعدی هم احتمالا بازم خودم خواهم بود .....
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:18 عصر

  31. #151
    کاربر دائمی آواتار setroyd
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    1,198

    نقل قول: نفر بعدي كيه ؟

    Private Declare Function PrintWindow Lib "user32" (ByVal hWnd As Long, ByVal hdcBlt As Long, ByVal nFlags As Long) As Long
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

    Private Sub Form_Load()
    Dim mWnd As Long

    Me.AutoRedraw = True
    Shell "Notepad.exe", vbNormalNoFocus
    DoEvents
    mWnd = FindWindow("Notepad", vbNullString)
    If mWnd = 0 Then
    Me.Print "NotePad not found"
    Else
    PrintWindow mWnd, Me.hDC, ByVal 0&
    'PrintWindow mWnd, Printer.hDC, ByVal 0&
    End If
    End Sub


    با استفاده از کد بالا پنجره ی مورد نظر رو یه snap shot میشه از روش گرفت با PrintWindow و دادن هندل مورد نظر این کار به راهتی این کار شدنی است حتی اگر پنجره minimize باشد .

  32. #152
    کاربر دائمی آواتار program2vb
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    آذربایجان شرقی - تبریز
    پست
    303

    نقل قول: نفر بعدي كيه ؟

    به به سلام آقای setroyd داداش نیستی کم پیدا شدی یا ما کم سعادت شدیم
    داداش نگفتی نفر بعدی کیه ؟
    خب باشه نگو احتمالا میدونستی منم که نگفتی خودم اومدم مهم نیس

    نكته ويژوالي :

    آیا میدونستین میشه بدون اینکه زبان ویندوز ( keylayout ) رو تغییر داد بشه درون تکس باکس فارسی نوشت

    البته این یه روش شاید بعضیهاتون بدونین اونایی که نمیدونن خب اونا هم بدونن

    یه پروژه جدید باز کنید .... یدونه تکس باکس بزارین داخل فرم تو بخش کد نویسی کد زیر رو کپی کنید ... برنامه رو اجرا کنید ... حالا داخل تکس باکس بنویسید .... حال کنید


    Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii = 72 Then KeyAscii = 194
    If KeyAscii = 104 Then KeyAscii = 199
    If KeyAscii = 102 Then KeyAscii = 200
    If KeyAscii = 92 Then KeyAscii = 142
    If KeyAscii = 106 Then KeyAscii = 202
    If KeyAscii = 101 Then KeyAscii = 203
    If KeyAscii = 91 Then KeyAscii = 204
    If KeyAscii = 93 Then KeyAscii = 141
    If KeyAscii = 112 Then KeyAscii = 205
    If KeyAscii = 111 Then KeyAscii = 206
    If KeyAscii = 110 Then KeyAscii = 207
    If KeyAscii = 98 Then KeyAscii = 208
    If KeyAscii = 118 Then KeyAscii = 209
    If KeyAscii = 99 Then KeyAscii = 210
    If KeyAscii = 96 Then KeyAscii = 129
    If KeyAscii = 115 Then KeyAscii = 211
    If KeyAscii = 97 Then KeyAscii = 212
    If KeyAscii = 119 Then KeyAscii = 213
    If KeyAscii = 113 Then KeyAscii = 214
    If KeyAscii = 120 Then KeyAscii = 216
    If KeyAscii = 122 Then KeyAscii = 217
    If KeyAscii = 117 Then KeyAscii = 218
    If KeyAscii = 121 Then KeyAscii = 219
    If KeyAscii = 116 Then KeyAscii = 221
    If KeyAscii = 114 Then KeyAscii = 222
    If KeyAscii = 59 Then KeyAscii = 152
    If KeyAscii = 39 Then KeyAscii = 144
    If KeyAscii = 103 Then KeyAscii = 225
    If KeyAscii = 108 Then KeyAscii = 227
    If KeyAscii = 107 Then KeyAscii = 228
    If KeyAscii = 44 Then KeyAscii = 230
    If KeyAscii = 105 Then KeyAscii = 229
    If KeyAscii = 100 Then KeyAscii = 237
    If KeyAscii = 109 Then KeyAscii = 198
    If KeyAscii = 57 Then KeyAscii = 49
    End Sub


    موفق و پیروز و سربلند باشید .... یا علی

    نفر بعدی به احتمال زیاد آقای setroyd خواهد بود ...
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:19 عصر

  33. #153
    کاربر دائمی آواتار setroyd
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    1,198
    نكته ويژوالي :

    به دست آوردن rgb با api

    Private Declare Function LoByte Lib "TLBINF32" Alias "lobyte" (ByVal Word As Integer) As Byte
    Private Declare Function HiByte Lib "TLBINF32" Alias "hibyte" (ByVal Word As Integer) As Byte
    Private Declare Function loword Lib "TLBINF32" (ByVal DWord As Long) As Integer
    Private Declare Function hiword Lib "TLBINF32" (ByVal DWord As Long) As Integer

    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim Color As Long
    Dim R As Byte, G As Byte, B As Byte
    Color = Point(X, Y)
    R = LoByte(loword(Color))
    G = HiByte(loword(Color))
    B = LoByte(hiword(Color))
    Me.Caption = R & Space(5) & G & Space(5) & B
    End Sub


    یه عکس رو فرم بزارید و موس رو حرکت بدید حالا کد rgb رو ببنید روی caption فرمتون .
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:20 عصر

  34. #154

    نقل قول: نفر بعدي كيه ؟

    سلام

    كاربران گرامي saeedharati و setroyd عزيز
    لطفا قوانين پست دادن و رنگ بندي در اين تاپيك رو رعايت كنيد

    جواب نفر قبلي
    نكته ويژوالي :
    نفر بعدي...
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  35. #155
    کاربر دائمی آواتار saber67
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    کرمانشاه
    سن
    35
    پست
    155

    نقل قول: نفر بعدي كيه ؟

    نکته ویژوالی:

    اگه می خواین فرمتون تو یه رنج خاص تغییر اندازه بده و از اون کوچیکتر یا بزرگتر نشه مثلا از 200x200 کوچیکتر نشه و از 500x500 بزرگتر نشه

    یه ماژول بسازید و کد زیر رو توش کپی کنید:

    Private Const GWL_WNDPROC = -4
    Private Const WM_GETMINMAXINFO = &H24

    Private Type POINTAPI
    x As Long
    y As Long
    End Type

    Private Type MINMAXINFO
    ptReserved As POINTAPI
    ptMaxSize As POINTAPI
    ptMaxPosition As POINTAPI
    ptMinTrackSize As POINTAPI
    ptMaxTrackSize As POINTAPI
    End Type

    Global lpPrevWndProc As Long
    Global gHW As Long

    Private Declare Function DefWindowProc Lib "user32" Alias _
    "DefWindowProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
    ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Declare Function SetWindowLong Lib "user32" Alias _
    "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Sub CopyMemoryToMinMaxInfo Lib "KERNEL32" Alias _
    "RtlMoveMemory" (hpvDest As MINMAXINFO, ByVal hpvSource As Long, ByVal cbCopy As Long)
    Private Declare Sub CopyMemoryFromMinMaxInfo Lib "KERNEL32" Alias _
    "RtlMoveMemory" (ByVal hpvDest As Long, hpvSource As MINMAXINFO, ByVal cbCopy As Long)

    Public Sub Hook()
    'Start subclassing.
    lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, _
    AddressOf WindowProc)
    End Sub

    Public Sub Unhook()
    Dim temp As Long

    'Cease subclassing.
    temp = SetWindowLong(gHW, GWL_WNDPROC, lpPrevWndProc)
    End Sub

    Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, _
    ByVal wParam As Long, ByVal lParam As Long) As Long
    Dim MinMax As MINMAXINFO

    'Check for request for min/max window sizes.
    If uMsg = WM_GETMINMAXINFO Then
    'Retrieve default MinMax settings
    CopyMemoryToMinMaxInfo MinMax, lParam, Len(MinMax)
    'Specify new minimum size for window.
    MinMax.ptMinTrackSize.x = 200
    MinMax.ptMinTrackSize.y = 200

    'Specify new maximum size for window.
    MinMax.ptMaxTrackSize.x = 500
    MinMax.ptMaxTrackSize.y = 500

    'Copy local structure back.
    CopyMemoryFromMinMaxInfo lParam, MinMax, Len(MinMax)
    WindowProc = DefWindowProc(hw, uMsg, wParam, lParam)
    Else
    WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, _
    wParam, lParam)
    End If
    End Function


    تو فرم برنامه هم کد زیر رو کپی کنید:

    Private Sub Form_Load()
    'Save handle to the form.
    gHW = Me.hwnd
    'Begin subclassing.
    Hook
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    'Stop subclassing.
    Unhook
    End Sub


    نفربعدی حتما به شهر کرمانشاه اومده، بیستون و طاق بستان رو دیده
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:23 عصر

  36. #156
    کاربر دائمی آواتار unit001
    تاریخ عضویت
    آذر 1387
    محل زندگی
    قم
    پست
    101

    نقل قول: نفر بعدي كيه ؟

    نه اتفاقا نیومدم و ندیدم ولی از تلویزیون خیلی دیدم

    نکته ویژوالی :

    می دونستین از کد زیر می تونین برای اینکه یه متن شبیه یه متن دیگه هست استفاده کنید. مثلا من دیدم بعضیا می خوان چک کنن یه متنی ایمیل هست یا نه کلی کد نویسی می کنن:
    If "YOURTEXT" Like "*@*.*" Then
    ' The Email is correct
    End If


    نفر بعدي فکر کنم Saber67 باشه چون رفته زحمت کشیده این تاپیکو آورده صفحه ی اول. شایدم چون می‌خواد بگه چرا تا حالا نیومدی کرمانشاه.
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:24 عصر

  37. #157
    کاربر دائمی آواتار saber67
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    کرمانشاه
    سن
    35
    پست
    155

    نقل قول: نفر بعدي كيه ؟

    واقعا نیومدی؟ ای بابا! چرا!؟
    حتما عید با خانواده تشریف بیارین

    نکته ویژوالی:

    تا حالا برنامه هایی که شکل یه فرم عادی رو ندارن دیدین؟ مثلا شکل یه گل یا یه ماشین باشه! یا هر عکسی!
    برای این کار کافیه عکسی که می خواین برنامه تون به شکل اون بشه رو تو یه زمینه تک رنگ (که رنگش با رنگای اون عکس فرق داشته باشه) قرار بدین و اون عکس رو به عنوان بک گراند فرم تون قرار بدین و از کد های زیر استفاده کنین:

    اینا رو توی فرم اصلی کپی کنین و اجرا کنین ببینین چی میشه!
    Private Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function SetLayeredWindowAttributes Lib "user32.dll" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
    Const LWA_COLORKEY = &H1
    Const GWL_EXSTYLE = (-20)
    Const WS_EX_LAYERED = &H80000
    Const BM_SETSTATE = &HF3

    Private Sub Form_Load()
    Dim Ret As Long
    Dim CLR As Long
    Me.BackColor = RGB(1, 1, 1)
    CLR = Me.BackColor
    Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
    Ret = Ret Or WS_EX_LAYERED
    SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
    SetLayeredWindowAttributes Me.hWnd, CLR, 0, LWA_COLORKEY
    End Sub


    نفر بعدی unit001 هستش، می خواد بگه حتما واسه عید میاد کرمانشاه
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:24 عصر

  38. #158
    کاربر دائمی آواتار unit001
    تاریخ عضویت
    آذر 1387
    محل زندگی
    قم
    پست
    101

    نقل قول: نفر بعدي كيه ؟

    نه بابا عید باید بریم شهرستان خودمون!! (اگه تونستم میام)

    نکته ویژوالی :
    ای بابا آدمو مجبور می کنید نکته بگه ها!
    می دونستید تو ویندوز 7 (حالا دقیقا نمی دونم رو همشون یا بعضیاش) ویژوال بیسیک خاصیت Right to left ش کار نمی کنه. برای درست کردن اون باید یه Fix رو از سایت مایکروسافت بگیرید و روی ویندوزتون نصبش کنید.

    نفر بعدی Saber67 که می خواد گیر بده بگه پاشو بیا کرمانشاه و بحث رو به درازا بکشونه!!
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:25 عصر

  39. #159
    کاربر دائمی آواتار SlowCode
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اردبیل
    پست
    2,638
    دوستان لطفا حرفاتونو یا پیغام خصوصی رد و بدل کنین چون به نظر میرسه تاپیک داره به هم میخوره و بار علمیش هم میاد پایین، البته جسارت نشه.

    نکته ویژوالی:


    میدونستین با متد AppActivate میشه روی یه برنامه فوکوس کرد؟مثال:
    AppActivate "chrome"


    نفر بعدی : احتمالا بهم گیر میده
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:25 عصر

  40. #160
    کاربر دائمی آواتار saber67
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    کرمانشاه
    سن
    35
    پست
    155

    نقل قول: نفر بعدي كيه ؟

    آفرین منم می خواستم بگم محسن سوخته! چون نکته نگفته

    نکته ویژوالی:

    برای جلوگیری از اینکه کاربر نتونه برنامه تون رو به صورت هم زمان چندین بار اجرا کنه توی اولین فرمی که لود میشه از کد زیر استفاده کنین:

    Private Sub Form_Load()
    If App.PrevInstance Then
    Unload Me
    End If
    End Sub


    نفر بعدی unit001 هست که می خواد بگه به کسی نگم سوخته، باشه نمیگم بین خودمون می مونه
    آخرین ویرایش به وسیله vbhamed : چهارشنبه 27 فروردین 1393 در 18:26 عصر

صفحه 4 از 6 اولاول ... 23456 آخرآخر

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

  1. آموزش: ساعت توسط JavaScript با روشي جالب و متفاوت و جذاب
    نوشته شده توسط hakan648 در بخش طراحی وب (Web Design)
    پاسخ: 0
    آخرین پست: جمعه 30 اردیبهشت 1390, 17:31 عصر
  2. ساعت توسط JS با روشي جالب و متفاوت و جذاب
    نوشته شده توسط hakan648 در بخش طراحی وب (Web Design)
    پاسخ: 1
    آخرین پست: پنج شنبه 22 اردیبهشت 1390, 19:07 عصر
  3. یک برنامه جالب!
    نوشته شده توسط mr_esmaily در بخش VB.NET
    پاسخ: 20
    آخرین پست: سه شنبه 01 مهر 1382, 14:37 عصر
  4. پاسخ: 0
    آخرین پست: سه شنبه 25 شهریور 1382, 15:37 عصر
  5. دوستان یک سایت جالب
    نوشته شده توسط منصور بزرگمهر در بخش VB.NET
    پاسخ: 0
    آخرین پست: پنج شنبه 05 تیر 1382, 01:14 صبح

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

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

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