基于 FileChooser GUI 组件的最小文件对话框
Author: Steffen Ploetz
这段代码的目的是
-
显示简约对话框的创建和使用,该对话框利用
FileCooser GUI 组件合乎逻辑
-
有一个
gb.form.dialog 组件中 OpenFile 静态方法的替代方法 - 它与 GTK 兼容(在 GTK 环境中,请参阅 gb.gui 组件),但不太方便。
该代码可用作使用其他选择器 GUI 组件的简约对话框的模板。
Only a modal single file selection is supported and only two event handler of the
FileCooser GUI component,
Activate and
Cancel, are used.
Extending the possibilities of the dialog with additional
Static Public Function and function arguments is very simple.
The Gambas code file FFileChooser.class looks like:
' Gambas class file
Static Private sLastSelectedPath As String
Static Private bResult As Boolean
Static Public Function OpenSigleFileModal() As Boolean
Dim hForm As Form
sLastSelectedPath = ""
bResult = False
hForm = New FFileChooser
hForm.ShowModal()
Return bResult
End
Static Public Function LastSelectedPath() As String
Return sLastSelectedPath
End
Public Sub cFileChooser_Activate()
sLastSelectedPath = cFileChooser.SelectedPath
bResult = True
Me.Close
End
Public Sub cFileChooser_Cancel()
Me.Close
End
The Gambas form file FFileChooser.form looks like:
# Gambas Form File 3.0
{ Form Form
MoveScaled(0,0,64,53)
Arrangement = Arrange.Vertical
Margin = True
{ cFileChooser FileChooser
MoveScaled(1,1,62,51)
Expand = True
ShowButton = True
ReadOnly = True
}
}
The
Form property
Arrangement is set to
Vertical and the
cFileChooser property
Expand is set to
True. This enables that the
FileChooser control automatically adapts to changes in the size of the
Form.
The
cFileChooser property
ShowButton is set to
True. This shows the
OK button,
Cancel button and the
filter drop-down.
The
cFileChooser property
ReadOnly is set to
True. This qualifies the
FileChooser control as a
FileOpen control.
The call of the dialog looks like:
Public Sub btnFileOpen_Click()
Dim fileChooser As FFileChooser
Dim sLastSelectedPath As String
If FFileChooser.OpenSigleFileModal() = True Then
sLastSelectedPath = FFileChooser.LastSelectedPath()
Else
sLastSelectedPath = ""
Endif
End
Page revisions
Minimal file dialog based on FileChooser GUI component: Steffen Ploetz - March 28th, 2024