تبليغاتX
.:: ترفنــــــدهای خفن،آموزش و غیره ::.

.:: ترفنــــــدهای خفن،آموزش و غیره ::.

آموزش ویژوال بیسیک و مطالب خواندنی

اين تابع مي تونه كليد هاي CRTL_ALT_Delete رو غير فعال كنه

البته حتما بايد سريع به حالت قبل برگردونيد چون موندن اين حالت زياد جالب نيست

Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" _
(ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long

Private Const SPI_SCREENSAVERRUNNING = 97

حالا دو تا كامند به فرم اضافه كنيد به اسم هاي Desabled و Enabled

كد دكمه غير فعال كردن

Private Sub Disabled_Click()
Dim Ret As Long
Dim pOld As Boolean
Ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, pOld, 0)
End Sub

كد فعال سازي اين كليد ها بهتر است اين كدها را در Unload فرم نيز فراخواني كنيد

Private Sub EnableD_Click()
Dim Ret As Long
Dim pOld As Boolean
Ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, pOld, 0)
End Sub
+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

چطور ميتوان سطل آشغال ويندوز رو خالي كرد

اگه بخوايد يك برنامه تقويت ويندوز بنويسيد به گزينه خالي كردن سطل آشغال ويندوز نياز خواهيد داشت
سري قبل اين اموزش رو در مورد كنترل سي پي يو (تاكس منيگر)ويندوز نوشتم
براي اين كار بايد از تابعي موجود در كتابخانه قدرتمند شل كه در آرشيو اموزشهاي زيادي راجع به اين كتابخانه هست استفاده كنيد

شيوه ي تعريف كتابخانه

Private Declare Function SHEmptyRecycleBin Lib "shell32.dll" Alias "SHEmptyRecycleBinA" (ByVal hWnd As Long, ByVal pszRootPath As String, ByVal dwFlags As Long) As Long
Const SHERB_NOPROGRESSUI = &H2

شيوه ي استفاده

Private Sub Command1_Click()
Dim retvaL
retvaL = SHEmptyRecycleBin(Form1.hWnd, "", SHERB_NOPROGRESSUI)
End Sub
+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

فایلهای تصادفی در ویژوال بیسیک 6

در این فایل ها می توان به طور تصادفی در هر جای فایل ذخیره کرد و می توان از هر جای فایل خواند و بر خلاف فایل های ترتیبی (Extentional ) که خواندن و ذخیره در ان باید با ترتیب از اولین رکورد صورت گیرد در فایل Random   به رکورد دلخواه می توان دسترسی داشت .

دستور باز کردن فایل : Len=10     Open “c:\test.txt” for Random As # 1

طول رکورد 10 تعریف و اگر تعریف نکنیم محدویتی قایل نیست .

دستور ذخیره در فایل : Put #1 , record number , variable

 دستور خواندن از فایل : بجای Put  از دستور Get  استفاده می کنیم .

امید است پست امروز برایتان مفید واقع گردد و برنامه زیر را که سورس کد و فایل اجرایی است دانلود نمایید و استفاده کرده و تجربیات برنامه سازی خود را بالا ببرید و اگر قسمت مبهمی وجود دارد  E-Mail  فرستاده و یا در وبلاگ مطرح کنید .

 در فایل تصادفی حتما  رکورد را تعریف کنید به صورت زیر :

Type  student

Namestudent as string*25

Lastname as string * 30

Phonenumber as double

End type

جهت دسترسی به فیلدها

Dim fields2 as student

 نام نوع رکورد . نام فیلد

 Fields . namestudent

 در پست بعدی برنامه ای که بنام کتابخانه است در وبلاگ می گذارم . البته در آینده همین برنامه را بطور کامل بصورت Database  در وبلاگ خواهم گذارد . مثال :

Private Sub cmdcreatfile_Click()

Dim numfile As Integer

Dim i As Integer

numfile = FreeFile

Open "c:\Book2.txt" For Random Access Write As #numfile Len = 5

For i = 1 To 5

Put #numfile, i, i * 2

Next i

End Sub

+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

دانلود چند اکتیو ایکس

سلام

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

اینم اکتیو ایکسها

۱- با استفاده از این فایل می تونید در کنار منوهای خود آیکون قرار دهید. برای دانلود

اینجا را کلیک نمایید


۲- با استفاده از این فایل شما می تونید از دکمه های زیبا در فرمتون استفاده کنید. برای

دانلود اینجا را کلیک نمایید


۳- با استفاده از این فایل شما می تونید  برنامه ی خود را به ظاهر ویندوزتون در بیارید. برای

دانلود اینجا را کلیک نمایید

 خوب.اینم فایلها  « نظر یادتون نره »

+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

معرفی تابع Ellipse

هدف : این تابع ، شکل بیضی را رسم می کند،این تابع برای رسم شکل از نوع خط جاری استفاده می کند

سیستم عامل : ویندوز 95 به بعد

مبدا فراخوانی : Gid32.dll

مقادیر برگشتی : مقدار صفر به منزله ی عدم موفقیت و مقادیر غیر صفر به منزله موفقیت تابع می باشد

 

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

 

Public Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

 

Private Sub Form_Paint()

Me.ScaleMode = vbPixel

Ellipse Me.hdc, 0, 0, 200, 100

Ellipse Me.hdc, 0, 0, 200, 200

End Sub
+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

معرفی تابع ActivateKeyboardLayout

هدف : این تابع ، زبان صفحه کلید را تغییر می دهد و نیازی به دادن کد زبان مورد نظر نمی باشد

سیستم عامل : ویندوز 95 به بعد

مبدا فراخوانی : User32.dll

مقادیر برگشتی : اگر تابع با خطایی مواجه شود ، مقدار برگشتی تابع صفر خواهد بود

 

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

 

Private Const HKL_NEXT = 1

Private Const HKL_PREV = 0

 

Public Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long

 

Public Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long

 

Dim OldKB As Long

 

Private Sub Command1_Click()

  OldKB = GetKeyboardLayout(0)

 ActivateKeyboardLayout HKL_NEXT, ByVal 0&

End Sub

 

Private Sub Command2_Click()

 ActivateKeyboardLayout OldKB, ByVal 0&

End Sub

+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

ایجاد یک تقویم شمسی

استفاده از یک تقویم شمسی به جای تقویم میلادی

 ابتدا یک پروژه ی جدید ایجاد کرده و در داخل آن نیز یک ماژول اضافه کنید

 

در داخل ماژول این کد را وارد نمایید:

Private Month_Name, Spring_Fall

Private Time_Difference, Time_Client

Private Base_Year

Private Sub Get_Date(ByVal Days, Sal, Mah, Rooz)

Dim Years, Year_Length

Do While Days >= 0

  If Kabiseh(Years) Then

     Year_Length = 366

  Else

     Year_Length = 365

  End If

  If Days - Year_Length >= 0 Then

     Years = Years + 1

     Days = Days - Year_Length

  Else

     Sal = Base_Year + Years

     If Days <= 185 Then

        Mah = 1 + (Days \ 31)

        Rooz = 1 + (Days Mod 31)

     Else

        Days = Days - 186

        Mah = 7 + (Days \ 30)

        Rooz = 1 + (Days Mod 30)

     End If

     Exit Sub

  End If

Loop

End Sub

 

 

Private Function Kabiseh(ByVal Years)

Dim Temp

Kabiseh = False

Temp = (Base_Year + Years) - 1309

If (((Temp Mod 32) - (Temp \ 32)) Mod 4) = 0 Then Kabiseh = True

 

End Function

Public Property Let SFhour(x)

   Spring_Fall = x

End Property

Public Property Let Time_Diff(ByVal t)

  Time_Difference = t

End Property

Public Property Let state(ByVal s)

       Month_Name = s

End Property

Public Function To_Hejri(ByVal what_date, Optional Month_Name)

Dim Days, Day_Name, Day_Number, Temp_Days, Months

Spring_Fall = False

If IsMissing(Month_Name) Then Month_Name = 0

 

Time_Difference = #12:00:00 AM#

Base_Year = 1332

 

Months = Array(" فروردين", " ارديبهشت ", "خرداد", " تير ", " مرداد ", " شهريور ", " مهر ", " آبان ", " آذر ", " دي ", " بهمن ", " اسفند ")

 

Day_Name = Array("يکشنبه", " دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه")

Days = DateDiff("d", #3/21/1953#, what_date)

Day_Number = Weekday(what_date)

Dim Year_Length, Sal, Mah, Rooz, temp_date

If FormatDateTime(what_date + Time_Difference, vbShortDate) <> FormatDateTime(what_date, vbShortDate) Then

   Days = Days + 1

   Day_Number = (Day_Number + 1)

   If Day_Number = 8 Then Day_Number = 1

End If

Time_Client = FormatDateTime(what_date + Time_Difference, vbLongTime)

Call Get_Date(Days, Sal, Mah, Rooz)

If ((Mah >= 1 And Mah <= 6) And Not ((Mah = 1 And Rooz = 1) Or (Mah = 6 And Rooz = 31))) And Spring_Fall = True Then

   If FormatDateTime(what_date + Time_Difference + #1:00:00 AM#, vbShortDate) <> FormatDateTime(what_date + Time_Difference, vbShortDate) Then

     Temp_Days = Days + 1

     Day_Number = (Day_Number + 1)

     If Day_Number = 8 Then Day_Number = 1

   Else

     Temp_Days = Days

   End If

   Time_Client = FormatDateTime(what_date + Time_Difference + #1:00:00 AM#, vbLongTime)

   If Temp_Days <> Days Then

      Days = Temp_Days

      If Rooz = 30 And Mah = 6 Then

         If DateDiff("n", Time_Client, #1:00:00 AM#) <= 60 And DateDiff("n", Time_Client, #1:00:00 AM#) >= 0 Then

            Time_Client = FormatDateTime(what_date + Time_Difference, vbLongTime)

            Days = Days - 1

            If Day_Number = 1 Then

               Day_Number = 7

            Else

               Day_Number = Day_Number - 1

            End If

         End If

      End If

      Call Get_Date(Days, Sal, Mah, Rooz)

   End If

End If

If Month_Name = 0 Then

   If Rooz < 10 Then Rooz = "0" & Rooz

   If Mah < 10 Then Mah = "0" & Mah

   To_Hejri = Rooz & "/" & Mah & "/" & Sal

ElseIf Month_Name = 1 Then

   To_Hejri = Rooz & " " & Months(Mah - 1) & " " & Sal

ElseIf Month_Name = 2 Then

   To_Hejri = Day_Name(Day_Number - 1) & " " & Rooz & "/" & Mah & "/" & Sal

ElseIf Month_Name = 3 Then

   To_Hejri = Day_Name(Day_Number - 1) & " " & Rooz & " " & Months(Mah - 1) & " " & Sal

End If

End Function

Public Function To_Time(what_date)

    Call To_Hejri(what_date)

    To_Time = Time_Client

End Function

Private Sub Class_Initialize()

    Spring_Fall = False

    Month_Name = 0

    Time_Difference = #12:00:00 AM#

    Base_Year = 1332

End Sub

بعد از وارد نمودن کد فوق در ماژول بر روی فرم خود یک Label و یک Timer  ایجاد نمایید.

 

خاصیت اینتروال تایمر را برابر 1 قرار دهید و یکی از کدهای زیر را وارد نمایید:

Private Sub Timer1_Timer()

Label1 = To_Hejri(Date, 1)

End Sub

یا

Private Sub Timer1_Timer()

Label1 = To_Hejri(Date, 2)

End Sub

یا

Private Sub Timer1_Timer()

Label1 = To_Hejri(Date, 3)

End Sub

با این وجود شما صاحب یک تقویم شمسی می شوید

نظر یادتون نره

+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

معرفی تابع InvertRect

هدف : این تابع ، به اندازه طول و عرض یک چهار گوش مشخص شده ، رنگ تمام پیکسلهای پنجره و با کنترل مشخص شده را معکوس می کند

سیستم عامل :ویندوز 95 به بعد

مبدا فراخوانی : User32.dll

مقادیر بازگشتی : مقدار صفر به منزله عدم موفقیت تابع می باشد و مقادیر غیر صفر موفقیت آن را می

رساند

مثال : یک فرم جدید بسازید و یک PictureBox با یک عکس داخل آن ، بر روی فرم قرار دهید و کد زیر

را وارد کنید

 

Private Type RECT

Left As Long

Top As Long

Right As Long

Button As Long

End Type

 

Public Declare Function InvertRect Lib "user32" (ByVal hdc As Long, lpRect As RECT) As Long

 

Private Sub Form_Load()

Dim r  As RECT

Picture1.AutoRedraw = True

r.Left = 10

r.Right = 300

r.Top = 20

r.Right = 50

InvertRect Picture1.hdc , r

End Sub

+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

معرفی تابع GetArcDirection

هدف : این تابع ، جهت رسم کمان در پنجره و با کنترل را بدست می آورد. جهت رسم ممکن است بر طبق

جهت حرکت عقربه های ساعت باشد و یا بر خلاف آنها

سیستم عامل : ویندوز 95 به بعد

مبدا فراخوانی : Gdi32.dll

مقادیر بازگشتی : اگر تابع کار خود را با موفقیت انجام دهد مقدار برگشتی یکی از مقادیر زیر می باشد و

در صورت بروز خطا مقدار برگشتی تابع صفر خواهد بود

AD_Clockwise  : در جهت حرکت عقربه های ساعت کمان رسم می شود و یا خواهد شد

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

 

مثال : یک فرم جدید بسازید و کد زیر را وارد کنید.

 

Private Const AD_CLOCKWISE = 2

Private Const AD_COUNTERCLOCKWISE = 1

 

Public Declare Function Arc Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long

 

Public Declare Function SetArcDirection Lib "gdi32" (ByVal hdc As Long, ByVal ArcDirection As Long) As Long

 

Public Declare Function GetArcDirection Lib "gdi32" (ByVal hdc As Long) As Long

 

 

Private Sub Form_Paint()

If GetArcDirection(Me.hdc) = AD_CLOCKWISE Then

SetArcDirection Me.hdc, AD_COUNTERCLOCKWISE

End If

Arc Me.hdc, 20, 20, 50, 60, 50, 60, 20, 60

End Sub

+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

چگونگی اضافه کردن آیکون در منو

      چگونگی اضافه کردن آیکون در منو :

                 برای اضافه کردن آیکون در منوی ( ویژوال بیسیک 6 ) مراحل زیر را انجام دهید:

                         

                         1- در منوی Project   گزینه ی Components… را انتخاب کنید

                        راه میان بر : Ctrl & t   را از روی صفحه کلید خود فشار دهید

 

                     2- در قسمت Controls   گزینه ی   TDL HookMenu Control 1.4    را تیک دار کنید و دکمه ی تایید را بزنید

                          3- در قسمت ToolBox   خود مشاهده می کنید آیکونی وجود دارد که مربوط به گزینه ی فوق است

                          4- برای این کار این آیکون را در فرم خود دراگ کنید

                          5- در قسمت Propertis   آن دکمه ی Custom   را انتخاب کنید

                          6- برای اضافه کردن آیکون خود در قسمت منو آیکون دکمه ی Add Icon  را انتخاب کنید و آیکون مورد نظر را قرار دهید

                          7- توضیح اینکه از قبل باید بر روی فرم خود منو را آماده سازید.

 

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

            

1-         اول اینکه یک منو همانند منوی نوار عنوان  بر روی فرم خود قرار دهید

2-        دوم اینکه خاصیت Visible   منوی اصلی را خنثی کنید

                             توضیح :      برای اینکه موارد فوق عمل کند حتما از & در Caption  منوی خود استفاده کنید برای اینکار من راه شما را ساده

            کرده ام :

                                             &Restore   ، &Move  ،  &Size  ، Mi&nimize   ، Ma&ximize   ، &Close

 

بدین منظور شما می توانید این فایل رو با پسوند ocx دریافت نمایید

 

               دانلود فایل اینجاست

 

                      حال کردین نه!!!

                      نظر یادتون نره ها!!!

+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

وصل کردن دیتاگیرد یک فرم به ADO ی فرم دیگر

یک پروژه بسازید و ابتدا از منوی پروجکت و زیر منوی کامپوننت ابزارهای میکروسافت ادو و میکروسافت دیتاگرد را روی جعبه ابزار اضافه کنید.
بعد روی فرم یک هر دو را بیافزایید.
یک فرم 2 هم به پروژه بیافزایید. و یک دیتاگرد هم به آن بیافزایید.

کد زیر را به فرم یک بیافزایید:

Private Sub Form_Load()

Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
            App.Path & "\db1.mdb;Persist Security Info=False"
Adodc1.RecordSource = "select * from Table1"
Set DataGrid1.DataSource = Adodc1
Form2.Show
End Sub

کد زیر را هم به فرم 2 بیافزایید:

Private Sub Form_Load()
Set DataGrid1.DataSource = Form1.Adodc1
End Sub

 

+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

2 کد با حال

سلام

امروز من با دست پر آمدم

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

اگه میخواین این کدا رو ببینین برین ادامه متن رو کلیک کنین!


ادامه مطلب
+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

چگونه می توان یک Explorer را اجرا کرد ؟

برای این کار می توان از راههای مختلفی استفاده کرد مثلاً از شیء Shell و . . .  . برای اینکار از منوی Project آیتم Preference را انتخاب کنید , اکنون آیتم Microsoft Shell Controls and Automaton  را انتخاب کنید . حالا مراحل زیر را انجام میدهیم .


Dim SH As New Shell


حالا می توانید از متدهای زیادی که این شیء در اختیارتان می گزارد استفاده کنید . از جمله این متد های اجرا Internet Explorer , Outlook , اجرای آیتم های موجود در کنترل پنل , نمایش پنجره جستجوی ویندوز و کلی کارهای مفید دیگه . به مثالهای زیر توجه کنید :


SH.Open "http://vb.blogfa.com"

SH.TrayProperties

SH.SetTime

SH.FindComputer 'System Search

SH.ControlPanelItem "sysdm.cpl" 'System Properties

SH.ControlPanelItem "inetcpl.cpl" 'Internet Options

SH.ControlPanelItem "'appwiz.cpl" 'Add/Remove Programs

+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

چگونه فرم هایی بصورت دایره و یا بیضی در ویژوال بیسیک طراحی کنیم ؟

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

Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function ReleaseCapture Lib "USER32" () As Long
Private Declare Function CreateEllipticRgn Lib "gdi32" _
(ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, _
ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "USER32" _
(ByVal hWnd As Long, ByVal hRgn As Long, _
ByVal bRedraw As Boolean) As Long

خوب اکنون کد زیر را در رویداد (Event) مربوط به لحظه ای که کلید موس را بروی فرم فشردیم قرار می دهیم تا بتوانیم با فشردن موس در هر جای فرم به راحتی آن را جابجا کنیم .


Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
   MousePointer = 15
   Call ReleaseCapture
   Call SendMessage(hWnd, &HA1, 2, 0&)
   MousePointer = 1
End Sub

حال تابع SetWindowRgn را مقدار دهی میکنیم . ( این قطعه کد را در رویداد Form_Load بنویسید ) :

   SetWindowRgn hWnd, CreateEllipticRgn(0, 0, 200, 200), True

مثلا مقادیر 200 و 200 شکل فرم بصورت دایره در می آید برای شکل بیضی شما میتوانید این مقادیر را 200 و 300 اختیار کنید .( بهتر است که خاصیت boarderStyle را 0-None در نظر بگیرید)

+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

طراحی Splash Screen

خوب باز هم باید توابع مورد نیاز را فراخوانی کرده و همچنین ثوایت مورد نیاز را تعریف کنیم

Const LWA_COLORKEY = &H1
Const LWA_ALPHA = &H2
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = &H80000
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" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha _
As Byte, ByVal dwFlags As Long) As Long


نوع نمایش این Splash Screen به گونه ای است که میزان شفافیت فرم آن از 0 به 255 رسیده و دوباره کاهش یافته به صفر می رسد (یا بعبارت دیگر از حالت نامرئی به شفافیت کامل رسیده و دوباره از شفافیت آن کاسته شده و نامرئی می شود ) . خوب تنها Control که برای این برنامه نیاز داریمTimer می باشد . کدی که در Form_Load می بینید باعث می شود که فرم در ابتدای امر نامرئی باشد چون مقدار bAlfa آنرا 0 داده ام


Private Sub Form_Load()

Dim Ret As Long
'Set the window style to 'Layered'
Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
Ret = Ret Or WS_EX_LAYERED
SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret

'SetLayeredWindowAttributes Me.hWnd,0,(0-255),LWA_ALPHA
SetLayeredWindowAttributes Me.hWnd,0,0,LWA_ALPHA

Timer1.interval = 1
End
End Sub

در مرحله بعد برای اینکه فرم از حالت نامرئی به مرئی برسد (یعنی مقدار آن از 0 به 255 برسد) یک حلقه For نوشتم . حال برای اینکه فرم دوباره از حالت مرئی به نامرئی برشد یک حلقه For دیگر با گام افزایش -1 نوشتم تا مقدار آنرا کاهش دهد .

Private Sub Timer1_Timer()

For i = 1 To 255
SetLayeredWindowAttributes Me.hWnd,0,CByte(i),LWA_ALPHA
Next i

For i = 255 To 1 Step -1
SetLayeredWindowAttributes Me.hWnd,0,CByte(i),LWA_ALPHA
Next i

Timer1.Enabled = False

End Sub

(*) یک نکته : این برنامه در سیستم عاملهای windows 2000 به بعد قابل اجراست , زیرا توابع مورد استفاده در این برنامه در ویندوزهای 98 و 95 وجود ندارد .

نظر یادتون نره!!

+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

تاریخچه ویژال بیسیک

با شناختی که از تاریخچه ویژوال بیسیک بدست می آورید راحت تر می توانید از آن استفاده کنید.
شرکت مایکروسافت ویژوال بیسیک را براساس یک زبان برنامه نویسی به نام بیسیک که برای مبتدیان نوشته شده است ساخت.
زبان ویژوال بیسیک بیشتر از 35 سال به اشکال مختلف رایج بوده. در واقع طراحان این زبان می خواستند یک زبان برنامه نویسی برای استفاده مبتدیان طراحی کنند.برنامه نویسان جدید می توانند با استفاده ازبیسیک به سرعت به شرع برنامه نویسی های حرفه ای با زبان های cobol .fortran . assembler
در مقایسه به بیسیک کار بیشتری نیاز داشت.
طبیعت بصری ویژوال بیسیک
دیدید که ویژال بیسیک 6 چیزی بیشتر از یک زبان برنامه نویسی است. از ویژوال بیسیک در نام آن visualبه معنای بصری یا محیط نمایشی . است.
کار با ویژال بیسیک 6
در اولین بار که برنامه را باز می کنید با پنجره new project روبه رو می شوید در این قسمت
نوع فورم خود را انتخاب کرده ماننده activex|standardو....
این پنجره شامل 3 قسمت بوده
New:در این پنجره امکان انتخاب فورم مورد نظر شما امکان پذیر می باشد.
Existing:در این پنجره امکان انتخاب project های مختلف که در مکانهای مختلف ذخیره یا... امکان انتخاب می باشد.
Recent:در این قسمت هر projectرا که ذخیره می کنید به صورت دسته ای جمع می شود حالا یک فایلی
در درایو Dباشد حالا چه در درایو c.
DON.T SHOW THIS DIALOG IN THE FUTURE
این قسمت جلو گیری از باز شدن پینجره NEW PRIJECT می باشد.
HELP:از این قسمت وقتی امکان استفاده می باشد که نرم افزار MSDN را نصب کرده باشید.
معرفی قسمت های بیسیک.
نوار ابزار:TOOLBAR:نوار ابزار VB زیر منو قرار دارد. ویژال بیسیک کلا چهار نوار ابزار دارد:
STANDARD:این نوار ابزار زیر منو ظارهر است و پیش فرض است.
DEBUG:وقتی از ابزارهای رفع اشکال برای ردیابی و اصلاح اشکالات استفاده می کنید. این نوار ابزار ظاهر می شود.
EDIT:این نوار ابزار برای تنظیم کردن اشیاء بر روی فرم می باشد
FORM EDITOR:این نوار ابزار برای تنظیم کردن اشیاء بر روی فرم می باشد.
جعبه ابزار:TOOLBOX:
در این پنجره تمامی شئعی های مختلف برای کار بر روی فرم هستند و حتا امکان اضافه کردن به این پنجره ها می باشد.
پنجرهPROJECT:در این پنجره فرم های انتخبی شما با هر گروه و هر فرم مشخص شده است.
پنجرهPROPERTISE:
این پنجره امکان تنضیمات لازم برای هر شیئی را مشخص می کنید.
+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

پخش فایل های صوتی در ویژوال بیسیک

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

برای پخش فایلهای صوتی باید از توابع API ویندوز استفاده کنیم که ما در ینجا از تابع sndPlaySound استفاده کرده ایم .
برای استفاده از توابع API ویندوز (همون طور که در جلسات قبل گفتم ) باید آنها را Declare کنیم .
کدهای زیر را در قسمت General فرم خود بنویسید:

Private Declare Function sndPlaySound lib "winmm.dll" Alias "sndPlaySoundA"(ByVal _
lpszSoundName as String , uFlags as Long) as Long

تابع sndPlaySound دارای دو آرگومان میباشد که ارگومان اول(lpszSoundName)مسیر و نام فایل صوتی است و آرگومان دوم (uFlags) با ثابت هایی که میگیرد چگونگی پخش را کنترل میکند. در زیر تعدادی از ثابت های آرگومان دوم توضیح داده شده است:

SND_ASYNC : در صورتی که این ثابت را انتخاب کنید در زمان پخش فایل صوتی می توانید کارهای عادی دیگر خود را انجام دهید.

SND_SYNC : با انتخاب این ثابت در زمان پخش فایل صوتی تا وقتی که فایل صوتیمان بپایان نرسیده کار دیگری نمی توانیم انجام دهیم.

SND_LOOP : با انتخاب این ثابت فایل صوتی به صورت مکرر پخش خواهد شد.

SND_NODEFAULT : با انتخاب این ثابت اگر فایل صوتی در مسیر تعیین شده وجود نداشت صوتی پخش نمی شود.

اگر بخواهید از دو یا چند ثابت به طور همزمان استفاده کنید باید با نوشتن OR دو ثابت را با هم بیاورید.

بعد از تعریف کردن تابع API در همان جا (یعنی قسمت General فرم) ثابت های بالا را تعریف کیند:

Private Const  SND_ASYNC = &H1
private Const  SND_LOOP = &H8
Private Const  SND_NODEFAULT = &H2
private Const  SND_SYNC = &H0

حالا در وسط فرم خود یک دکمه فرمان (Command1) قرار دهید و روی آن دوبار کلیک کنید تا به پنجره کدها بروید.سپس کدهای زیر را بنویسید:

Private Sub Command1_Click

sndPlaySound  "FileName" , SND_ASYNC  OR SND_NODEFAULT

End Sub

در قطعه کد بالا به جای "FileName" مسیر و نام فایل صوتی با فرمت Wav. را بنویسید.برنامه را اجرا کنید و حالشو ببرید.

+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

استفاده از Microsoft Agent برای تزیین برنامه

microsoft agent که فایل dll ی به منبع agentctl.dll دارد که همراه با vb در system32 نصب می شود.می توانید روی toolbar رایت کلیک کنید و از Components اون رو add کنید .Object ایجاد شده سر یک آدمه این object رو روی فرمنون drag کنید و نام اونو همون نام خودش که Agent1 هست رو بذارین باشه .....


بعد کد زیر رو توی یک Command Button قرار بدین .در آخر توضیح میدم چه کار می کنه که سرسری فقط copy paste نکرده باشین D:

With Agent1.Characters
    .Load ("merlin")            '1
    .Item("merlin").Show        '2
    .Item("merlin").MoveTo 500, 500 '3
    .Item("merlin").Think "welcome to vbprogramming.blogfa.com" '4
    .Item("merlin").Hide        '5
End With
End Sub

1 - با فرمان load این object که merlin نام داره رو load می کنیم .

2 - merlin رو روی صفحه نشون میدیم .

3 - با فرمان move to این merlin و به مختصات دلخواه بر حسب twip می بریم .

۴ - نمایش متن بالای سر merlin .

5 - پنهان کردن Merlin .

+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

پیدا کردن نام Printer های موجود

اگه برنامتون لازم داشت که نام تمام Printer های موجود رو بدونه (مثلاً print گرفتن با Printer دلخواه) از کد زیر استفاده کنین . بعداً کار با Printer رو کامل توضیح میدم ....


فقط دو object رو بسازین : Command1  و  List1

Private Sub Command1_Click()
Set Printer = Printers(List1.ListIndex)
End Sub

Private Sub Form_Load()
For a = 0 To Printers.Count - 1
List1.AddItem Printers(a).DeviceName
Next a
End Sub

+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

تغییر دادن زبان صفحه کلید

 دو دکمه فرمان (Command1 , Command2 ) روی فرم قرار دهید . از منوی View گزینه Code را بزنید تا پنجره کدها باز شود. سپس کدهای زیر را در پنجره کدها بنویسید:

Private Declare Function LoadKeyboardLayout Lib "user32.dll" Alias "LoadKeyboardLayoutA"(Byval pwszKLID as String , ByVal Flags as long ) as Long

Private Sub Command1_Click

LoadKeyboardLayout  "00000429" , 1

End Sub

Private Sub Command2_Click

LoadKeyboardLayout  "" , 1

End Sub

در قطعه کد بالا با زدن دکمه فرمان ۱ (Command1)زبان صفحه کلید فارسی میشود و بازدن دکمه فرمان۲ زبان صفحه کلید به انگلیسی مبدل میشود.

+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

ایجاد پایگاه داده از طریق ویژوال بیسیک

براي ايجاد يك پايگاه داده اكسس چند راه وجود دارد . شما ميتوانيد اين كار را هم از طريق مايكروسافت اكسس و هم از طريق ويژوال بيسيك انجام دهيد . در پايان اين مطلب من به شما ثابت ميكنم كه از اين راحت تر نميشه بانك اطلاعاتي درست كرد حتي اگر اكسس هم بلد نباشيد!

در تمام نسخه هاي ويژوال بيسيك تقريبا به صورت مشابه اين كار انجام ميشود . نسخه 4 ويژوال بيسيك از طريق Data manager و در نسخه هاي بعدي به وسيله Visual Data Manager ميتوان از امكانات پايگاه داده ها استفاده كرد . از آنجا كه من از ويژوال بيسيك 6 استفاده ميكنم بنابراين به بررسي Visual Data Manager مي پردازم .
براي اجراي اين برنامه از منوي Add-Ins گزينه Visual Data Manager را انتخاب كنيد . در صورتي كه براي اولين بار اين برنامه را اجرا كرده باشيد پيغامي در مورد فايل حفاظت System.MD? دريافت خواهيد كرد . براي ادامه No را انتخاب كنيد تا برنامه Vis Data اجرا شود.

خوب حالا ميخواهيم يك پايگاه داده ايجاد كنيم . در ويژوال بيسيك ميتوان از انواع پايگاههاي داده از قبيل قاكس پرو , پاراداكس , درايو ODBC و غيره استفاده كرد و همچنين تمام جداول آنها را ايجاد كرد ولي ما در اينجا فقط ايجاد پايگاه داده استاندارد مايكروسافت كه همان اكسس است را شرح ميدهيم .

1- منوي File | New | Microsoft Access | Version 7.0 MDB را انتخاب كنيد .

2- در قسمت بعد بايد مسير ذخيره سازي و نام اين پايگاه را مشخص كنيم به عنوان مثال براي نام آن MyDatabase را در قسمت نام فايل نوشته و روي دكمه Save كليك ميكنيم . آنگاه برنامه دو پنجره را در اختيار ما قرار ميدهد , يكي Database Windows و ديگري SQL Statement ميباشد .

3- در پنجره Database Windows دكمه راست ماوس را كليك كرده تا منويي روي اين پنجره باز شود از اين منو گزينه New Table را براي ايجاد جدول جديد انتخاب نمائيد .

4- پنجره Table Structure شامل دو قسمت ميباشد كه يكي مربوط به فيلدهاي جدول و ديگري مربوط به ايندكس هاي آن ميباشد.

5- در قسمت Table Name نام جدول مورد نظر را مانند MyTable وارد ميكنيم براي ايجاد فيلدهاي اين جدول بايد دكمه فرمان Add Field را انتخاب كنيم تا پنجره مربوط به آن باز شود.

6- حال تك تك مشخصات فيلد هاي اين جدول از قبيل Name , Type , Size , Variable Field , Fixed Field , allow zero length و غيره را تنظيم ميكنيم

7- بعد از ايجاد فيلد ها اگر بخواهيم به آنها ايندكسي نسبت دهيم در پنجره Table Structure روي دكمه Add index تنظيمات مربوط به ايندكس را نيز انجام ميدهيم .

8- خوب حالا بانك اطلاعاتي ما آماده شد . روي اين جدول در پنجره Database Windows دو بار كليك كنيد تا جدول MyTable نمايش داده شود .

+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

چگونگی ایجاد یک برنامه ی طراحی و ایجاد تغییرات درعکس

چگونگی ایجاد یک برنامه ی طراحی و ایجاد تغییرات درعکس :

            برای ایجاد یک برنامه ی طراحی و ایجاد تغییرات در عکس مراحل موجود در ادامه مطلب را در برنامه ی خود به ترتیب انجام دهید


ادامه مطلب
+ نوشته شده در  ساعت   توسط حسن سامی نسب  | 

7 ترفند برای ورد

قصد دارم تا هم اکنون 7 ترفند ساده اما کاربردی در نرم افزار Word را به شما معرفی کنم. با بکار بستن اين ترفندها در کار خود با نرم افزار Word سرعت بخشيد و همچنین خود را حرفه ای تر نشان دهید.

 

 

1- با فشردن کليد Shift + F5 مي‌توانيد به قسمتي از متن که بتازگي تغييري در آن ايجاد کرده ايد برويد. فشردن مجدد اين کليدها شما را به قسمت‌هاي تغيير يافته قبلي متن مي‌برد.

 

2- اگر فرمت قسمتي از متن را تغيير داده ايد، مثلا رنگ يا نوع فونت آن را عوض کرده ايد و حالا مي‌خواهيد به همان وضعيت پيش فرض Word برگردانيد، مي‌توانيد آن بخش از متن را انتخاب و کليدهاي CTRL + SPACEBAR را فشار دهيد.

 

3- وقتي مي‌خواهيد بخشي از متن را انتخاب نمائيد، مي‌توانيد کلمه ALT را پائين نگه داريد و با ماوس DRAG کنيد. اين کار باعث مي شود عمل انتخاب به صورت مستطيل شکل انجام شود و سرعت شما به طرز چشمگيري افزايش يابد.

 

4- وقتي در حال تايپ کردن يک متن انگليسي هستيد و به دنبال مترادف يک کلمه خاص مي گرديد، کافيست نشانگر را در کنار و يا در زير کلمه مربوطه ببريد و کليدهاي Shift + F7 را فشار دهيد. با اين کار فهرستي از کلمات مترادف آن کلمه خاص نمايش داده مي‌شود.

 

5- در پنجره Print Preview شما مي‌توانيد پيش از پرينت گرفتن ، پيش نمايشي از فايل خود را ببينيد. براي انجام تغييرات در همين صفحه، کافيست روي آيکون Magnifier کليک نمائيد تا اجازه تصحيح در متن به شما داده شود.

 

6- اگر مي‌خواهيد همزمان دو بخش مختلف از يک Document را ببينيد، مي‌توانيد فايل مربوطه را در نرم افزار Word باز کرده، ماوس را بالاي فلش موجود در بالاي نوار لغزان نگه داريد تا نشانگر ماوس به شکل دو خط موازي با دو فلش در بالا و پائين آن درآيد. آنگاه کليک کرده و بدون رها کردن ماوس آن را به سمت پائين بکشيد. حال صفحه به دو قسمت تقسيم مي‌شود که در هر دو بخش همان فايل نمايش داده مي‌شود و همزمان مي‌توانيد دو بخش مختلف فايل را ببينيد و ويرايش کنيد.

 

7- فرض کنيد يک فايل طولاني داريد و پيدا کردن مطالب برايتان دشوار، کافيست گزينه Document Map را از منوي View انتخاب کنيد تا فهرستي از عناوين Document شما را نشان دهد. حال با کليک بر هر عنوان به آن قسمت از فايل خود پرش مي‌کنيد

+ نوشته شده در  ساعت   توسط حسن سامی نسب  |