۱۲-فروردین-۱۳۸۵, ۱۵:۴۳:۳۵
1-چگونه فايلي با برنامه ما باز شود؟ (چون تنها انتصاب يک پسوند به برنامه از طريق رجيستري کافي نبوده و اين کار محتواي فايل را به درون کنترل برنامه بار نميکند
مثلا يک ويراستار ساخته ايد و ميخواهيد با کليک بر روي فايل متني (*.txt) متن فايل به جعبه متن برنامه شما وارد شود من تابحال هر سورسي را ديده ام اين قابليت را نداشته است.
2-آيا مي توان در زمان اجرا منو يا زير منوهائي را اضافه يا کم کرد؟ مثل بار گذاري 4 فايل اخير در منوي فايل؟
3-آيا راهي براي ساخت توابع گستردهدر Dll ها (که قابل فراخواني و Declare باشد در ويژوال بيسيک وجود دارد يا نه؟
4- در صورتي که بخواهيد از ديالوگ OpenFile چند فايل را انتخاب کرده و به ليست اضافه کنيد مراحل ذيل را دنبال کنيد:
أ- يک CommanDialogو يک Command Button و یکListBoxبه فرم اضافه کنيد.
ب کد زير را کپي کرده و در بخش کدنويسي بچسبانيد
'***********
Option Explicit
Private Const CD_FLAGS = cdlOFNAllowMultiselect + cdlOFNExplorer + cdlOFNLongNames
Private Sub Form_Load()
Command1.Caption = "Open"
Me.Caption = "MultiSelect File Example"
End Sub
Private Sub Command1_Click()
On Error GoTo cError
Dim i As Integer
Dim myFiles() As String
Dim myPath As String
With CommonDialog1
.MaxFileSize = 32000 'this will max out the buffer for the filenames array for large selections. *NEW*
.CancelError = True 'if cancel is pressed, the code jumps to cError because of the On Error statement above
.fliter = "All Files *.*/*.*" '*NOTE!!* The / should be a vertical pipe symbol here! It displays incorrectly here.
.Flags = CD_FLAGS 'this is where we tell it to use multiselect
.ShowOpen
myFiles = Split(.FileName, vbNullChar) 'the Filename returned is delimeted by a null character because we selected the cdlOFNLongNames flag
Select Case UBound(myFiles)
Case 0 'if only one was selected we are done
List1.AddItem myFiles(0)
Case Is > 0 'if more than one, we need to loop through it and append the root directory
For i = 1 To UBound(myFiles)
myPath = myFiles(0) & IIf(Right(myFiles(0), 1) <> "\", "\", "") & myFiles(i)
List1.AddItem myPath
Next i
End Select
End With
Exit Sub
cError:
Beep
MsgBox Err.Description '*NEW*
End Sub
'***********
مثلا يک ويراستار ساخته ايد و ميخواهيد با کليک بر روي فايل متني (*.txt) متن فايل به جعبه متن برنامه شما وارد شود من تابحال هر سورسي را ديده ام اين قابليت را نداشته است.
2-آيا مي توان در زمان اجرا منو يا زير منوهائي را اضافه يا کم کرد؟ مثل بار گذاري 4 فايل اخير در منوي فايل؟
3-آيا راهي براي ساخت توابع گستردهدر Dll ها (که قابل فراخواني و Declare باشد در ويژوال بيسيک وجود دارد يا نه؟
4- در صورتي که بخواهيد از ديالوگ OpenFile چند فايل را انتخاب کرده و به ليست اضافه کنيد مراحل ذيل را دنبال کنيد:
أ- يک CommanDialogو يک Command Button و یکListBoxبه فرم اضافه کنيد.
ب کد زير را کپي کرده و در بخش کدنويسي بچسبانيد
'***********
Option Explicit
Private Const CD_FLAGS = cdlOFNAllowMultiselect + cdlOFNExplorer + cdlOFNLongNames
Private Sub Form_Load()
Command1.Caption = "Open"
Me.Caption = "MultiSelect File Example"
End Sub
Private Sub Command1_Click()
On Error GoTo cError
Dim i As Integer
Dim myFiles() As String
Dim myPath As String
With CommonDialog1
.MaxFileSize = 32000 'this will max out the buffer for the filenames array for large selections. *NEW*
.CancelError = True 'if cancel is pressed, the code jumps to cError because of the On Error statement above
.fliter = "All Files *.*/*.*" '*NOTE!!* The / should be a vertical pipe symbol here! It displays incorrectly here.
.Flags = CD_FLAGS 'this is where we tell it to use multiselect
.ShowOpen
myFiles = Split(.FileName, vbNullChar) 'the Filename returned is delimeted by a null character because we selected the cdlOFNLongNames flag
Select Case UBound(myFiles)
Case 0 'if only one was selected we are done
List1.AddItem myFiles(0)
Case Is > 0 'if more than one, we need to loop through it and append the root directory
For i = 1 To UBound(myFiles)
myPath = myFiles(0) & IIf(Right(myFiles(0), 1) <> "\", "\", "") & myFiles(i)
List1.AddItem myPath
Next i
End Select
End With
Exit Sub
cError:
Beep
MsgBox Err.Description '*NEW*
End Sub
'***********