1. 程式人生 > >PB讓視窗在不同的解析度下自動調整大小函式

PB讓視窗在不同的解析度下自動調整大小函式

//給你個通用函式,在視窗的OPEN事件中加句 f_resize_object(this)即可。
//f_resize_object(window   va_window)
//以下為內容:
//定義環境變數
 

environment   ve_hjbl
dec   vdec_width,vdec_height //寬度比率、高度比率
integer   vi_return //返回數值
long   vl_object
vi_return   =   GetEnvironment(ve_hjbl)
vdec_width   =   ve_hjbl.ScreenWidth   /   1024
vdec_height   =   ve_hjbl.ScreenHeight   /   768
any   vs_object_type

CheckBox   v_CheckBox
OLECustomControl   V_OLECustomControl
CommandButton   v_commandButton
Oval   v_Oval
DataWindow   v_datawindow
Picture   v_picture
DropDownListBox   v_DropDownListBox
PictureButton   v_PictureButton
DropDownPictureListBox   v_dropDownPictureListBox
PictureListBox   v_picTureListBox
EditMask   v_editmask
RadioButton   v_radiobutton
Graph   v_graph
Rectangle   v_rectangle
GroupBox   v_groupbox
RichTextEdit   v_richtextedit
HScrollBar   v_HScrollBar
RoundRectangle   v_RoundRectangle
Line   v_line
SingleLineEdit   v_SingleLineEdit
ListBox   v_ListBox
StaticText   v_statictext
ListView   v_listView
Tab   v_tab
MultiLineEdit   v_MultiLineEdit
TreeView   v_TreeView
OLEControl   v_OLEControl
VScrollBar   v_VSCrollBar
menu   v_menu
//調整視窗屬性

va_window.x   =   va_window.x   *   vdec_width
va_window.y   =   va_window.y   *   vdec_height
//va_window.width   =   va_window.width   *   vdec_width
//va_window.height   =   va_window.height   *   vdec_height
va_window.Resize(va_window.width   *   vdec_width,va_window.height   *   vdec_height)

//處理視窗內物件
for   vl_object   =   1   to   upperBound(va_window.control[])
vs_object_type   =   va_window.control[vl_object].typeof()

choose   case   vs_object_type
case   CheckBox!
v_CheckBox   =   va_window.control[vl_object]
v_checkBox.x   =   v_checkBox.x   *   vdec_width
v_checkBox.y   =   v_checkBox.y   *   vdec_height
v_checkBox.width   =   v_checkbox.width   *   vdec_width
v_checkbox.height   =   v_checkbox.height   *   vdec_height
v_checkbox.textsize   =   v_checkbox.textsize   *   vdec_width
case   OLECustomControl!
V_OLECustomControl   =   va_window.control[vl_object]
V_OLECustomControl.x   =   V_OLECustomControl.y   *   vdec_width
V_OLECustomControl.y   =   V_OLECustomControl.y   *   vdec_height
V_OLECustomControl.width   =   V_OLECustomControl.width   *   vdec_width
V_OLECustomControl.height   =   V_OLECustomControl.height   *   vdec_height
case   CommandButton!
v_commandButton   =   va_window.control[vl_object]
v_commandButton.x   =   v_commandButton.x   *   vdec_width
v_commandButton.y   =   v_commandButton.y   *   vdec_height
v_commandButton.width   =   v_commandButton.width   *   vdec_width
v_commandButton.height   =   v_commandButton.height   *   vdec_height
v_commandButton.textsize   =   v_commandButton.textsize   *   vdec_width
case   Oval!
v_Oval   =   va_window.control[vl_object]
v_Oval.x   =   v_Oval.x   *   vdec_width
v_Oval.y   =   v_Oval.y   *   vdec_height
v_Oval.width   =   v_Oval.width   *   vdec_width
v_Oval.height   =   v_Oval.height   *   vdec_height
case   DataWindow!
v_datawindow   =   va_window.control[vl_object]
v_datawindow.x   =   v_datawindow.x   *   vdec_width
v_datawindow.y   =   v_datawindow.y   *   vdec_height
v_datawindow.width   =   v_datawindow.width   *   vdec_width
v_datawindow.height   =   v_datawindow.height   *   vdec_height
case   Picture!
v_picture   =   va_window.control[vl_object]
v_picture.x   =   v_picture.x   *   vdec_width
v_picture.y   =   v_picture.y   *   vdec_height
v_picture.width   =   v_picture.width   *   vdec_width
v_picture.height   =   v_picture.height   *   vdec_height
case   DropDownListBox!
v_DropDownListBox   =   va_window.control[vl_object]
v_DropDownListBox.x   =   v_DropDownListBox.x   *   vdec_width
v_DropDownListBox.y   =   v_DropDownListBox.y   *   vdec_height
v_DropDownListBox.width   =   v_DropDownListBox.width   *   vdec_width
v_DropDownListBox.height   =   v_DropDownListBox.height   *   vdec_height
v_DropDownListBox.textsize   =   v_DropDownListBox.textsize   *   vdec_width
case   PictureButton!
v_PictureButton   =   va_window.control[vl_object]
v_PictureButton.x   =   v_PictureButton.x   *   vdec_width
v_PictureButton.y   =   v_PictureButton.y   *   vdec_height
v_PictureButton.width   =   v_PictureButton.width   *   vdec_width
v_PictureButton.height   =   v_PictureButton.height   *   vdec_height
v_PictureButton.textsize   =   v_PictureButton.textsize   *   vdec_width
case   DropDownPictureListBox!
v_dropDownPictureListBox   =   va_window.control[vl_object]
v_dropDownPictureListBox.x   =   v_dropDownPictureListBox.x   *   vdec_width
v_dropDownPictureListBox.y   =   v_dropDownPictureListBox.y   *   vdec_height
v_dropDownPictureListBox.width   =   v_dropDownPictureListBox.width   *   vdec_width
v_dropDownPictureListBox.height   =   v_dropDownPictureListBox.height   *   vdec_height
v_dropDownPictureListBox.textsize   =   v_dropDownPictureListBox.textsize   *   vdec_width
case   PictureListBox!
v_picTureListBox   =   va_window.control[vl_object]
v_picTureListBox.x   =   v_picTureListBox.x   *   vdec_width
v_picTureListBox.y   =   v_picTureListBox.y   *   vdec_height
v_picTureListBox.width   =   v_picTureListBox.width   *   vdec_width
v_picTureListBox.height   =   v_picTureListBox.height   *   vdec_height
v_picTureListBox.textsize   =   v_picTureListBox.textsize   *   vdec_width
case   EditMask!
v_editmask   =   va_window.control[vl_object]
v_editmask.x   =   v_editmask.x   *   vdec_width
v_editmask.y   =   v_editmask.y   *   vdec_height
v_editmask.width   =   v_editmask.width   *   vdec_width
v_editmask.height   =   (v_editmask.height   *   vdec_height )/0.9
v_editmask.textsize   =   v_editmask.textsize   *   vdec_width
case   RadioButton!
v_radiobutton   =   va_window.control[vl_object]
v_radiobutton.x   =   v_radiobutton.x   *   vdec_width
v_radiobutton.y   =   v_radiobutton.y   *   vdec_height
v_radiobutton.width   =   v_radiobutton.width   *   vdec_width
v_radiobutton.height   =   v_radiobutton.height   *   vdec_height
v_radiobutton.textsize   =   v_radiobutton.textsize   *   vdec_width
case   Graph!
v_graph   =   va_window.control[vl_object]
v_graph.x   =   v_graph.x   *   vdec_width
v_graph.y   =   v_graph.y   *   vdec_height
v_graph.width   =   v_graph.width   *   vdec_width
v_graph.height   =   v_graph.height*   vdec_height
case   Rectangle!
v_rectangle   =   va_window.control[vl_object]
v_rectangle.x   =   v_rectangle.x   *   vdec_width
v_rectangle.y   =   v_rectangle.y   *   vdec_height
v_rectangle.width   =   v_rectangle.width   *   vdec_width
v_rectangle.height   =   v_rectangle.height   *   vdec_height
case   GroupBox!
v_groupbox   =   va_window.control[vl_object]
v_groupbox.x   =   v_groupbox.x   *   vdec_width
v_groupbox.y   =   v_groupbox.y   *   vdec_height
v_groupbox.width   =   v_groupbox.width   *   vdec_width
v_groupbox.height   =   v_groupbox.height   *   vdec_height
v_groupbox.textsize   =   v_groupbox.textsize   *   vdec_width
case   RichTextEdit!
v_richtextedit   =   va_window.control[vl_object]
v_richtextedit.x   =   v_richtextedit.x   *   vdec_width
v_richtextedit.y   =   v_richtextedit.y   *   vdec_height
v_richtextedit.width   =   v_richtextedit.width   *   vdec_width
v_richtextedit.height   =   v_richtextedit.height   *   vdec_height
case   HScrollBar!
v_HScrollBar   =   va_window.control[vl_object]
v_HScrollBar.x   =   v_HScrollBar.x   *   vdec_width
v_HScrollBar.y   =   v_HScrollBar.y   *   vdec_height
v_HScrollBar.width   =   v_HScrollBar.width   *   vdec_width
v_HScrollBar.height   =   v_HScrollBar.height   *   vdec_height
case   RoundRectangle!
v_RoundRectangle   =   va_window.control[vl_object]
v_RoundRectangle.x   =   v_RoundRectangle.x   *   vdec_width
v_RoundRectangle.y   =   v_RoundRectangle.y   *   vdec_height
v_RoundRectangle.width   =   v_RoundRectangle.width   *   vdec_width
v_RoundRectangle.height   =   v_RoundRectangle.height   *   vdec_height
case   Line!
v_line   =   va_window.control[vl_object]
v_line.beginx   =   v_line.beginx   *   vdec_width
v_line.beginy   =   v_line.beginy   *   vdec_height
v_line.endx   =   v_line.endx   *   vdec_width
v_line.endy   =   v_line.endy   *   vdec_height

case   SingleLineEdit!
v_SingleLineEdit   =   va_window.control[vl_object]
v_SingleLineEdit.x   =   v_SingleLineEdit.x   *   vdec_width
v_SingleLineEdit.y   =   v_SingleLineEdit.y   *   vdec_height
v_SingleLineEdit.width   =   v_SingleLineEdit.width   *   vdec_width
v_SingleLineEdit.height   =   v_SingleLineEdit.height   *   vdec_height
v_SingleLineEdit.textsize   =   v_SingleLineEdit.textsize   *   vdec_width
case   ListBox!
v_ListBox   =   va_window.control[vl_object]
v_ListBox.x   =   v_ListBox.x   *   vdec_width
v_ListBox.y   =   v_ListBox.y   *   vdec_height
v_ListBox.width   =   v_ListBox.width   *   vdec_width
v_ListBox.height   =   v_ListBox.height   *   vdec_height
v_ListBox.textsize   =   v_ListBox.textsize   *   vdec_width
case   StaticText!
v_statictext   =   va_window.control[vl_object]
v_statictext.x   =v_statictext.x   *   vdec_width
v_statictext.y   =   v_statictext.y   *   vdec_height
v_statictext.width   =   v_statictext.width   *   vdec_width
v_statictext.height   =  ( v_statictext.height   *   vdec_height )/0.8
v_statictext.textsize   =   v_statictext.textsize   *   vdec_width
case   ListView!
v_listView   =   va_window.control[vl_object]
v_listView.x   =   v_listView.x   *   vdec_width
v_listView.y   =   v_listView.y   *   vdec_height
v_listView.width   =   v_listView.width   *   vdec_width
v_listView.height   =   v_listView.height   *   vdec_height
v_listView.textsize   =   v_listView.textsize   *   vdec_width

case   MultiLineEdit!
v_MultiLineEdit   =   va_window.control[vl_object]
v_MultiLineEdit.x   =   v_MultiLineEdit.x   *   vdec_width
v_MultiLineEdit.y   =   v_MultiLineEdit.y   *   vdec_height
v_MultiLineEdit.width   =   v_MultiLineEdit.width   *   vdec_width
v_MultiLineEdit.height   =   v_MultiLineEdit.height   *   vdec_height
v_MultiLineEdit.textsize   =   v_MultiLineEdit.textsize   *   vdec_width
case   TreeView!
v_TreeView   =   va_window.control[vl_object]
v_TreeView.x   =   v_TreeView.x   *   vdec_width
v_TreeView.y   =   v_TreeView.y   *   vdec_height
v_TreeView.width   =   v_TreeView.width   *   vdec_width
v_TreeView.height   =   v_TreeView.height   *   vdec_height
v_TreeView.textsize   =   v_TreeView.textsize   *   vdec_width
case   OLEControl!
v_OLEControl   =   va_window.control[vl_object]
v_OLEControl.x   =   v_OLEControl.x   *   vdec_width
v_OLEControl.y   =   v_OLEControl.y   *   vdec_height
v_OLEControl.width   =   v_OLEControl.width   *   vdec_width
v_OLEControl.height   =   v_OLEControl.height   *   vdec_height
case   VScrollBar!  
v_VSCrollBar   =   va_window.control[vl_object]
v_VSCrollBar.x   =   v_VSCrollBar.x   *   vdec_width
v_VSCrollBar.y   =   v_VSCrollBar.y   *   vdec_height
v_VSCrollBar.width   =   v_VSCrollBar.width   *   vdec_width
v_VSCrollBar.height   =   v_VSCrollBar.height   *   vdec_height
case   menu!

end   choose

next
//視窗居中
long   ll_ScreenH,ll_ScreenW
ll_ScreenH   =   PixelsToUnits(ve_hjbl.ScreenHeight,   YPixelsToUnits!)
ll_ScreenW   =   PixelsToUnits(ve_hjbl.ScreenWidth   ,   XPixelsToUnits!)

va_window.Y   =   (ll_ScreenH   -   va_window.Height)   /   2
va_window.X   =   (ll_ScreenW   -   va_window.Width   )   /   2