قبل از همه جواب يك نظر از اقا جواد
نظر : سلام
خسته نباشید بازم از کد هات ممنون.
من به برنامه های گرافیکی و کاربردی خیلی علاقه دارم اگه میشه نحوه درست کردن setup برای برنامه های وی بی رو بگی ممنون میشم. بازم از لطفت ممنونم.
موفق باشی.
جواب : اول عليكم سلام دوم خوب شما مي توانيد با برنامه هاي زيادي براي روژه ها
تون setup بسازيد كه كم هم نيستند من يم روش رو بهتون مي گم كه اين
در زمان نصب ويژال بيسك نصب مي شه اسم برنام
Package and Deployment Wizard
كه براي استفاده از ان به مسير زير برويد
Start - all program- Microsoft Visual Studio 6.0- Microsoft Visual Studio 6.0 Tools
حالا در اين قسمت گزينه Package & Deployment Wizard انتخاب كنيد
ويا در مسير نصب نرم افزار مثلا مال من در درايو d:\ نصب است
D:\Microsoft Visual Studio\Common\Tools
حالا در اين صفحه دنبال Package & Deployment Wizard بگرديد
خوب حالا بعد از پيدا كردن نرم افزار از هر راهي كه رفتيد روي روي ايكنش كليك كنيد تا وارد نرم افزار
بشيد در صفخه ضاهر شده در قسمت project Select روي دكمه Browse كليك كنيد
فايل پروژه تان را انتخاب كنيد بعد از ان روي گزينه Package كه در سمت چپ پنجره است كليك
كنيد تا عمل كامپايل صورت گيره ببينه كل پروژه تون پشكل نداره و كل اكتيوس ها و dll هاي كه لازم
را پيدا كنه يك پنجره براتون به صورت مسيج باكسي باز ميشه كه شما دكمه كامپايل را انتخاب كنيد
بعد در پنجره بعد كه نوع پكيج كردن يا Stupe رو بايد انتخاب كنيد گزينه پيش فرض باشه و بدون تغيير
در اين صفحه دكمه next را كليك كنيد تا به صفحه بعد برويد در اين پنجره مي توانيد مسيري كه پكيج
ستاپ ذخيره مي شود را ببينيد روي دكمه next كليك كنيد در بعضي مواقع پيش مي ايد كه نرم افزار
نمي تواند فايل vb6stik.dll را كه بسيار فايل مهمي براي اجرا شدن برنامه شما داره رو نمي تونه پيدا
كنه كه از شما مي خواهد به صورت دستي مسير دهي كنيد كه مي توانيد اسم اين dll را جستجو كرده و
بر روي دسكتاپ بگزاريد و بعد با browse ان را فراخاني كنيد ولي اگر چنين مشكلي پيش نيامد
شما وارد صفحه اي مي شود كه مي توانيد اگر خواصتيد فايلي چيزي رو كه دوست داشتيد را هم به پكيج
نصبتان اضافه كنيد بعد روي گزينه next كليك كنيد وهمين طور در صفحه هاي بعد اگر لازم دانستيد
تغيير ايجاد كنيد در غيره اين صورت همه صفحه ها رو next كرده تا اخر كه بايد فنيش كنيد تا پكيجتان
در محلي كه پروژهتان است ذخيره شود
پايان
____________________________________________________
كار با data1 براي مبتديان بازم ميگم اين اموزش براي مبتديان و كساني كه تا به حال
با data1 كار نكردن و يا حتي يك بارم بانك اطلاعاتي نساختن است و براي بقيه هيچ
كاربردي نداره
من در پست هاي قبلي اموزش ساخت و اتباط با بانك رو بهتون به وسيله كنترل adodce1 داده بودم
ولي امروز مي خاهم ارتباط از طريق كنترل استاندارد data1 كه در جعبه ابزار خود ويژال به صورت
پيشفرض وجود داره بهتون بدم البته اين اموزش در سطح مبتديان بوده و فقط براي شروع كار ساخت
بانك هاي اطلاعاتي كه در اينده نزديك خواهم داد است
اموزش استفاده از كنترل data1
قبل از هر كاري بايد يك بانك در اكسس درست كنيم اين دفعه از خود اكسس براي ساخت فايل استفاده
مي كنيم چون در پست قبلي طرق ساخت فايل بانك اكسس رو با خود ويژال بيسيك انجام داديم
خوب وارد نرم افزار اكسس بشين
حالا از منوي file گزينه new را انتخاب كنيد
حالا در سمت راست در ليست ايجاد شده گزينه Blank database... را انتخاب كنيد
در صفحه ضاهر شده مسيري را براي ذخيره فايل و نامي براي ان انتخاب كنيد و بعد از ان روي
دكمه Create كليد كنيد تا فايل ذخيره بشه
حالا يك پنجره كه هم نام فايلي كه ذخيره كردين هست ضاهر شده در اين پنجره روي گزينه
Create table in Design view كليكك كنيد اگر چنين گزينه اي نبود در بالاي همين پنجره روي گزينه
Open كليك كنيد تا پنجره ساخت جدول بانك اطلاعاتي تان ضاهر شود نام پيش فرض اين
پنجره كه نام جدولتان است Table1 است كه ما بعدا تغيرش مي دهيم
در پنجره Table1 كه به سه قسمت تقسيم شده
Field Name : كه در اين قسمت بايد نام فيلد هاي تان را بنويسيد مثلا نام يا فاميلي و غيره
Data Type : در اين قسمت نوع فيلد هايتان را مشخص مي كنيد مثلا براي نام كه يك رشه است
نوع text را انتخاب و براي مثلا شماره تلفن نوع number وبراي مثلا ادرس و يا
توضيحات نوع Memo را انتخاب مي كنيم
Description : در اين قسمت توضيحات اضافه رو مي نويسم اين قسمت هيچ كاربردي در كد
نويسي نداشته و همانند كامنت است فقط براي توضيح
خوب حالا بريم سر ساختن فيلد هاي جدول ما مثل قبل از چها تا فيلد استفاده مي كنيم
Name
Family
Tel
Addres
طبق توضيحات بالا در قسمت Field Name به ترتيب نام فيلد ها و در قسمت Data Type
نوع انها را انتخاب مي كنيم در انتخاب نوع فيلد ها خيلي دقت كنيد
بعد از اين كه فيلد ها و نوع انها را نتخاب كرديد پنجره Table1 يا همين پنجره كه توش هستيد
را با دكمه بالا خود پنجره ببنديد
بعد ار كليك بر روي دكمه بستن پنجره يك مسيج باز ميپه كه گزينه Yes را انتخاب كنيد
بعد از ان يك پنجره به نام Save As باز ميشه كه بايد نام جدولي كه ساختيد رو انتخاب كنيد
من براي خودم نام جدولم من نام جدولم رو تغيير نمي دم مي زارم همون پيش فرض Table1
باشه بعد از انتخاب نام روي دكمه OK كليك كنيد حالا مسيج باكس ديگ اي باز مي شه
كه از شما مي خواهد اگه مي خوهيد يك فيلد ديگه براي اين كه اگه يك موقع دو تا اطلاعات
مثل هم رو خواستيد بنويسيد به هر كدوم يك id مي ده كه هر كدوم مشكلي براتون پيش نياد
من در جلوتر توضيحات رو اگه وق بود كاملا براتون مي گم ولي اگه يادتون باشه در پروژه بانك قبلي
يك مشكل اساسي داشتيم كه با انتخاب Yes در اين پنجره اين مشكل حل خواهد شد
پس روي دكمه Yes كليك كنيد
خوب در اين پنجره شما بايد نام جدولي كه ساختيد رو ببينيد مثلا براي من نام جدولم Table1
كار كا تمام نشد براي استفاده از كنترل data1 بايد فايل بانك اكسس خود را تبديل به فايل
اكسس 97 كنيم چون كنترل data1 نمي تونه فايل هاي جديد اكسس رو بخونه ما مجبوريم
فايل رو تبديل كنيم پس براي اين كار از منوي Tools گزينه atabase Utilities را انتخاب
و به زير منوي Conver&t Database و از گزينه To Access 9&7 File Format... انتخاب مي كنيم
در صفحه باز شده نامي جديد براي فايلتان و مسيري براي ذخيره ان انتخاب كنيد
شما ديگه با فايل قبلي كاري نداريد مي توانيد فايل قبلي كه ساختيد را پاك كنيد حالا فقط با اين فايل
كه تازه ذخيره كرديد كار داريد
از اكسس خارج شويد و وارد ويژال بيسيك شود
كنترل data1 رو كه در جعبه ابزار ويژال بيسيك وجود داره رو روي فرم بگزاريد
ما مي خاهيم با كد نويسي فايل اكسس رو با data1 ارتباط دهيم
كد زير را در قسمت كد نويسي فرمتان پيست كنيد
Data1.DatabaseName = "c:\db2.mdb"
Data1.RecordSource = "table1"
در كدبالا اول مسير فايل بانك اطلاعاتي را داديم و در خط دوم كد نوشتيم كه به كدوم جدول وصل بشيم
اگه اسم جدولتان فرق داره و يا اسم ديگه اي است table1 را تغيير دهيد
خوب ما براي فرخاني اطلاعات به صورت جدول نياز به كنترل ديگه داريم كه براي فراخاني ان كنترل
دكمه هاي كنترل و دكمه t را از صفحه كليد بطنيد crt + t
حالا در اين صفحه تيك كنار گزينه Microsoft Data Bound Grid Control 5.0 (SP3) را بزنيد
حالا در جعبه ابزارتان يك كنترل جديد اضافه شد كنترل DBGrid1 را روي فرم بگزاريد
و در قسمت خصوصيات ان مقدار گزينه DataSource را data1 بگزاريد
كار اتصالا تمام شد مي توانيد برنامه را اجرا كنيد تا نتيجه را ببينيد
براي اضافه كردن اطلاعات نيز چهار تا تكس باكس روي فرم قرار داده
Text
Text2
Text3
Text4
حالا يك دكمه يا كامند باتون به نام command1 روي فرم بگزاريد و كد زير را در قسمت
كد نويسي فرمتان پيست كنيد
Private Sub Command1_Click()
Data1.Recordset.AddNew
Data1.Recordset.Fields("name") = Text1.Text
Data1.Recordset.Fields("family") = Text2.Text
Data1.Recordset.Fields("tel") = Text3.Text
Data1.Recordset.Fields("addres") = Text4.Text
Data1.UpdateRecord
End Sub
خوب تكست باكس ها را پر كنيد و روي كامند كليك كنيد تا ذخيره شوند
بقيه كد نويسي براي جستجو و ويرايش و غيره در پست قبلي كه در باره بانك اطلاعاتي بود نوشتم
كد نويسي data1 با adodce1 فرقي براي مبتديان نداره كد ها همونه
فقط يك مطلب مي مونه اونم اينه كه اگه مثلا كنترل DBGrid1 را نداشتيم چطور داخل اطلاعات
Data1 را مي ديديم و استفاده مي كرديم
ما براي اين كه اطلاعات داخل فايل بانك اطلاعاتي مان را ببينيم از چهار تا تكست باكس استفاده مي كنيم
با همون چهار تا تكست باكسي كه روي فرم است
در قسمت خصوصيات همه تكست باكسها در خاصيت DataSource گزينه data1 را انتخاب
كنيد توجع كنيد براي همه تكس باكس ها اين كار را انجان دهيد
خوب حالا براي فراخاني اطلاعات از data1 به داخل تكس باكس ها كد زير را به قسكت كد نويسي
فرمتان پيست كنيد
Private Sub Form_Activate()
Text1.DataField = "name"
Text2.DataField = "family"
Text3.DataField = "tel"
Text4.DataField = "addres"
End Sub
خوب ما براي ان كه بتوانيم به همه اطلاعات دسترسي داشته باشيم بايد در اطلاعات
Data1 حركت كنيم راحت تر بگم بتونيم عقب جلو كنيم مثلا اطلاعات قبلي و بعدي رو ببينيم
براي اي كه اطلاعات قبلي و بعدي داخل data1 رو ببينيم دو تا كامند با تون ديگه
Command2
Command3
اول از همه كپشن command2 رو بك بگزاريد و كپشن command3 رو نگست
خوب حالا كد هاي زير را در قسمت كد نويسي فرمتان پيست كنيد
Private Sub Command2_Click()
Data1.Recordset.MoveLast
End Sub
Private Sub Command3_Click()
If Data1.Recordset.EOF = False Then
Data1.Recordset.MoveNext
End If
End Sub
خوب من براي كامند 2 گفتم كه يك خانه برگرد عقب ولي براي كامند دو گفتم اگه به
اخر جدول نرسيديم يك خانه يا ركورد برو جلو
خوب بقيه كد نويسي ها خيلي تكراريه كه قبلا گفتم ولي اگه جاي مشكل داشتيد بگيد تا بهتون
بگم چكار كنيد
بازم چند تا برنامه
چگونه از اجراي مجدد برنامه در ويژوال بيسيک جلوگيري كنيم يعني اين كه مثلا يك برنامه اي رو
ساختيم و كاربر وقتي رو بانامه كليك كرك برنامه كا اجرا بشه ولي اگه در حالي كه برنامه ما اجرا
كاربر دوباره روي ايكن برنامه ما كليك كنه يك پيقام نشون بده كه نتوان برنامه را دو باره اجرا كرد
اين برنامه رو فكر كنم قبلا نوشتم ولي براي اين كه يك كم شك دارم دوباره گزاشتمش
كد زير را درقسمت كد نويسي فرمتان پيست كنيد
Private Sub Form_Load()
Dim Result As Integer
If App.PrevInstance = True Then
Result = MsgBox("برنامه در حال اجراست", vbInformation, "اختار")
Unload Me
End If
End Sub
پايان
چطور براي براي يك فايل يك شرت كات با ايكن دلخواه ايجاد كنيم
توضيح اينه كه مي خاهيم برنامه بنويسيم كه مسير يم فايل رو بگيري فرقي نمي كنه چه نوع فايلي با شه
بعد مسير يك فايل ايكن رو مي گيريم و بعد نوع نشون دادن ايكن رو معلوم مي كنيم مثلا پشت ايكن پر
باشه يا خالي و در اخر مسير فايل اصلي رو دو باره ميديم تا فايل شرتكات بدونه كه مخزنش كدوم فايله
توضيح ديگه بسه در كد پايين كه من مسير يك فايل كه تو كامپيوتر خودمه دادم شما با فايل و مسير خودتون
عوضش كنيد و حالا كدهاي زير را در قسمت كد نويسي فرمتان پيست كنيد
Sub CreateShortCut(File As String, icon As String, iconindex As Long, Target As String)
Dim intFreeFile As Integer
File = File & ".url"
intFreeFile = FreeFile
Open File For Output As intFreeFile
Print #intFreeFile, "[InternetShortcut]"
Print #intFreeFile, "URL=" & Target
Print #intFreeFile, "IconFile=" & icon
Print #intFreeFile, "Iconindex=" & iconindex
Close intFreeFile
End Sub
Private Sub Form_Load()
'CreateShortCut "File","icon","0","File"
CreateShortCut "c:\abbas.txt", "F:\abbas\icon1\8.ico", "0", "c:\abbas.txt"
End Sub
پايان
___________________________________________________________________
چطور يك برنامه بنويسيم كه بتوان از تمامي حالات رزليشني كه كارت گرافيك شما تواناي ان را دارد
استفاده منيم توضيح ميخاهيم يك برنامه بنويسيم كه مثلا رزليشن مانيتوئ رو از حالت 1024 700 به
حالت 600 در 800 و يا هر اندازه كه دلتون خاصت ببريد البته مي دونم من در توضيح دادن افتضاح
هستم ولي برنامه كاملا كاربردي و حتما بهتون پيشنهاد ميكنم كه برنامه زير رو حتما انجام بديد
خوب براي شروع ما به چند كنترل نياز داريم كنترل هاي زير را روي فرم بگزاريد
Command1
List1
حالا كدهاي زير را به قسمت كد نويسي فرمتان پيست كنيد
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_DISPLAYFLAGS = &H200000
Const DM_DISPLAYFREQUENCY = &H400000
Private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags As Long) As Long
Private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum As Long, lpDevMode As Any) As Boolean
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Const BITSPIXEL = 12
Const CDS_UPDATEREGISTRY = &H1
Const CDS_TEST = &H2
Const CDS_FULLSCREEN = &H4
Const CDS_GLOBAL = &H8
Const CDS_SET_PRIMARY = &H10
Const CDS_RESET = &H40000000
Const CDS_SETRECT = &H20000000
Const CDS_NORESET = &H10000000
' /* Return values for ChangeDisplaySettings */
Const DISP_CHANGE_SUCCESSFUL = 0
Const DISP_CHANGE_RESTART = 1
Const DISP_CHANGE_FAILED = -1
Const DISP_CHANGE_BADMODE = -2
Const DISP_CHANGE_NOTUPDATED = -3
Const DISP_CHANGE_BADFLAGS = -4
Const DISP_CHANGE_BADPARAM = -5
Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4
Dim D() As DEVMODE, lNumModes As Long
Private Sub Command1_Click()
Dim l As Long, Flags As Long, x As Long
x = List1.ListIndex
D(x).dmFields = DM_BITSPERPEL Or DM_PELSWIDTH Or DM_PELSHEIGHT
Flags = CDS_UPDATEREGISTRY
l = ChangeDisplaySettings(D(x), Flags)
Select Case l
Case DISP_CHANGE_RESTART
l = MsgBox("This change will not take effect until you reboot the system. Reboot now?", vbYesNo)
If l = vbYes Then
Flags = 0
l = ExitWindowsEx(EWX_REBOOT, Flags)
End If
Case DISP_CHANGE_SUCCESSFUL
Case Else
MsgBox "Error changing resolution! Returned: " & l
End Select
End Sub
Private Sub Form_Load()
Dim l As Long, lMaxModes As Long
Dim lBits As Long, lWidth As Long, lHeight As Long
lBits = GetDeviceCaps(hdc, BITSPIXEL)
lWidth = Screen.Width \ Screen.TwipsPerPixelX
lHeight = Screen.Height \ Screen.TwipsPerPixelY
lMaxModes = 8
ReDim D(0 To lMaxModes) As DEVMODE
lNumModes = 0
l = EnumDisplaySettings(ByVal 0, lNumModes, D(lNumModes))
Do While l
List1.AddItem D(lNumModes).dmPelsWidth & "x" & D(lNumModes).dmPelsHeight & "x" & D(lNumModes).dmBitsPerPel
If lBits = D(lNumModes).dmBitsPerPel And _
lWidth = D(lNumModes).dmPelsWidth And _
lHeight = D(lNumModes).dmPelsHeight Then
List1.ListIndex = List1.NewIndex
End If
lNumModes = lNumModes + 1
If lNumModes > lMaxModes Then
lMaxModes = lMaxModes + 8
ReDim Preserve D(0 To lMaxModes) As DEVMODE
End If
l = EnumDisplaySettings(ByVal 0, lNumModes, D(lNumModes))
Loop
lNumModes = lNumModes - 1
End Sub
حالا برنامه را اجرا كنيد ميبينيد كه در ليست باكس تمامي حالت هاي تفكيك پذيري امده كافي هر كدوم رو
خاصتيد انتخاب و با كليك بر دكمه كامند رزليشن صفحه تغيير كنه
پايان
_________________________________________________________________
نمايش پنجره تارن اف يا همون پنجره مال خاموش كردن كامپيوتره اين كد فقط اون پنجره رو احضار
مي كنه كد هاي زير را به قسمت كد نويسي فرمتان پيست كنيد
Private Declare Function SHShutDownDialog Lib "shell32" Alias "#60" (ByVal YourGuess As Long) As Long
Private Sub Form_Load()
SHShutDownDialog 0
End Sub
پايان
بدست اوردن ورژن اينترنت اگسپلورر
براي اين كار كد هاي زير را در قسمت كد نويسي فرمتان پيست كنيد
Option Explicit
Private Type DllVersionInfo
cbSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
End Type
Private Declare Function DllGetVersion _
Lib "Shlwapi.dll" _
(dwVersion As DllVersionInfo) As Long
Public Function IEVersionShort() As Long
Dim udtVersionInfo As DllVersionInfo
udtVersionInfo.cbSize = Len(udtVersionInfo)
Call DllGetVersion(udtVersionInfo)
IEVersionShort = udtVersionInfo.dwMajorVersion
End Function
Public Function IEVersionLong() As String
Dim udtVersionInfo As DllVersionInfo
udtVersionInfo.cbSize = Len(udtVersionInfo)
Call DllGetVersion(udtVersionInfo)
IEVersionLong = "Internet Explorer " & _
udtVersionInfo.dwMajorVersion & "." & _
udtVersionInfo.dwMinorVersion & "." & _
udtVersionInfo.dwBuildNumber
End Function
Prكدهاي زير را در قسمت كد نويسي فرمتان پيست كنيد ivate Sub Form_Activate()
Print IEVersionLong
End Sub
پايان
بدست اوردن هندل دسكتاپ
كدهاي زير را در قسمت كد نويسي فرمتان پيست كنيد
Private Declare Function M_GetDesktopWindow Lib "user32" _
Alias "GetDesktopWindow" () As Long
Function GetDesktopWindow() As Long
Dim xHwnd As Long
xHwnd = M_GetDesktopWindow()
GetDesktopWindow = xHwnd
End Function
Private Sub Form_Activate()
Print GetDesktopWindow
End Sub
پايان
چگونه ايكن هاي روي دسكتاپ را rafresh دهيم
براي اين كار ما نياز به كنترل كامند باتون داريم ابزار زير را روي فرم بگزاريد
Command1
حالا كدهاي زير را در قسمت كد نويسي فرمتان پيست كنيد
Option Explicit
Private Declare Function SendMessageByLong& Lib "user32" Alias _
"SendMessageA" (ByVal hwnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam&)
Private Declare Function FindWindow& Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String)
Private Declare Function FindWindowEx& Lib "user32" Alias "FindWindowExA" _
(ByVal hWndParent As Long, ByVal hWndChildAfter As Long, ByVal lpClassName _
As String, ByVal lpWindowName As String)
Private Const LVM_GETTITEMCOUNT& = (&H1000 + 4)
Private Const LVM_SETITEMPOSITION& = (&H1000 + 15)
Dim hdesk&, i&, icount&, X&, Y&
Public Sub MoveIcons()
hdesk = FindWindow("progman", vbNullString)
hdesk = FindWindowEx(hdesk, 0, "shelldll_defview", vbNullString)
hdesk = FindWindowEx(hdesk, 0, "syslistview32", vbNullString)
'hdesk is the handle of the Desktop's syslistview32
icount = SendMessageByLong(hdesk, LVM_GETTITEMCOUNT, 0, 0)
'0 is "My Computer"
For i = 0 To icount - 1
X = 40 * i: Y = 40 * i 'set the position parameters in pixel
'The wParam must be i
Call SendMessageByLong(hdesk, LVM_SETITEMPOSITION, i, CLng(X + Y * &H10000))
Next
End Sub
Private Sub Command1_Click()
Call MoveIcons
End Sub
پايان
حذف اسپيس هاي اضافي در يك جمله مثل اين كه تمامي كلمات داخل جمله تريم بشن يعني فاصله هاي
اضافي بين دو كلمه برداشته بشه
براي اين كار ما نياز داريم به دو ابزار زير دو كنترل زير را روي فرم بگزاريد
Text1
Command1
حالا كدهاي زير را در قسمت كد نويسي فرمتان پيست كنيد
Public Function TrimALL(ByVal TextIN As String) As String
TrimALL = Trim(TextIN)
While InStr(TrimALL, String(2, " ")) > 0
TrimALL = Replace(TrimALL, String(2, " "), " ")
Wend
End Function
Private Sub Command1_Click()
Text1.Text = TrimALL(Text1.Text)
End Sub
پايان
_______________________________________________________________