Content Supported by Sourcelens Consulting
+@VERSION = 0.029cmdColor����M�����������<&P��������u��Vi�����
commandbutton}����M��__�������M�U�貁��j�p�%P
commandbutton�uj�E�P������������2ҁ��Top = 4
Left = 255
Height = 23
Width = 25
FontBold = .T.
FontItalic = .T.
FontName = "Courier New"
FontSize = 9
Caption = "I"
ToolTipText = "Italic"
Name = "cmdItalic"
����rtfcontrols.��t@��t��������뚍M��q����$�l�%P�� cmdItalic������������td�� ����t3������j��|����
commandbutton���������%?���@PjA�R���Dž�����Mȉ
commandbuttonU��σ��j�p�%P�M��l�%P��������M��ޙ����Top = 4
Left = 227
Height = 23
Width = 25
FontBold = .T.
FontName = "Courier New"
Caption = "B"
ToolTipText = "Bold"
Name = "cmdBold"
�1�����詂�����]�}��E��p�%P�Krtfcontrols.@PjA裫���p�%P���������,����[��McmdBoldt{�M��b����to�M�U��������U��0R��<&P�=p�%
commandbuttonP������������2ҁ����у���
commandbutton��U���SV��W�ڃ��=p�%P���p,Left = 172
Top = 4
Name = "Cbofontsize1"
M��}����rtfcontrols.W���D�����t@��t��������렍M��i����$Cbofontsize1����������������������t^�
������UCCMDTHISPARENTMCIALIASDOMCI PLAYSOUNDTimer,��1�1�A1�)
Courier New, 1, 11, 9, 17, 12, 10, 5, 0
��SV3��c�����3�k�����{������tj3�j
moverlists�����
���T���
�������
���PixelsT�
��C���
�����%��
�C�
����moverbox.bmp� ������
���T���
� ������
moverbox.bmp���
� ������
���T���
� ���mover list boxes������
� �����T���
� Class�ZC�
��Z��T�
��C���
����%��
�74�
��
��
��
��
��
��5�
��
��! container�������H�L����UċM�����������������n�������
moverlists���U������������F;���o
��������|����� ��F:%x���U&G(�
����UTHISENABLEDTHISFORMREFRESHClick,��1cQ��1s)�soundplayerbg�����
-כ%��i0K��&�I��[�kQ���h�^��Z|6�kgetmcierror^
Ն(�FfU)-s�?<����͚�X����C�k��{�ѿh��rPixels�ʈ��y�E�l}d�E�}�W�����<�Ml�`�*v��I1�P��B��PROCEDURE Click
THISFORM.LockScreen = .T.
FOR i = 1 to THIS.Parent.lstSelected.ListCount
THIS.Parent.lstSource.AddItem(THIS.Parent.lstSelected.List(i))
ENDFOR
THIS.Parent.lstSelected.Clear
THISFORM.LockScreen = .F.
ENDPROC
U�Q�M��5��{�ap�Top = 102
Left = 186
Height = 25
Width = 37
FontBold = .T.
FontName = "Courier New"
FontSize = 11
Caption = "<<"
TabIndex = 6
ToolTipText = "Remove All Items"
Name = "cmdRemoveAll"
���C����ȋ�U��[��W����GD��W���"S�M��R����E�H�
moverlists.�'��h��M����臜���M��P����cmdRemoveAll���hM빹������U�I���tV�M�Wj�i�
commandbutton�M��n�����l�����P�M��&�����l�����]���
commandbutton��u��u��^����������]��S���M�������3����
moverlists.�3�_^[��]ÍU�M���M���E���t:�������M��^=� cmdRemove%������_^[��]�U3�����S�M�V�E�W�E��E�
commandbutton�M���JT��z���M���������ZT��'�M�����"Arial, 0, 10, 6, 16, 13, 14, 3, 0
NDPROC
8
* ELSE
* cbofontsize
cmdExecuteQBF�������������������������������������������qbf.����������������������������������������������������timer stopwatchdatacheckercombobox, 10, 6, 16, 13, 14, 3, 0
�n%�day, date, and time controly , cSecDisplay)
This.lblMinPixelsGFontBold = .F.
Height = 25
Style = 2
Width = 217
Name = "fontbox"
1��2_)cbofontname�UJ��C�All text������C�C���� ii�6%�
�Uw%�C����
��&�F�����������T���-��T�����a��T�����-��
����UTHISPARENT QBF_TABLEENABLED
CMDEXECUTEQBFCMDCLEARFILTERTHISFORMREFRESHClick,��1gARR�BA�1�)icontrol�E�;���M�j��q�M�U�Q�x@�ׅ���9
commandbuttonQ������������P������H�����k���8��
moverlists.xR{t
xR{�
8�{�����
8�{��$��葹��3ҋ�checker.bmpchecker.bmpmanages conflictsClass1gPROCEDURE Init
DIMENSION x[1]
=afont(x)
FOR i = 1 TO ALEN(x)
THIS.AddItem(x[i])
ENDFOR
ENDPROC
Image"
nPos = O��� 66�\%����UW��C�����%�����*.*��P�T���������
������UTHISFORMOLECOMMDLOGSHOWSAVEFILENAMETXTFILENAMEVALUESETFOCUSClick,��1���A1�)6qbf����������������������������������������������������� container�����������������������������������������������timertimer cmdAddAll��\�9���P������%����^�A�V3ҋ�
8�{�comboboxvcx��T������UTHISADDITEM LIST1ombobox1��2_)Classntsunt
WITH THISFORM.Controls[m.i].pages[m."Arial, 1, 10, 6, 16, 13, 15, 3, 0
clockPixels!F:\VFP\SAMPLES\CONTROLS\clock.bmp!F:\VFP\SAMPLES\CONTROLS\clock.bmp���� ����%Pe_�U
����UTHISFORMRELEASEClick,��1�1!)�~PROCEDURE Click
*!* Clear the filter that was set
SET FILTER TO
GO TOP
THIS.enabled = .F.
THISFORM.Refresh
ENDPROC
�����������������������������������������������������������Width = 201
Height = 133
mcierror = 0
mcierrorstring =
videofile =
autoopen = .T.
mcialias =
autoplay = .T.
autorepeat = .T.
controlsource =
Name = "videoframe"
�E��7
commandbutton�����2ۡX�{��J�M������V���t�F ��j3ҋ�
commandbutton�QA���}>���X�{��J�����
X�{��B���
moverlists.��.������}���������y}���������m}���&���Class4RTop = 0
Left = 66
Height = 25
Width = 25
Interval = 1000
Name = "tmrSWatch"
���� ���e%Ynh�U
�����UTHISPARENT INCREMENTTimer,��1�1&)�Pixelsting"
7displays the font sizes available for a particular font
Classbox= "Editing"
Height = 32
Left = 0
Top = 0
Widtimer containerX��� ??jC%����U1&%�C�_SCREEN.ActiveFormb�O��5�T���9����A�B��
H�R�*���������T�����������������-��C�
FontUnderline���TEXTBOX����-��C�
FontUnderline���EDITBOX�����������*�#��C�
FontUnderline�������U OFORM
ACTIVEFORMTHISPARENT
NAPPLIESTO
ACTIVECONTROL
FONTUNDERLINEVALUESETALLInteractiveChange,��1a��AA�qar��r1A2)?��� ��%����UQ
�������C���(�������(�C�����J���CC��������UXITHISADDITEMInit,��1���QA1\)�tmrCheckModeNUHAAAAA��w��������������&��
videoframe.��Solution�0�
��d�
videoframea LOADfACTIVATEfGOTFOCUSfDBcmdAdd���$������}����P�{_^�VW�_������������
commandbuttonH�B����H������H�������N�����1ontbox��P���Y�� ��h�t� ���%���7comboboxSource.FontUnderline
ENDCASE
ENDPROCcbofontsize1���QA1\comboboxE Destroy
This.Visible = .F.
ENDPROC
PROCED<��� ##h(%����U_(T���STATUS ���� MODE��#%�C�����stopped��X�
������UCCMDTHISPARENTMCIALIASDOMCI PLAYVIDEOTimer,��1�1�A1�)#Class���F�E�H���D������L$��DQ���2���E�͋p�x �����ȅ��VK���Ù�����ƃ��t$<��2�Fcontrol^��Ã�(���D$SVWU����ڋE�H�T$(�,/soundplayer�t������T��맃���T$V�p �H��2��H蕛�DTop = 0
Left = 36
Height = 23
Width = 23
Name = "tmrCheckMode"
Ӌ��C�9XDˍT$�����p��T$����ű�FTop = 96
Left = 120
Height = 23
Width = 23
Name = "tmrCheckMode"
� tastrcontrolfKEYPRESSfINITfSOLUTIONVLADDKcustomdatachecker/Height = 15
Width = 23
Name = "datachecker"
customPixelsting.gh all the controls on the page
FOR m.k cbofontname
Left = 125
ToolTipText = "FontName"
Top ="Arial, 0, 10, 6, 16, 13, 14, 3, 0
CASE cTask = 'INJArial, 0, 9, 5, 15, 12, 13, 3, 0
MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
����Textbox Editbox��g�T�� �
print_report
Left = 186
Height = 25
Width = 37
FontBold = .T.
FontName = "Courier New"
FontSize = 11
Caption = "<"
TabIndex = 5
ToolTipText = "Remove Selected Items"
Name = "cmdRemove"
�!���M���J���������M�����U܍�8����`����}�u�M stopwatch CASE
CASE lcType $ "CM"
lcValue = CHR(34)nsec
nmin
nhour
ield, lcValue
LOCAL lcType
lcType =TPROCEDURE Click
THISFORM.LockScreen = .T.
nCnt = 1
DO WHILE nCnt <= THIS.Parent.lstSelected.ListCount
IF THIS.Parent.lstSelected.Selected(nCnt)
THIS.Parent.lstSource.AddItem(THIS.Parent.lstSelected.List(nCnt))
THIS.Parent.lstSelected.RemoveItem(nCnt)
ELSE
nCnt = nCnt + 1
ENDIF
ENDDO
THISFORM.LockScreen = .F.
ENDPROC
3ҋM������E���$��t��O�������� ���%^vp�UT���C�����UTHIS
TIMEFORMATDblClick,��1�2@)�4�������������������������������������������������������2ITfINTERACTIVECHANGEfSOLUTIONVLMSELKDClassMNWIDTHSfINTERACTIVECHANGEfSOLUTIONVLMULCO�PROCEDURE Click
THISFORM.LockScreen = .T.
FOR i = 1 to THIS.Parent.lstSource.ListCount
THIS.Parent.lstSelected.AddItem(THIS.Parent.lstSource.List(i))
ENDFOR
THIS.Parent.lstSource.Clear
THISFORM.LockScreen = .F.
ENDPROC
������u
���Hd����Top = 33
Left = 186
Height = 25
Width = 37
FontBold = .T.
FontName = "Courier New"
FontSize = 11
Caption = ">>"
TabIndex = 4
ToolTipText = "Add All Items"
Name = "cmdAddAll"
tպ�
8�{��=�����!����U���VW������p����M��M�Q���� oo�_%&�UwT���a�� �����(�������R�$��CC����� �������������
�T���-��UTHISFORM
LOCKSCREENITHISPARENTLSTSELECTED LISTCOUNT LSTSOURCEADDITEMLISTCLEARClick,��1�AA�1�)oPixelsINITfCLICKfSOLUTIONVLSORTK%�PROCEDURE Click
THISFORM.LockScreen = .T.
* The ListCount value changes whenever the RemoveItem method is called
nCnt = 1
DO WHILE nCnt <= THIS.Parent.lstSource.ListCount
IF THIS.Parent.lstSource.Selected(nCnt)
THIS.Parent.lstSelected.AddItem(THIS.Parent.lstSource.List(nCnt))
THIS.Parent.lstSource.RemoveItem(nCnt)
ELSE
nCnt = nCnt + 1
ENDIF
ENDDO
THISFORM.LockScreen = .F.
ENDPROC
������j������j�M�j����U��Top = 2
Left = 186
Height = 25
Width = 37
FontBold = .T.
FontName = "Courier New"
FontSize = 11
Caption = ">"
TabIndex = 3
ToolTipText = "Add Selected Items"
Name = "cmdAdd"
� ��\��t���t3���Ày�u�D$�P��p��A���D
commandbutton��X��t
�'������X��H�4�������
moverlists.E��P�{;E�~떋M����7������},����DlstSelected��t:��t5��8t0�@���?�����t���(���M��0listbox�=���uҋ���}3���E��=P�{~t�M��0�{�listbox��=����6=`�������u
�U�M������
moverlists.ame specified or control source specified!")
9 selected items to the Clipformem to the Clipboard.VCopieprint_reportselected items and cop,OLEObject = C:\WINDOWS\SYSTEM\COMDLG32.OCX
<ReGTop = 88
Left = 278
Height = 100
Width = 100
Name = "oleCommDlog"
criptionWindows Explorprint_report.n040904E4LCompaoleCommDlog�?�Str
olecontrolse44VS_VERSION_INFO
olecontrolwn...�print_report.�&Find������PROCEDURE Timer
cCmd = ("STATUS " + THIS.PARENT.MCIalias + " MODE")
IF THIS.PARENT.doMCI(cCmd) = "stopped" THEN
THIS.PARENT.playVideo
ENDIF
ENDPROC
KUHAAAAANUHAAAAA��getmcierror^
CRESIZEK9CLICKfINTERACsoundplayer.HD9H@���xH��������T$�H ���
videoframeTIONVOBJECTSKQREFRESHTEXTftmrCheckMode�@�t 3ҋ��"�������@�t�O9� lstSource THIS.videoFile
IF EMPTY(cFileName) THEN
Mlistbox = THIS.controlSource
IF EMPTY(cControlSource) T stopwatch.�AutoSize = .F.
Top = 71
Left = 4
Height = 23
Width = 72
FontBold = .F.
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Clear Filter"
Enabled = .F.
TabIndex = 25
Name = "cmdClearFilter"
����������������������������������������������Class���������������������������������������������������Pixels�������������������������������������������������� cmdSaveAs&Options...��&To
commandbutton��e�&RefresclockNTop = 3
Left = 8
Height = 12
Width = 14
Interval = 1000
Name = "Timer1"
clock.�*handlerecord compares the current value, old value, and original value of each field, displaying a messagebox if a change or conflict is detected.
*string returns type 'c' equivalent of passed value
*verifychanges Prompts a user to save all changes made to a table or record.
*verifyeachchange Prompts a user to confirm each change he or she made.
*checkconflicts Notifies a user if someone else has changed the data in the table after he or she began editing a record.
PixelsM.cmdExecute.Enabled = .T.
ENDPROC
PROCEDURE v watch.bmpSQL.Value = lcSQL
THISFORM.cmdClear.Enabled watch.bmpSQL = "SELECT * FROM " + lcAlias + " " + lcWHER.stop watch with start, stop, and reset methodsbase tableClass1 + " " + lcRelation1 + " ";
+ lcValue1 + " " + 7 the first part of the WHERE condition
lcWHERE = "WHER container + ;
lcRelation2 + " " + lcValue2
ENDIF
stopwatchd2.Value,lcValue2)
lcWHERE = lcOperand + " "�AutoSize = .T.
FontBold = .T.
FontName = "Arial"
FontSize = 13
BackStyle = 0
Caption = "00"
Height = 22
Left = 68
Top = 5
Width = 20
Name = "lblSeconds"
= THISFORM.Validate stopwatch.put the proper delimiters around comparison va
lblSeconds�label COMMENT RESERVED label(:I�AutoSize = .T.
FontBold = .T.
FontName = "Arial"
FontSize = 13
BackStyle = 0
Caption = "00"
Height = 22
Left = 37
Top = 5
Width = 20
Name = "lblMinutes"
_RAA0N09Z2 54796852 stopwatch. _RAA0MM0SN 547968029�����
lblMinuteslistboxideo
*!* Get needed properties into variables
RTop = 0
Left = 66
Height = 25
Width = 25
Interval = 1000
Name = "tmrSWatch"
tmrSWatchlabel WINDOWS _RAA0MM0S8 547968029label�������AutoSize = .T.
FontBold = .T.
FontName = "Arial"
FontSize = 13
BackStyle = 0
Caption = "00"
Height = 22
Left = 6
Top = 5
Width = 20
Name = "lblhours"
WINDOWS _R9818X stopwatch. WINDOWS _R9818X1QY 547968029-
=
W
llblhours_o~ Q label WINDOWS _QU00R9JY0 547labelVU 5479680291ET���FontBold = .T.
FontName = "Arial"
FontSize = 13
Alignment = 0
BackStyle = 0
Caption = ":"
Height = 19
Left = 58
Top = 4
Width = 11
Name = "lblSeparator2"
WIN stopwatch. WINDOWS _QU00R9JSB 547968526�
lblSeparator2/F\ container container�PROCEDURE Timer
THIS.Parent.nSec = THIS.Parent.nSec + 1
IF THIS.Parent.nSec = 60
THIS.Parent.nSec = 0
THIS.Parent.nMin = THIS.Parent.nMin + 1
ENDIF
IF THIS.Parent.nMin = 60
THIS.Parent.nMin = 0
THIS.Parent.nHour = THIS.Parent.nHour + 1
ENDIF
THIS.Parent.UpdateDisplay
THIS.Parent.ElapsedSeconds = (THIS.Parent.nHour * 3600) + ;
(THIS.Parent.nMin * 60) + ;
(This.Parent.nSec)
ENDPROC
tmrSWatchsamples.vcx��1������l��������}��E��p�%P���Mcbofontsize��$��p�%P��j�U�R�E��
p�%P���DHeight = 25
Left = 4
Top = 4
Width = 157
Name = "Cbofontname1"
�������&P�U�P��PjA�����j�E�P�
W���_��rtfcontrols.���_^[��]ù�t�����Ƀ����a������Cbofontname1M�Q�U�j3��E�jARP�A�w��2ɋE���@r�@combobox���M�趄��PV��<&P���t���u^�p�%P���PROCEDURE Timer
#DEFINE LONGDATE_LOC CDOW(DATE())+" "+CMONTH(DATE())+" "+ ;
ALLTRIM(STR(DAY(DATE())))+", "+ALLTRIM(STR(YEAR(DATE())))
IF This.Parent.TimeFormat = 0
This.Parent.txtTime.Value = IIF(VAL(SUBSTR(TIME(),1,2))>12, ;
ALLTRIM(STR((VAL(SUBSTR(TIME(),1,2))-12)))+SUBSTR(TIME(),3,6),TIME())
ELSE
This.Parent.txtTime.Value = TIME()
ENDIF
THIS.Parent.txtDate.Value = LONGDATE_LOC
ENDPROC
Timer1timertimer.FontBold = .F.
FontName = "MS Sans Serif"
FontSize = 8
ColumnCount = 0
ColumnWidths = ""
RowSourceType = 0
RowSource = ""
ControlSource = ""
DragIcon = grid\
DragMode = 0
Height = 132
Left = 0
MultiSelect = .T.
NumberOfElements = 0
TabIndex = 1
Top = 0
Width = 169
Name = "lstSource"
ATUS " + ctimerTAlignment = 2
BackStyle = 0
BorderStyle = 0
Value = (IIF(THIS.PARENT.TimeFormat = 0, IIF(VAL(SUBSTR(time(),1,2))>12, ALLT(STR((VAL(SUBSTR(time(),1,2))-12)))+SUBSTR(time(),3,6), time()),time()))
Enabled = .F.
Height = 21
Left = 184
Top = 5
Width = 57
DisabledForeColor = 0,0,0
DisabledBackColor = 255,255,255
Name = "txtTime"
clock.txtTimetextboxtextboxclock. stopwatch.5Alignment = 2
BackColor = 255,255,0
BackStyle = 0
BorderStyle = 0
Value = (CDOW(date())+" "+CMONTH(date())+" "+ ALLT(STR(DAY(date())))+", "+ALLT(STR(YEAR(date()))))
Enabled = .F.
Height = 21
Left = 3
Top = 5
Width = 179
DisabledForeColor = 0,0,0
DisabledBackColor = 255,255,255
Name = "txtDate"
txtDatetextboxtextboxtimeformat
label WINDOWS _RlabelENT Screen stopwatch.
lblSeparator1USERMiKPROCEDURE DblClick
THIS.TimeFormat = ABS(THIS.TimeFormat - 1)
ENDPROC
ZWidth = 251
Height = 28
BackStyle = 0
BorderWidth = 0
timeformat = 0
Name = "clock"
container�PROCEDURE Click
* Display file dialog
thisform.oleCommDlog.ShowSave()
IF thisform.oleCommDlog.FileName <> "*.*"
THISFORM.txtFileName.Value = thisform.oleCommDlog.FileName
THISFORM.txtFileName.SetFocus
ENDIF
ENDPROC
�(Em�Top = 83
Left = 228
Height = 19
Width = 19
FontBold = .F.
FontName = "MS Sans Serif"
FontSize = 8
Caption = "..."
Enabled = .F.
Name = "cmdSaveAs"
���&Go to...
commandbutton�&Toolbarc�Sta,PROCEDURE Click
THISFORM.Release
ENDPROC
LTERSHOWSAprint_report.�GL%/�Width = 409
Height = 132
BackStyle = 0
BorderWidth = 0
mousex = 0
mousey = 0
candropicon = DRAGMOVE.CUR
nodropicon = NODROP01.CUR
dragthreshold = 8
Name = "moverlists"
��7 container�E�;���M�j��q�M�U�Q�x@�ׅ���9 cmdCancelFORM.txtFileName.SetFocus
ENDIF
ENDPROC
���� container container stopwatch`Width = 94
Height = 25
nsec = 0
nmin = 0
nhour = 0
elapsedseconds = 0
Name = "stopwatch"
�PROCEDURE start
This.tmrSWatch.enabled = .t.
ENDPROC
PROCEDURE stop
This.tmrSWatch.enabled = .f.
ENDPROC
PROCEDURE Reset
This.nSec = 0
This.nMin = 0
This.nHour = 0
This.UpdateDisplay
ENDPROC
PROCEDURE updatedisplay
cSecDisplay = ALLTRIM(STR(This.nSec))
cMinDisplay = ALLTRIM(STR(This.nMin))
cHourDisplay = ALLTRIM(STR(This.nHour))
This.lblSeconds.Caption = IIF(This.nSec < 10, "0" + cSecDisplay , cSecDisplay)
This.lblMinutes.Caption = IIF(This.nMin < 10, "0" + cMinDisplay , cMinDisplay)
This.lblHours.Caption = IIF(This.nHour < 10, "0" + cHourDisplay , cHourDisplay)
ENDPROC
PROCEDURE Init
nMin = 0
nSec = 0
nHour = 0
ENDPROC
timer�nsec
nmin
nhour
elapsedseconds The time displayed in the stopwatch in elapsed seconds.
*start
*stop
*Reset ,Property Description will appear here.
*updatedisplay
`Width = 94
Height = 25
nsec = 0
nmin = 0
nhour = 0
elapsedseconds = 0
Name = "stopwatch"
�PROCEDURE selectall
LPARAMETERS oList
LOCAL lnCnt
FOR lnCnt = 1 to oList.ListCount
oList.Selected(lnCnt) = .T.
ENDFOR
ENDPROC
PROCEDURE Init
This.lstSource.DragIcon = This.CanDropIcon
This.lstSelected.DragIcon = This.CanDropIcon
ENDPROC
is returned.
cRetString = space(80)
nRetValue = mciSendStr
commandbuttonORM.txtFileName.Value = thisform.oleCommDlo�nsec
nmin
nhour
elapsedseconds The time displayed in the stopwatch in elapsed seconds.
*start
*stop
*Reset ,Property Description will appear here.
*updatedisplay
�nsmallestfont for scalable fonts, smallest allowable fontsize
nlargestfont for scalable fonts, specifies the largest allowable fontsize
*filllist
�������UXITHIS�FontBold = .F.
Height = 25
Style = 2
ToolTipText = "FontSize"
Width = 44
nsmallestfont = 6
nlargestfont = 24
Name = "cbofontsize"
orm.ControlCount
IF oForm.Controls(i).Base
commandbutton.ShowSave()
IF thisform.oleCommDlog.File�PROCEDURE Timer
THIS.Parent.nSec = THIS.Parent.nSec + 1
IF THIS.Parent.nSec = 60
THIS.Parent.nSec = 0
THIS.Parent.nMin = THIS.Parent.nMin + 1
ENDIF
IF THIS.Parent.nMin = 60
THIS.Parent.nMin = 0
THIS.Parent.nHour = THIS.Parent.nHour + 1
ENDIF
THIS.Parent.UpdateDisplay
THIS.Parent.ElapsedSeconds = (THIS.Parent.nHour * 3600) + ;
(THIS.Parent.nMin * 60) + ;
(This.Parent.nSec)
ENDPROC
�PROCEDURE start
This.tmrSWatch.enabled = .t.
ENDPROC
PROCEDURE stop
This.tmrSWatch.enabled = .f.
ENDPROC
PROCEDURE Reset
This.nSec = 0
This.nMin = 0
This.nHour = 0
This.UpdateDisplay
ENDPROC
PROCEDURE updatedisplay
cSecDisplay = ALLTRIM(STR(This.nSec))
cMinDisplay = ALLTRIM(STR(This.nMin))
cHourDisplay = ALLTRIM(STR(This.nHour))
This.lblSeconds.Caption = IIF(This.nSec < 10, "0" + cSecDisplay , cSecDisplay)
This.lblMinutes.Caption = IIF(This.nMin < 10, "0" + cMinDisplay , cMinDisplay)
This.lblHours.Caption = IIF(This.nHour < 10, "0" + cHourDisplay , cHourDisplay)
ENDPROC
PROCEDURE Init
nMin = 0
nSec = 0
nHour = 0
ENDPROC
�PROCEDURE Click
*!* In order to clear out all the controls with a controlSource,
*!* we need to start a transaction and append a record (then when
*!* we are done we'll rollback the transaction so the new record
*!* doesn't get added to the table
IF !EMPTY(THIS.Parent.QBF_table) THEN
SELECT (THIS.Parent.QBF_table)
ENDIF
BEGIN TRANSACTION
APPEND BLANK
THIS.Enabled = .F.
THIS.Parent.cmdExecuteQBF.Enabled = .T.
THIS.Parent.cmdClearFilter.enabled = .F.
THISFORM.Refresh
ENDPROC
������������������������������������������������������������
commandbutton�������������������������������������������timer��BD�;��T$L�L$������|$\�L$<��W�_��G�Qsamples.vcx������������������cbofontname�u�G�|���U� ���H�S�V�p�%PW��y��,�<
��ࡱ�>�� ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Root Entry����������y��^��OleObjectData����eAccessObjSiteData&������������\ChangedProps������������M���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<�����+/I�OO*.txtText (*.txt)|*.t\$828C4C820-401A-101B-A3C9-08002B2F49FB� FileNameH*.txtFilterHText xtA(*.txt)|*.txt��ays the properties of thqbf�����������������������������������������������������)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
���������������1 combobox �PROCEDURE filllist
LPARAMETERS cFontName
THIS.Clear
DIMENSION aSizes[1]
=AFONT(aSizes, cFontname)
IF aSizes[1] = -1 && The font is scalable
lScalable = .T.
nLen = THIS.nLargestFont
nStart = THIS.nSmallestFont
ELSE
nLen = ALEN(aSizes)
nStart = 1
lScalable = .F.
ENDIF
IF lScalable
FOR i = nStart TO nLen
THIS.AddItem(ALLTRIM(STR(i)))
ENDFOR
ELSE
FOR i = nStart TO nLen
THIS.AddItem(ALLTRIM(STR(aSizes[i])))
ENDFOR
ENDIF
ENDPROC
ize
THIS.chkBold.Value = oS�Top = 42
Left = 261
Height = 23
Width = 72
FontBold = .F.
FontName = "MS Sans Serif"
FontSize = 8
Cancel = .T.
Caption = "Cancel"
Name = "cmdCancel"
����
������Top = 14
Left = 261
Height = 23
Width = 72
FontBold = .F.
FontName = "MS Sans Serif"
FontSize = 8
Caption = "OK"
Default = .T.
Name = "cmdOK"
PGREPORTOUTPUTVALUERELEASE���� ���3%�~8�U�&%�C�_SCREEN.ActiveFormb�O��E�T���9���T�������Q�B��
H�b�t�������z�B���������
T��C���%���������
H�����������N�&%�C�oControl.ForeColorb�N���T�� �����J�*%�C�oControl.ItemForeColorb�N��F�T��
��������������'��C� ForeColor��TEXTBOX����'��C� ForeColor��EDITBOX��������������C� ForeColor�������������t�
T��C���%�������p�
H�)�l���������1%�C�oForm.ActiveControl.BackColorb�N����T���
�������5%�C�!oForm.ActiveControl.ItemBackColorb�N����T���������������;�'��C� BackColor��TEXTBOX����'��C� BackColor��EDITBOX����������l���C� BackColor��������T������UOFORM
ACTIVEFORMOCONTROL
ACTIVECONTROLTHISVALUE
NFORECOLORTHISFORM
NAPPLIESTO FORECOLOR
ITEMFORECOLORSETALL
NBACKCOLOR BACKCOLOR
ITEMBACKCOLORi��C�Colors���� ��C�Set ForeColor...���� ��C�Set BackColor...����T������UTHISADDITEM LISTINDEXInteractiveChange,��Init^��1a��AA�AAA�!�Aa��AAAqqB�AAB�!�A1�Q1AAAqqB�AAA4a2�3�9)����� oo�_%&�UwT���a�� �����(�������R�$��CC����� �������������
�T���-��UTHISFORM
LOCKSCREENITHISPARENT LSTSOURCE LISTCOUNTLSTSELECTEDADDITEMLISTCLEARClick,��1�AA�1�)oprint_report.���?����(!9��������cmdOK���������
����?�����9���
commandbuttone specified in the cReport property of this
commandbutton�Ui
H�
�b��C�����k�L�AutoSize = .T.
FontBold = .F.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
Caption = "File Name:"
Height = 15
Left = 37
Top = 85
Width = 52
Name = "Label2"
��AutoSize = .T.
FontBold = .T.
FontName = "Arial"
FontSize = 13
BackStyle = 0
Caption = ":"
Height = 22
Left = 26
Top = 4
Width = 8
Name = "lblSeparator1"
L��� 33��%����U(&%�C�_SCREEN.ActiveFormb�O��5�T���9����A�B��
H�R�!���������T�����������������*��C�
FontItalic���TEXTBOX����*��C�
FontItalic���EDITBOX�����������!� ��C�
FontItalic�������U OFORM
ACTIVEFORMTHISPARENT
NAPPLIESTO
ACTIVECONTROL
FONTITALICVALUESETALLInteractiveChange,��1a��AA�qar��rB2)3D��� ++g$%����U"&%�C�_SCREEN.ActiveFormb�O��5�T���9����A�B��
H�R����������T�����������������(��C�FontBold���TEXTBOX����(��C�FontBold���EDITBOX��������������C�FontBold�������U OFORM
ACTIVEFORMTHISPARENT
NAPPLIESTO
ACTIVECONTROLFONTBOLDVALUESETALLInteractiveChange,��1a��AA�qar��r�A2�)+distinct_values_combo FPROCEDURE Click
#DEFINE NO_REPORT_LOC "The report to print must either be specified in the cReport property of the form or passed in as a parameter."
#DEFINE NO_FILENAME_LOC "You must enter a file name."
DO CASE
CASE EMPTY(THISFORM.cReport)
=MESSAGEBOX(NO_REPORT_LOC)
CASE THISFORM.opgReportOutput.value = 1
THISFORM.Release
REPORT FORM (THISFORM.cReport) PREVIEW NOCONSOLE
CASE THISFORM.opgReportOutput.value = 2
THISFORM.Release
REPORT FORM (THISFORM.cReport) TO PRINTER NOCONSOLE
CASE THISFORM.opgReportOutput.value = 3
IF EMPTY(THISFORM.txtFileName.value) THEN
=MESSAGEBOX(NO_FILENAME_LOC)
THISFORM.txtFileName.SetFocus
ELSE
THISFORM.Release
REPORT FORM (THISFORM.cReport) ;
TO FILE (THISFORM.txtFileName.value) ;
ASCII NOCONSOLE
ENDIF
ENDCASE
ENDPROC
��1�1!)�print_report.elease
REPORT FORM (THISFORM.cReport) ;Label2_FILENAME_LOC)
THISFORM.txtFileName.SetFocus
label3
IF EMPTY(THISFORM.txtFileName.value) THEN
labelO PRINTER NOCONSOLE
CASE THISFORM.opgReportOutimer��D$�P������^��Å�t��@ �V�Ã�H�T$control&�V˒�n�;���鮔kFq�H����=iV��
�hC�]�ia�0Width = 311
Height = 32
Name = "rtfcontrols"
럿�FontBold = .F.
FontName = "MS Sans Serif"
FontSize = 8
Enabled = .F.
Height = 23
Left = 95
Top = 81
Width = 128
Name = "txtFileName"
THISFORM.Release
REPORT FORM (THISFOprint_report. =MESSAGEBOX(NO_REPORT_LOC)
CASE THItxtFileNamet enter a file name."
DO CASE
CASE EMPTY
tbrediting�������(�C�������=%�C�thisfPixels��%��!�labelRESERVED7MalabelRESERVED5MY1PROCEDURE Timer
THIS.Parent.Increment
ENDPROC
RTop = 2
Left = 52
Height = 25
Width = 25
Interval = 1000
Name = "tmrSWatch"
OBJNAMEM)��� ���%����
�U���T��C�PX��T��C��C�>����T��C�����%�����c� B�����B�CC�C� ��`��UCMCICMD
CRETSTRING NRETVALUE
MCISENDSTRINGCERRTHISGETMCIERROR��������
T�����%�C�cErrorb�C��n�%�C��=�*ERROR*��j�T��CC��\g����%�C�cErrorb�N����
T������T��C�X����C��C�>���T������T������B�CC�C� ��`��UCERROR
LCERRORSTRINGNERRORCERRORSTRINGMCIGETERRORSTRINGTHISMCIERRORMCIERRORSTRING!��CC��Z�: ���x��UTHISMCIERRORMCIERRORSTRINGg4��T������(%�C�f�START�
C�f�END��S�T���to ������T��C�g��%�C����}�B����,T��CC�STATUS �� length��g��%���
����B����T���to C�Z�����
%�C������B���T������%�C������T������T�������T�9�����
�������C���x��T�9�����B��5��C�SET �� time format milliseconds�� ��%���a��L�
���
��T�9�����UTHIS
CONTROLSOURCE CFILENAME SOUNDFILECALIASMCIALIASNAMEMOUSEPOINTERCCMDDOMCIMCIERRORMCIERRORSTRINGAUTOPLAY PLAYSOUND�T������3%�C�STATUS �� mode���playing������C�PAUSE �����%������{�
�����%���a����T���������U CALIASTHISMCIALIASDOMCIMCIERRORSHOWMCIERROR
AUTOREPEATTMRCHECKMODEINTERVALT������,T��CC�STATUS �� length��g��.T��CC�STATUS �� position��g��%�������+��C�SEEK �� to start WAIT�������C�PLAY �����%��������
�����%���a���T�� �
��,���UCALIASTHISMCIALIASNMEDIALENGTHDOMCINMEDIAPOSITIONMCIERRORSHOWMCIERROR
AUTOREPEATTMRCHECKMODEINTERVAL�&T���STATUS ��� READY��%�C����true����$T���CLOSE ��� WAIT����C�����%��������
�����%���a����T���������U CCMDTHISMCIALIASDOMCIMCIERRORSHOWMCIERROR
AUTOREPEATTMRCHECKMODEINTERVAL
����UTHIS
CLOSESOUND�*|��
mciSendString� WinMM.DLL�����,|��mciGetErrorString� WINMM.DLL����+|��SetWindowPos�User32��������U
MCISENDSTRINGWINMMDLLMCIGETERRORSTRINGSETWINDOWPOSUSER32
�����UTHISAUTOOPEN OPENSOUND�����������
H�+���%������ opensound ��|�,��C� Invalid controlSource specified.�x��2���
������UNERRORCMETHODNLINEdomci,��getmcierror���showmcierrorW��setposition��� opensoundY��
pausesoundL�� playsoundZ��
closesound� ��Destroy��Init3��Refresh���ErrorA��1q��R�AR3q����AAA��AqR3�3q�A���A��A�aAAA3��A2
m��1�x54�SX9�
�c�
[�q|��}�0��5l�����)�Class textboxhe cReport property of this form."
#DEFINE NO_FItextboxRE Click
#DEFINE NO_REPORT_LOC "A report must be�AutoSize = .T.
FontBold = .F.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 1
Caption = " Report Output "
Height = 15
Left = 20
Top = 7
Width = 75
Name = "lblReportOutput"
ult = .T.
Name = "cmdOK"
��������������������������������print_report.�������������������������������������������lblReportOutput�����������������������������������������labelndbutton�������������������������������������������label37
Top = 85
Width = 52
Name = "Label2"
��������ClassINDOW (thisform.name)
ENDPROC
D���+ stopwatch.TIMESTAMPN
tmrSWatchPLATFORMCtimer���������������������������������������������������timer����������������������������������������������������nsec
nmin
nhour
elapsedseconds The time displayed in the stopwatch in elapsed seconds.
*start
*stop
*reset ,Property Description will appear here.
*updatedisplay
*increment increment the stopwatch display
������������������������������� containerF�-thHtY�F��~�u�~u
�0<�lt����F�"Arial, 1, 10, 6, 16, 13, 14, 3, 0
frmnotitlePixelsClass1form
frmnotitle�Top = 0
Left = 0
Height = 150
Width = 300
DoCreate = .T.
BorderStyle = 1
Caption = ""
Closable = .F.
ControlBox = .F.
MaxButton = .F.
MinButton = .F.
Movable = .F.
AlwaysOnTop = .T.
ZoomBox = .F.
Name = "frmnotitle"
form resizableminitialresize
initialformheight
initialformwidth
addtoarray
setsize
loopthroughcontrols
acontrolstats
PixelsClass1custom resizable$initialresize Is this the first time the controls are being adjusted?
initialformheight
initialformwidth
*adjustcontrols call from resize event of a form to adjust the placement and size of contained objects.
*addtoarray
*setsize
*loopthroughcontrols
*reset
^acontrolstats[1,5]
oHeight = 19
Width = 27
initialresize = .T.
initialformheight = 0
initialformwidth = 0
Name = "resizable"
���������custom������������������������������������������������������ {{=�%�"$��U*&%�C�_SCREEN.ActiveFormb�O��5�T���9����A�B��
H�R�
ACTIVEFORMTHISPARENT
NAPPLIESTO
ACTIVECONTROLFONTSIZEVALUESETALL������
H�������Y����BR,������2The control doesn't support the selected fontsize.��8%�C�$Application.ActiveForm.ActiveControlb�O������C���������2���fT� ��Error Number: CC�Z�C�
C�
�Error Message: CEC�
C�
�Procedure: C�t��T�
�C� �2�x��
H�T�����
���i����
���~�X�2���B���UNERRORCMETHODNLINETHISPARENTREFRESHAPPLICATION
ACTIVEFORM
ACTIVECONTROLLCMSGLNANSWERInteractiveChange,��Error���1a��AA�q�r��rB3��!!��A�fA�AA�AAA2
)){dFontName = "MS Sans Serif"
FontSize = 8
Height = 23
Width = 106
Name = "distinct_values_combo"
File Name:"
Height �PROCEDURE Timer
cCmd = ("STATUS " + THIS.PARENT.MCIalias + " MODE")
IF THIS.PARENT.doMCI(cCmd) = "stopped" THEN
THIS.PARENT.playSound
ENDIF
ENDPROC
�^�U���SVW���tn��A�10ENDCASE
ACTIVATE WINDOW (thisform.oWindows[m.nGetWitoolbar
thisform.oWindows[m.nGetWin].backcolor = RGB(25UFontBold = .F.
FontName = "MS Sans Serif"
FontSize = 8
ColumnCount = 0
ColumnWidths = ""
RowSourceType = 0
RowSource = ""
ControlSource = ""
DragIcon = grid\
DragMode = 0
FirstElement = 1
Height = 132
Left = 240
MoverBars = .T.
MultiSelect = .T.
NumberOfElements = 0
TabIndex = 2
Top = 0
Width = 169
Name = "lstSelected"
�M��W&������j3�j�����蚉�����rtfcontrols.�������0��H�1�Ӆ�uҍ�x��������4���%?�� container���@�
��������t~���t}���t||Top = 4
Left = 283
Height = 23
Width = 25
Caption = "C"
ToolTipText = "Color"
ForeColor = 255,0,0
Name = "cmdColor"
���8���됍M��
����$�l�%P���p�%P������M�裖�������rtfcontrols�M��u�u�u�)����_^[��]���&P�V�N�PROCEDURE Refresh
LPARAMETERS oSource
DO CASE
CASE THIS.nAppliesTo = 2 && text and edit boxes
IF TYPE("_SCREEN.ActiveForm") = 'O'
oForm = _SCREEN.ActiveForm
ELSE
RETURN
ENDIF
FOR i = 1 to oForm.ControlCount
IF oForm.Controls(i).BaseClass$"Textbox Editbox"
THIS.cboFonts.Value = oForm.Controls(i).FontName
THIS.cboSizes.FillList(THIS.cboFonts.Value)
THIS.cboSizes.Value = STR(oForm.Controls(i).FontSize)
THIS.chkBold.Value = oForm.Controls(i).FontBold
THIS.chkItalic.Value = oForm.Controls(i).FontItalic
THIS.chkUnderline.Value = oForm.Controls(i).FontUnderline
EXIT
ENDIF
ENDFOR
OTHERWISE
IF TYPE("oSource") != 'O'
RETURN
ENDIF
THIS.cboFonts.Value = oSource.FontName
THIS.cboSizes.FillList(THIS.cboFonts.Value)
THIS.cboSizes.Value = STR(oSource.FontSize)
THIS.chkBold.Value = oSource.FontBold
THIS.chkItalic.Value = oSource.FontItalic
THIS.chkUnderline.Value = oSource.FontUnderline
ENDCASE
ENDPROC
PROCEDURE Destroy
This.Visible = .F.
ENDPROC
�����\�|����������.T�������� ��t�%A�\�U�����T%�C�_SCREEN.ActiveFormb�O�+C� _SCREEN.ActiveForm.ActiveControlb�O ��~�T���9���T���������B��
H���a����������T��������������,�(��C�FontName���TEXTBOX�� ��(��C�FontName���EDITBOX�� ���������a���C�FontName���� �����C�����
�����C������U
OFORMOCONTROL
ACTIVEFORM
ACTIVECONTROLTHISPARENT
NAPPLIESTOFONTNAMEVALUESETALLCBOSIZESFILLLISTREFRESHInteractiveChange,��1�A��AA�q1r���q�B�A3-)�*��� M�%R�"t�U*���
H��
�C��������C�� �
���
�� T���
�CC����Z��T���
�C������T���
�C������T���
�C������!����2�
�������C�� �
���
��T���
�C��Z��T���
�����T���
�����T���
������UOSOURCETHIS
NAPPLIESTOOFORM
ACTIVEFORMICONTROLCOUNTCONTROLS BASECLASSCBOFONTSVALUEFONTNAMECBOSIZESFILLLISTFONTSIZECHKBOLDFONTBOLD CHKITALIC
FONTITALICCHKUNDERLINE
FONTUNDERLINET���-��UTHISVISIBLERefresh,��Destroy.��1q�Aa��AA�������AAA��AAa��aaaA2�2� �")comboboxILENAME_LOC)
THISFORM.txtFileName.SetFocus
!�PROCEDURE handlerecord
*---------------------------------------------------------------*
* This method is called from the CheckConflicts method and the
* VerifyEachChange method. It loops through each field in the
* current record and compares the current value with the value
* stored in the table. If a value of 1 is passed to this method,
* the method also compares the current value with the value in
* the field before user made any edits.
*
* RETURNS NUMERIC VALUES:
* 0 -- No Change Made to the Current Value
* 1 -- Successfully Made User-Specified Change
* 2 -- Unable to Make User-Specifed Change
*---------------------------------------------------------------*
LPARAMETERS lnScope
*--Valid values for lnScope:
* 0 - Only manage conflicts && default
* 1 - Also prompt for changed values
* Verify parameter
IF TYPE("m.lnScope") != "N"
m.lnScope = 0
ENDIF
IF !BETWEEN(m.lnScope, 0, 1)
#define WINDMSG_LOC "Invalid value passed to conflictmanager.handlerecord"
WAIT WINDOW WINDMSG_LOC
ENDIF
* Declare constants & variables
#define CR_LOC CHR(13)
#define SAVE_LOC "Do you want to overwrite the current value with your change?" + CR_LOC + "(Choose 'Cancel' to restore the original value.)"
#define CONFLICT_LOC "Data Conflict"
#define VERIFY_LOC "Verify Changes"
#define ORG_LOC "Original Value: "
#define CUR_LOC "Current Value: "
#define CHG_LOC "Your change: "
#define MEMO_LOC " is a Memo field."
#define FIELD_LOC "Field: "
#define RECORD_LOC "Record Number: "
#define VALCHG1_LOC "A value has been changed by another user."
#define VALCHG2_LOC "A value has been changed."
LOCAL lnChoice, lnField, lcField, luOldVal, luCurVal, luField, llMadeChange, llSuccess
m.llMadeChange = .F.
m.llSuccess = .T.
* refresh current record in views before checking for conflicts
IF CURSORGETPROP('SourceType') != 3 && not a local table
=REFRESH()
ENDIF
* Check each field in the record for conflict or value change
FOR m.lnField = 1 to FCOUNT()
m.lnChoice = 0
m.lcField = FIELD(m.lnField)
IF TYPE(m.lcField) = "G"
LOOP && Can't check general fields
ENDIF
m.luOldVal = OLDVAL(m.lcField)
m.luCurVal = CURVAL(m.lcField)
DO CASE
* -----< check for conflicts only >--------
CASE m.lnScope = 0
IF m.luOldVal != m.luCurVal
m.llMadeChange = .T.
m.lnChoice = MESSAGEBOX(VALCHG1_LOC + CR_LOC + FIELD_LOC + lcField + CR_LOC + ;
RECORD_LOC + ALLTRIM(STR(RECNO())) + ;
IIF(TYPE("m.lcField") != "M", CR_LOC + CR_LOC + ORG_LOC + THIS.String(m.luOldVal) + ;
CR_LOC + CUR_LOC + THIS.String(m.luCurVal) + ;
CR_LOC + CHG_LOC + THIS.String(EVAL(m.lcField)), CR_LOC + CR_LOC + m.lcField + MEMO_LOC) + ;
CR_LOC + CR_LOC + SAVE_LOC, + 3+48+0, CONFLICT_LOC)
ENDIF
* -----< check for conflicts and verify all changes >--------
CASE m.lnScope = 1 && Verify all changes
m.luField = EVAL(m.lcField)
IF m.luOldVal != m.luField OR m.luCurVal != m.luField
m.llMadeChange = .T.
m.lnChoice = MESSAGEBOX(VALCHG2_LOC + CR_LOC + FIELD_LOC + m.lcField + CR_LOC + ;
RECORD_LOC + ALLTRIM(STR(RECNO())) + ;
IIF(TYPE("m.lcField") != "M", CR_LOC + CR_LOC + ORG_LOC + THIS.String(m.luOldVal) + ;
CR_LOC + CUR_LOC + THIS.String(m.luCurVal) + ;
CR_LOC + CHG_LOC + THIS.String(EVAL(m.lcField)), CR_LOC + CR_LOC + m.lcField + MEMO_LOC) + ;
CR_LOC + CR_LOC + SAVE_LOC, + 3+48+0, VERIFY_LOC)
ENDIF
ENDCASE
DO CASE
CASE m.lnChoice = 7 && No, don't save changes
REPLACE (m.lcField) WITH m.luCurVal
CASE m.lnChoice = 2 && Cancel, restore original value
REPLACE (m.lcField) WITH m.luOldVal
ENDCASE
ENDFOR
IF m.llMadeChange
m.llSuccess = TABLEUPDATE(.F., .T.)
RETURN IIF(m.llSuccess, 1, 2)
ELSE
RETURN 0
ENDIF
ENDPROC
PROCEDURE string
*---------------------------------------------------------------*
* This method is called from the HandleRecord method. It
* returns the character equivalent of the value passed in as a
* parameter. If a memo field is passed in, a notice to this
* effect is returned rather than the value in the memo field so
* that potentially large amounts of text aren't displayed in the
* messagebox.
*---------------------------------------------------------------*
LPARAMETERS luValue
m.uType = TYPE('m.luValue')
DO CASE
CASE m.uType = 'C'
RETURN ALLTRIM(m.luValue)
CASE INLIST(m.uType, 'N', 'Y')
RETURN ALLTRIM(STR(m.luValue))
CASE m.uType = 'D'
RETURN DTOC(m.luValue)
CASE m.uType = 'T'
RETURN TTOC('m.luValue')
CASE m.uType = 'L'
RETURN IIF(m.luValue, '.T.', '.F.')
CASE uType = 'M'
RETURN 'Memo field'
ENDCASE
ENDPROC
PROCEDURE verifychanges
*---------------------------------------------------------------*
* If any changes have been made to the table or record, prompt the
* user to save the changes. If the user says 'yes,' all changes
* are saved. Any changes made to the data by other users after
* this user made the change and before the change was committed
* will be lost.
*
* RETURNS NUMERIC VALUES:
* 0 -- No Changes Made to the Current Values
* 1 -- Successfully Made All User Changes
* 2 -- Unable to Write One or More User-Specifed Changes to Table
*---------------------------------------------------------------*
* Declare constants & variables
#define SAVECHG_LOC 'Do you want to save your changes?'
#define SAVECHG2_LOC 'Save Changes'
#define NOBUFF_LOC2 'Data buffering is not enabled.'
LOCAL lnChoice, llMadeChange, lnSuccess
m.llMadeChange = .F.
m.lnSuccess = 0
* If the user has changed anything, prompt to save or discard changes
DO CASE
CASE INLIST(CURSORGETPROP('Buffering'), 2,3) && Row Buffering
IF '2' $ GETFLDSTATE(-1)
m.llMadeChange = .T.
ENDIF
CASE INLIST(CURSORGETPROP('Buffering'), 4,5) && Table Buffering
IF GETNEXTMODIFIED(0) > 0
m.llMadeChange = .T.
ENDIF
OTHERWISE
WAIT WINDOW NOBUFF_LOC NOWAIT
ENDCASE
IF m.llMadeChange
m.lnChoice = MESSAGEBOX(SAVECHG_LOC, 4+32, SAVECHG2_LOC)
IF m.lnChoice = 6 && Yes
m.lnSuccess = IIF(TABLEUPDATE(.T.,.T.), 1, 2)
ELSE
=TABLEREVERT(.T.)
ENDIF
ENDIF
RETURN m.lnSuccess
ENDPROC
PROCEDURE verifyeachchange
*--------------------------------------------------------------------
* If any changes have been made to the table or record, for each
* change, display the old value and the new value, prompting the
* user to save or discard the change. Conflict management is also
* included in the HandleRecord method.
*
* RETURNS NUMERIC VALUES:
* 0 -- No Changes Made to the Current Values
* 1 -- Successfully Made User-Specified Changes
* 2 -- Unable to Write One or More User-Specifed Changes to Table
*---------------------------------------------------------------*
#define NOBUFF_LOC3 'Data buffering is not enabled.'
LOCAL lnSuccess, lnRec
m.lnSuccess = 0
DO CASE
CASE INLIST(CURSORGETPROP('Buffering'), 2,3) && Row Buffering
IF '2' $ GETFLDSTATE(-1) && Data has changed
m.lnSuccess = THIS.HandleRecord(1)
ENDIF
CASE INLIST(CURSORGETPROP('Buffering'), 4,5) && Table Buffering
m.lnRec = GETNEXTMODIFIED(0)
DO WHILE m.lnRec > 0
GO m.lnRec
m.lnSuccess = IIF(m.lnSuccess != 2, THIS.HandleRecord(1), 2)
m.lnRec = GETNEXTMODIFIED(m.lnRec)
ENDDO
OTHERWISE && No Buffering
WAIT WINDOW NOBUFF_LOC NOWAIT
ENDCASE
RETURN m.lnSuccess
ENDPROC
PROCEDURE checkconflicts
*---------------------------------------------------------------*
* Checks to see whether another user has changed the value
* stored in a table. If so, calls HandleRecord to display
* the new value and allow the user to decide what to do.
*
* RETURNS NUMERIC VALUES:
* 0 -- No Changes Made to the Current Values
* 1 -- Successfully Made User-Specified Changes
* 2 -- Unable to Make Write One or More User-Specifed Changes to Table
*---------------------------------------------------------------*
#define NOBUFF1_LOC 'Data buffering is not enabled.'
LOCAL lnSuccess, llnRec
m.lnSuccess = 0
DO CASE
CASE INLIST(CURSORGETPROP('Buffering'), 2,3) && Row Buffering
IF '2' $ GETFLDSTATE(-1) && Data has changed
m.lnSuccess = THIS.HandleRecord(0)
ENDIF
CASE INLIST(CURSORGETPROP('Buffering'), 4,5) && Table Buffering
m.llnRec = GETNEXTMODIFIED(0)
DO WHILE m.llnRec > 0
GO m.llnRec
m.lnSuccess = IIF(m.lnSuccess != 2, THIS.HandleRecord(0), 2)
m.llnRec = GETNEXTMODIFIED(m.llnRec)
ENDDO
OTHERWISE && no buffering
WAIT WINDOW NOBUFF_LOC NOWAIT
ENDCASE
RETURN m.lnSuccess
ENDPROC
�Width = 92
Height = 27
BackStyle = 0
BorderWidth = 0
nsec = 0
nmin = 0
nhour = 0
elapsedseconds = 0
Name = "stopwatch"
�u���u��t��N��
�u���N�~�믋�*䊇B�F��B�t��
tbreditingPV��������V��������V������E�����nArial, 0, 9, 5, 15, 12, 13, 3, 0
Courier New, 1, 9, 7, 16, 12, 8, 4, 0
Courier New, 3, 9, 7, 16, 12, 10, 4, 0
�\���E�j�Width = 33
Height = 36
BorderWidth = 0
mcierror = 0
mcierrorstring =
autoopen = .T.
mcialias =
autoplay = .T.
autorepeat = .T.
controlsource =
Name = "soundplayer"
��d�J%�MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
MS Sans Serif, 1, 8, 6, 13, 11, 12, 2, 0
MS Sans Serif, 2, 8, 5, 13, 11, 11, 2, 0
MS Sans Serif, 4, 8, 5, 13, 11, 11, 2, 0
rm�N��T����
��FontBold = .F.
FontName = "MS Sans Serif"
FontSize = 8
Value = 0
Height = 22
Left = 266
Style = 2
ToolTipText = "ForeColor and BackColor"
Top = 6
Width = 69
Name = "cboColor"
�u�E��E� ���E�E��0�u�A�����t �u�uj�u�u�u���
tbrediting.ine\macros.rtfgc:\vssfiles\vfpdocs\buildh ��� ��m�%(�
s�U%T����-��T����-��UTHISFORMTXTFILENAMEENABLED CMDSAVEAS%T����-��T����-��UTHISFORMTXTFILENAMEENABLED CMDSAVEAS%T����a��T����a��UTHISFORMTXTFILENAMEENABLED CMDSAVEASoptPreview.Click,��optPrinter.Click���
optFile.Click���1221`���3 )�Pixels���(!9����������%�C����cboColorocs\buildhlp\online\macros.rtffc:\vssfiles\vcomboboxvssfiles\vfpdocs\buildhlp\online\macros.rtfecomboboxy.rtfcc:\vssfiles\vfpdocs\buildhlp\online\lc
tbrediting.es\vfpdocs\buildhlp\online\lckevent.rtf`crtfcontrols�u�u�������:���U���4S�U�V�M�W3��u� containerP3���3��U���DSVW����������&P�U�P��6�j�E�P��W��������u3�_^[��]���`��jA�]��$Class�t"j��S��W�������u3�������C� �%P��c(tFPixels7�Ct�jA�U���_���j�E�P��W���l�����t��H��3PROCEDURE adjustcontrols
IF THIS.InitialResize
THIS.LoopThroughControls("INITIALIZE_AND_ADJUST")
THIS.InitialResize = .F.
ELSE
THIS.LoopThroughControls("ADJUST")
ENDIF
ENDPROC
PROCEDURE addtoarray
LPARAMETERS oControl
nLen = ALEN(THIS.aControlStats,1)
THIS.aControlStats[nLen,1] = oControl.Top / THIS.InitialFormHeight
THIS.aControlStats[nLen,2] = oControl.Left / THIS.InitialFormWidth
THIS.aControlStats[nLen,3] = oControl.Height / THIS.InitialFormHeight
THIS.aControlStats[nLen,4] = oControl.Width / THIS.InitialFormWidth
THIS.aControlStats[nLen,5] = IIF(TYPE("oControl.FontSize") = 'U', 0, oControl.FontSize)
DIMENSION THIS.aControlStats[nLen+1, 5]
ENDPROC
PROCEDURE setsize
LPARAMETERS oControl, nPos
oControl.Top = THISFORM.Height * THIS.aControlStats[nPos,1]
oControl.Left = THISFORM.Width * THIS.aControlStats[nPos,2]
oControl.Width = THISFORM.Width * THIS.aControlStats[nPos,4]
IF !oControl.Baseclass $ "Textbox Spinner"
oControl.Height = THISFORM.Height * THIS.aControlStats[nPos,3]
ENDIF
*IF oControl.Baseclass = "Commandbutton"
* IF TXTWIDTH(oControl.caption) > oControl.width
* oControl.FontSize = 8
* ELSE
* oControl.FontSize = 10
* ENDIF
*ENDIF
ENDPROC
PROCEDURE loopthroughcontrols
LPARAMETERS cTask
* Valid parameters for cTask are 'Initialize_And_Adjust' and 'Adjust'
cTask = UPPER(cTask)
nOldDecimal = SET("DECIMAL")
SET DECIMAL TO 4
nPos = 0
THISFORM.LockScreen = .T.
FOR m.i = 1 TO THISFORM.ControlCount
oControl = THISFORM.Controls[m.i]
IF oControl.Baseclass$BASE_CLASS
nPos = nPos + 1
DO CASE
CASE cTask = 'INITIALIZE_AND_ADJUST'
THIS.AddToArray(oControl)
THIS.SetSize(oControl, nPos)
CASE cTask = 'ADJUST'
THIS.SetSize(oControl, nPos)
ENDCASE
ENDIF
*A pageframe can contain only pages
IF THISFORM.Controls[m.i].Baseclass$"Pageframe"
*Loop through each page of the pageframe
FOR m.j = 1 TO THISFORM.Controls[m.i].PageCount
WITH THISFORM.Controls[m.i].pages[m.j]
*loop through all the controls on the page
FOR m.k = 1 TO .ControlCount
IF .Controls[m.k].Baseclass$BASE_CLASS
nPos = nPos + 1
DO CASE
CASE cTask = 'INITIALIZE_AND_ADJUST'
THIS.AddToArray(.Controls[m.k])
THIS.SetSize(.Controls[m.k], nPos)
CASE cTask = 'ADJUST'
THIS.SetSize(.Controls[m.k], nPos)
ENDCASE
ENDIF
ENDFOR
ENDWITH
ENDFOR
ENDIF
ENDFOR
THISFORM.LockScreen = .F.
SET DECIMAL TO nOldDecimal
ENDPROC
PROCEDURE Init
THIS.InitialFormHeight = THISFORM.Height
THIS.InitialFormWidth = THISFORM.Width
ENDPROC
PROCEDURE reset
THIS.InitialResize = .T.
DIMENSION THIS.aControlStats[1,5]
ENDPROC
�Q��(�����M�Q�M�輶��h�mcierror Specifies the result of the last MCI command executed.
mcierrorstring Stores the error string from the last MCI command executed.
autoopen Specifies whether the video file specified should be automatically opened when the class is created.
mcialias Specifies the alias for the video file when calling MCI commands. If empty, the name of the file is used.
autoplay Specifies whether the video file should automatically play after opening.
autorepeat If .T., video will continuously play
soundfile Specifies the sound file associated with the Sound Player.
controlsource Specifies the source of data to which an object is bound.
*domci Executes a MCI command.
*getmcierror Stores the last MCI error into properties of the class.
*showmcierror Displays the result of the last MCI command in a messagebox.
*setposition Allows the user to set the position of the media file; Valid values are Start, End, or a number representing milliseconds.
*opensound Opens the sound file.
*pausesound Pauses the currently playing sound.
*playsound Plays the loaded sound file.
*closesound Closes the loaded sound file and releases it's resources.
�
�y4�����@
uB������:�D$jP3ҋ���BTop = 6
Left = 266
Height = 22
Width = 0
Name = "Separator2"
ildhlp\online\lckkey.rtfbc:\vssfiles\vfpdocs\build
Separator2^c:\vssfiles\vfpdocs\buildhlp\online\lck_i-gmousex stores x coordinate of mouse pointer position
mousey stores y coordinate of mouse pointer position
candropicon Cursor when dropping is okay
nodropicon
dragthreshold number of pixels a user has to move the mouse with the left mouse button down for the drag method to be called.
*selectall selects all items in the listbox passed in as a parameter
""))
ENDPROC
��� ����%u���U����
T����������(������9%�C�%THISFORM.Controls(nCnt).controlSourceb�U���F%�CC�����
�(C�THISFORM.Controls(nCnt).valueb�U ���0T��CC����
C������� ��%�C��
���T���� AND ����������T���-��T�����a��%�C��
��b�T��CC��굛���SET FILTER TO &cFilter
T���
��a��
����UCFILTERNCNTTHISFORMCONTROLCOUNTCONTROLS
CONTROLSOURCE
CCONDITIONTHISPARENTPARSECONDITIONVALUEENABLED
CMDQBFMODECMDCLEARFILTERREFRESHClick,��1q���b�AAAAC�AQA�BR�1)����� ����%H �U�
H�
����C�������y��C�mThe report to print must either be specified in the cReport property of the form or passed in as a parameter.�x�����������
����?�����9����������
����?����(!9����������%�C������[�'��C�You must enter a file name.�x��
��������
����?�����(�����9���UTHISFORMCREPORTOPGREPORTOUTPUTVALUERELEASETXTFILENAMESETFOCUSClick,��1�!�r�r�rQq����AB1;)��PROCEDURE InteractiveChange
IF TYPE("_SCREEN.ActiveForm") = 'O'
oForm = _SCREEN.ActiveForm
oControl = oForm.ActiveControl
ELSE
RETURN
ENDIF
DO CASE
CASE This.Value = 1
RETURN
CASE This.Value = 2 && Get ForeColor
nForeColor = GETCOLOR()
IF nForeColor > -1
DO CASE
CASE THISFORM.nAppliesTo = 1 && current control
IF TYPE("oControl.ForeColor") = "N"
oControl.ForeColor = nForeColor
ELSE
IF TYPE("oControl.ItemForeColor") = "N"
oControl.ItemForeColor = nForeColor
ENDIF
ENDIF
CASE THISFORM.nAppliesTo = 2 && text and edit boxes
oForm.SetAll('ForeColor', nForeColor, 'TEXTBOX')
oForm.SetAll('ForeColor', nForeColor, 'EDITBOX')
CASE THISFORM.nAppliesTo = 3 && All controls
oForm.SetAll('ForeColor', nForeColor)
ENDCASE
ENDIF
CASE This.Value = 3 && Get BackColor
nBackColor = GETCOLOR()
IF nBackColor > -1
DO CASE
CASE THISFORM.nAppliesTo = 1 && current control
IF TYPE("oForm.ActiveControl.BackColor") = "N"
oForm.ActiveControl.BackColor = nBackColor
ELSE
IF TYPE("oForm.ActiveControl.ItemBackColor") = "N"
oForm.ActiveControl.ItemBackColor = nBackColor
ENDIF
ENDIF
CASE THISFORM.nAppliesTo = 2 && text and edit boxes
oForm.SetAll('BackColor', nBackColor, 'TEXTBOX')
oForm.SetAll('BackColor', nBackColor, 'EDITBOX')
CASE THISFORM.nAppliesTo = 3 && All controls
oForm.SetAll('BackColor', nBackColor)
ENDCASE
ENDIF
ENDCASE
THIS.Value = 1
ENDPROC
PROCEDURE Init
THIS.AddItem("Colors")
THIS.AddItem("Set ForeColor...")
THIS.AddItem("Set BackColor...")
THIS.ListIndex = 1
ENDPROC
uWV����]����V����jWV�7����� separator\lck_i-z.rtf]c:\vssfiles\vfpdocs\buildhlp\o separatorldhlp\online\lck_i-z.rtf\c:\vssfiles\vfpdoc��� ���3%]�u�U���������%�C�
cConditionb�C��C�T��C�����T��C�C�.������%�C��
����%�C�
cConditionb�CM���m%��<��
�==���LIKE��
�<>��
�!=�� �
H�7����C�b�CM��p�$T���� = C�" �C�" ���C�b�DT���� T���� = {C�*�}��2���T���� = C�Z�������
T������ B����U
CCONDITIONCCONTROLSOURCELCRETCONDITIONLCFIELDNAMEparsecondition,��1����A���AA��QAQ��AA��A�1�)����� ��(�%/rN�U>T���c����%�C����7�USE IN &cCursor
�UCCURSORTHISNAME\%�C���
��U�%��.��
����j��C�^The table alias must be specified in the controlSource property, in the format 'alias.column'.�x���Q�$T��C��C�.�������*T��C��C���C�.������T������HT���SELECT DISTINCT �� FROM �� INTO CURSOR c����T��������UTHIS
CONTROLSOURCECALIASCCOLUMN
ROWSOURCETYPECSQLNAME ROWSOURCEDestroy,��Init���1Q�1A23a��A��AA2\w�)�~��� ee�t%��U����%�C�cRepNameb�C��3�T�������%�C�������y��C�mThe report to print must either be specified in the cReport property of the form or passed in as a parameter.�x��B�-���%�C��0
�������C�The report file '���' does not exist.C�
C�
�nYou must specify a valid report file to print in the cReport property of the form or passed in as a parameter.�x��B�-���UCREPNAMETHISFORMCREPORTInit,��1w�A"�qA2qqA5u)e���� ���%`�
o�U�T���a��
T�����+����������%�C���������$��CC�����
���� ����C����������T��������T���-��UTHISFORM
LOCKSCREENNCNTTHISPARENTLSTSELECTED LISTCOUNTSELECTED LSTSOURCEADDITEMLIST
REMOVEITEMClick,��1����Aq�AA�1I)����� ��>�%�3
�UC�����������(�����<�T������a����UOLISTLNCNT LISTCOUNTSELECTED/T��������T��������UTHIS LSTSOURCEDRAGICONCANDROPICONLSTSELECTED selectall,��Init���1qq�AA2aa2{��)�PROCEDURE InteractiveChange
IF TYPE("_SCREEN.ActiveForm") = 'O'
oForm = _SCREEN.ActiveForm
ELSE
RETURN
ENDIF
DO CASE
CASE THIS.Parent.nAppliesTo = 1 && Current Control
oForm.ActiveControl.FontUnderline = THIS.Value
CASE THIS.Parent.nAppliesTo = 2 && All textboxes and editboxes
oForm.SetAll('FontUnderline', THIS.Value, 'TEXTBOX')
oForm.SetAll('FontUnderline', THIS.Value, 'EDITBOX')
CASE THIS.Parent.nAppliesTo = 3 && All Controls
oForm.SetAll('FontUnderline', THIS.Value)
ENDCASE
ENDPROC
les\vfpdocs\buildhlp\online\lck_i-
tbrediting.cs\buildhlp\online\lck_i-z.rtfSc:\vssfilechkUnderlinefiles\vfpdocs\buildhlp\online\lck_i-z.rtfRPROCEDURE KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl
IF nKeyCode = 63 AND nShiftAltCtrl = 1
THIS.Parent.SelectAll(THIS)
ENDIF
ENDPROC
PROCEDURE MouseMove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
IF nButton = 1 && Left Mouse
IF ABS(nXCoord - THIS.Parent.MouseX) > THIS.Parent.DragThreshold OR ;
ABS(nYCoord - THIS.Parent.MouseY) > THIS.Parent.DragThreshold
THIS.Drag
ENDIF
ENDIF
ENDPROC
PROCEDURE MouseDown
LPARAMETERS nButton, nShift, nXCoord, nYCoord
THIS.Parent.MouseX = nXCoord
THIS.Parent.MouseY = nYCoord
ENDPROC
PROCEDURE DragDrop
LPARAMETERS oSource, nXCoord, nYCoord
IF oSource.Name != THIS.Name
THIS.Parent.cmdAdd.Click
ENDIF
ENDPROC
PROCEDURE DblClick
THIS.Parent.lstSource.AddItem(This.List(This.ListIndex))
This.RemoveItem(This.ListIndex)
ENDPROC
PROCEDURE DragOver
LPARAMETERS oSource, nXCoord, nYCoord, nState
DO CASE
CASE nState = 0 && Enter
oSource.DragIcon = THIS.Parent.CanDropIcon
CASE nState = 1 && Leave
oSource.DragIcon = THIS.Parent.NoDropIcon
ENDCASE
ENDPROC
�{t3�����������;t���� ���%`�
o�U�T���a��
T�����+����������%�C���������$��CC�����
���� ����C����������T��������T���-��UTHISFORM
LOCKSCREENNCNTTHISPARENT LSTSOURCE LISTCOUNTSELECTEDLSTSELECTEDADDITEMLIST
REMOVEITEMClick,��1����Aq�AA�1�)����� ��.%)H8�U�%�������d�MT�����CCCC^��\g��#CCCCC^��\g�Z�CC^��\�C^6�����T�����C^���>T�����CC$� CC$!� CCCC$%Z��, CCCC$iZ���UTHISPARENT
TIMEFORMATTXTTIMEVALUETXTDATETimer,��1t��QA�2�)�)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
%PROCEDURE KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl
IF nKeyCode = 63 AND nShiftAltCtrl = 1
THIS.Parent.SelectAll(THIS)
ENDIF
ENDPROC
PROCEDURE MouseMove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
IF nButton = 1 && Left Mouse
IF ABS(nXCoord - THIS.Parent.MouseX) > THIS.Parent.DragThreshold OR ;
ABS(nYCoord - THIS.Parent.MouseY) > THIS.Parent.DragThreshold
THIS.Drag
ENDIF
ENDIF
ENDPROC
PROCEDURE MouseDown
LPARAMETERS nButton, nShift, nXCoord, nYCoord
THIS.Parent.MouseX = nXCoord
THIS.Parent.MouseY = nYCoord
ENDPROC
PROCEDURE DragDrop
LPARAMETERS oSource, nXCoord, nYCoord
IF oSource.Name != THIS.Name
THIS.Parent.cmdRemove.Click
ENDIF
ENDPROC
PROCEDURE DblClick
THIS.Parent.lstSelected.AddItem(This.List(This.ListIndex))
This.RemoveItem(This.ListIndex)
ENDPROC
PROCEDURE DragOver
LPARAMETERS oSource, nXCoord, nYCoord, nState
DO CASE
CASE nState = 0 && Enter
oSource.DragIcon = THIS.Parent.CanDropIcon
CASE nState = 1 && Leave
oSource.DragIcon = THIS.Parent.NoDropIcon
ENDCASE
ENDPROC
)
*!* Once we h�Top = 31
Left = 4
Height = 23
Width = 72
FontBold = .F.
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Query"
Enabled = .F.
TabIndex = 24
Name = "cmdExecuteQBF"
������PROCEDURE Click
LOCAL cFilter
cFilter = ""
*!* First, we need to walk all the controls on the form and find
*!* all controls with a controlSource and has a value in the value property.
FOR nCnt = 1 to THISFORM.ControlCount
IF TYPE('THISFORM.Controls(nCnt).controlSource') <> "U" THEN
IF !EMPTY(THISFORM.Controls(nCnt).ControlSource) AND ;
TYPE('THISFORM.Controls(nCnt).value') <> "U" THEN
*!* Now we need to parse the value property into a proper
*!* condition using the parseCondition method of the form
cCondition = THIS.Parent.parseCondition(THISFORM.Controls(nCnt).value,THISFORM.Controls(nCnt).controlSource)
*!* If there is a condition, add it to are overall filter
IF !EMPTY(cCondition) THEN
cFilter = cFilter + " AND " + cCondition
ENDIF
ENDIF
ENDIF
ENDFOR
*!* We need to rollback the transaction to discard the APPEND'ed record
ROLLBACK
THIS.Enabled = .F.
THIS.Parent.cmdQBFMode.Enabled = .T.
*!* This removes the " AND " keyword that is not needed for the
*!* first condition added to cFilter
IF !EMPTY(cFilter) THEN
cFilter = ALLTRIM(SUBSTRC(cFilter,5))
ENDIF
*!* Now we are ready to apply the filter
SET FILTER TO &cFilter
THIS.Parent.cmdClearFilter.enabled = .T.
GO TOP
THISFORM.Refresh
ENDPROC
���������������������������
commandbutton�������������������������������������������cmdClearFilter�������������������������������������������mcierror Specifies the result of the last MCI command executed.
mcierrorstring Stores the error string from the last MCI command executed.
videofile Specifies the video file associated with the Video Frame.
autoopen Specifies whether the video file specified should be automatically opened when the class is created.
mcialias Specifies the alias for the video file when calling MCI commands. If empty, the name of the file is used.
autoplay Specifies whether the video file should automatically play after opening.
autorepeat If .T., video will continuously play
controlsource Specifies the source of data to which an object is bound.
*domci Executes a MCI command.
*getmcierror Stores the last MCI error into properties of the class.
*openvideo Opens the video file and shows it.
*playvideo Plays the currently loaded video.
*pausevideo Pauses a currently playing video.
*showmcierror Displays the result of the last MCI command in a messagebox.
*closevideo Closes the video file and releases all resources.
*setposition Allows the user to set the position of the media file; Valid values are Start, End, or a number representing milliseconds.
Solutiondd��&������ ��UE%�o*�U�T��a��
H�����C�������g��C�KA lookup table must be specified in the 'lookup_table' property (combo box ���).�0�x��T��-���C�����$�k��C�OA display column must be specified in the 'display_column' property (combo box ���).�0�x��T��-���C�������i��C�MA return column must be specified in the 'return_column' property (combo box ���).�0�x��T��-���
%������%�C���
��3�eT���SELECT ���,��� FROM ���
ORDER BY ���
INTO CURSOR �������PT���SELECT ���,��� FROM ���
INTO CURSOR �����T������T�� ����T��
�����
����ULOKTHISLOOKUP_TABLENAMEDISPLAY_COLUMN
RETURN_COLUMNORDER_COLUMNNSQL
ROWSOURCETYPE ROWSOURCEBOUNDCOLUMNREFRESH������
H��������������C�An invalid display column or return column has been specified in the 'display_column' or 'return_column' properties (combo box ���).�0�x�������F�k��C�OAn invalid column has been specified in the 'order_column' property (combo box ���).�0�x�����
����~��C�bAn invalid table has been specified in the 'display_column' or 'lookup_table' property (combo box ���).�0�x��2�����CCE�0�x���UNERRORCMETHODNLINETHISNAME8T������%�C����1�USE IN &cAlias
�UCALIASTHISNAMEInit,��Error���Destroy���1��!q�!��!��A�1Q�AA�2��!� !�!���A2�!A1s�e%��3)����� ���
%�: ��UT����a��UTHIS TMRSWATCHENABLEDT����-��UTHIS TMRSWATCHENABLED=T������T������T������
����UTHISNSECNMINNHOUR
UPDATEDISPLAY�T��CC��Z���T��CC��Z���T��CC��Z���-T����C���
��0���6��-T�� ��C���
��0���6��-T��
��C���
��0���6��UCSECDISPLAYTHISNSECCMINDISPLAYNMINCHOURDISPLAYNHOUR
LBLSECONDSCAPTION
LBLMINUTESLBLHOURS�T��������%����<��R�T������T���������%����<����T������T���������
����-T���������<����UTHISNSECNMINNHOUR
UPDATEDISPLAYELAPSEDSECONDS+T�����:��T�����:��UTHIS
LBLSEPARATOR1CAPTION
LBLSEPARATOR2start,��stop^��reset���
updatedisplay��� increment/��Init:��122�2AAA���3qBqABqA��3BA1-Hd��
�N
n��L))���� ��%�m!+�UB����%���?��� ��;���C�������UNKEYCODE
NSHIFTALTCTRLTHISPARENT SELECTALLy������%�����r�@%�C��������C���������n�
��� ���U
NBUTTONNSHIFTNXCOORDNYCOORDTHISPARENTMOUSEX
DRAGTHRESHOLDMOUSEYDRAG<������T�������T�������UNBUTTONNSHIFTNXCOORDNYCOORDTHISPARENTMOUSEXMOUSEY=�����%�������6��������UOSOURCENXCOORDNYCOORDNAMETHISPARENTCMDADDCLICK6 ��CC������������C������UTHISPARENT LSTSOURCEADDITEMLIST LISTINDEX
REMOVEITEMu������
H� �n������G�T�������������n�T���������U OSOURCENXCOORDNYCOORDNSTATEDRAGICONTHISPARENTCANDROPICON
NODROPICONKeyPress,�� MouseMove��� MouseDownw��DragDrop���DblClickw��DragOver���1��AA21�AA31113�qA3131�aaA2���
�"A��"A#)lookup_combo � Pixels Class 1 combobox *PROCEDURE domci
LPARAMETERS cMCIcmd
*!* This method takes a MCI command string and executes it using
*!* the Windows API function mciSendString
*!* If the function executes successfully, the result is returned.
*!* Otherwise, the error string is returned.
cRetString = space(80)
nRetValue = mciSendString(cMCIcmd,@cRetString,len(cRetString),0)
cErr = THIS.getMCIerror(nRetValue)
IF nRetValue > 0
RETURN CeRR
ENDIF
RETURN TRIM(STRTRAN(cRetString,chr(0),""))
ENDPROC
PROCEDURE getmcierror
LPARAMETERS cError
LOCAL lcErrorString,nError
*!* This method is called from the doMCI to retrieve the last
*!* MCI error string.
*!* This function also saves the last error number and string
*!* into properties associated with the form.
nError=0
IF TYPE("cError")="C"
IF LEFT(cError,7)="*ERROR*"
nError=val(substr(cError,8))
ENDIF
ENDIF
IF TYPE("cError")="N"
nError=cError
ENDIF
cErrorString=SPACE(256)
=mciGetErrorString(nError,@cErrorString,len(cErrorString))
THIS.MCIerror = nError
THIS.MCIerrorString = cErrorString
RETURN TRIM(CHRTRAN(cErrorString,CHR(0),""))
ENDPROC
PROCEDURE openvideo
*!* Get needed properties into variables
cControlSource = THIS.controlSource
IF EMPTY(cControlSource) THEN
cFileName = THIS.videoFile
IF EMPTY(cFileName) THEN
MESSAGEBOX("No filename specified or control source specified!")
RETURN
ENDIF
ELSE
cFileName = ALLTRIM(&cControlSource)
IF EMPTY(cFileName) THEN
RETURN
ENDIF
ENDIF
cAlias = THIS.MCIalias
IF EMPTY(cAlias) THEN
cAlias = THIS.name
THIS.MCIalias = cAlias
ENDIF
_SCREEN.MousePointer = 11
*!* If video is already loaded, then close it
cCmd = ("STATUS " + cAlias + " READY")
IF THIS.doMCI(cCmd) = "true" THEN
*!* If one is, close it
cCMD = ("CLOSE " + cAlias + " WAIT")
THIS.doMCI(cCmd)
ENDIF
*!* Need to use window handle functions in FoxTools
SET LIBRARY TO HOME() + ".\FOXTOOLS.FLL"
EXTERNAL PROCEDURE MainHWND
EXTERNAL PROCEDURE _WhToHwnd
EXTERNAL PROCEDURE _WOnTop
* Returns Handle of Main VFP Window
Main_hWnd = MainHWND()
* Get Handle of the form with FOXTOOLS.FLL
cur_window = _WhToHwnd(_WOnTop())
NullPointer = 0
*!* Set up open MCI command into string variable
cCmd = ('OPEN "' + cFileName + '" alias ' + cAlias + ;
' style child parent ' + ALLTRIM(STR(cur_window)) + ' WAIT')
THIS.doMCI(cCmd)
*!* Check to see if MCI command succeeded
IF THIS.MCIerror > 0 THEN
messagebox(THIS.MCIerrorString)
_SCREEN.MousePointer = 0
RETURN
ELSE
*!* It does have visual media, so we need to set up the window
*!* it will play in.
*!* Get the window handle of the window playing the video
cCmd = "status " + cAlias + " window handle wait"
hWin = INT(VAL(THIS.doMCI(cCmd)))
*!* Once we have the window handle, we need to position
*!* the video window to be the same position and size
*!* as our player rectangle on the form
x1Pos = THIS.LEFT
y1Pos = THIS.TOP
x2Pos = x1Pos + THIS.WIDTH
y2Pos = y1Pos + THIS.HEIGHT
*!* Use the SetWindowPos Windows function to set position and size
setWindowPos(hWin,0,x1Pos,y1Pos,x2Pos,y2Pos,0)
*!* Everything's done, let's show the video
cCmd = ("WINDOW " + cAlias + " state show")
THIS.doMCI(cCmd)
ENDIF
*!* Set the device to use milliseconds when setting/getting position
THIS.doMCI("SET " + cAlias + " time format milliseconds")
IF THIS.autoPlay = .T. THEN
THIS.playVideo
ENDIF
_SCREEN.MousePointer = 0
ENDPROC
PROCEDURE playvideo
cAlias = THIS.MCIalias
*!* First need to see if the media is at the end
*!* by comparing the total length with the current position
nMediaLength = VAL(THIS.doMCI("STATUS " + cAlias + " length"))
nMediaPosition = VAL(THIS.doMCI("STATUS " + cAlias + " position"))
IF nMediaPosition >= nMediaLength THEN
*!* The media is at the end, so we need to seek back to the start
*!* of the clip before playing
THIS.doMCI("SEEK " + cAlias + " to start WAIT")
ENDIF
*!* Now we can play the media
THIS.doMCI("PLAY " + cAlias)
IF THIS.MCIerror > 0 THEN
THIS.showMCIerror
ENDIF
IF THIS.autoRepeat = .T. THEN
THIS.tmrCheckMode.INTERVAL = 100
ENDIF
ENDPROC
PROCEDURE pausevideo
cAlias = THIS.MCIalias
*!* Check to see if there is media acutally playing
IF THIS.doMCI("STATUS " + cAlias + " mode") = "playing" THEN
*!* Yes there is, so execute the PAUSE MCI command
THIS.doMCI("PAUSE " + cAlias)
IF THIS.MCIerror > 0 THEN
THIS.showMCIerror
ENDIF
IF THIS.autoRepeat = .T. THEN
THIS.tmrCheckMode.INTERVAL = 0
ENDIF
ENDIF
ENDPROC
PROCEDURE showmcierror
MESSAGEBOX(STR(THIS.MCIerror) + ": " + THIS.MCIerrorString)
ENDPROC
PROCEDURE closevideo
*!* If video is not already closed, then close it
cCmd = ("STATUS " + THIS.MCIalias + " READY")
IF THIS.doMCI(cCmd) = "true" THEN
*!* If one is, close it
cCMD = ("CLOSE " + THIS.MCIalias + " WAIT")
THIS.doMCI(cCmd)
IF THIS.MCIerror > 0 THEN
THIS.showMCIerror
ENDIF
IF THIS.autoRepeat = .T. THEN
THIS.tmrCheckMode.INTERVAL = 0
ENDIF
ENDIF
ENDPROC
PROCEDURE setposition
PARAMETERS cPosition
cAlias = THIS.MCIalias
IF UPPER(cPosition) = "START" or UPPER(cPosition) = "END" THEN
cPosCmd = "to " + cPosition
ELSE
nPosition = VAL(cPosition)
IF EMPTY(nPosition) THEN
RETURN
ELSE
*!* Check to make sure position is not greater than the length
nMediaLength = VAL(THIS.doMCI("STATUS " + cAlias + " length"))
IF nMediaLength < nPosition THEN
RETURN
ELSE
cPosCmd = "to " + STR(nPosition)
ENDIF
ENDIF
ENDIF
*!* Make sure video is loaded
cCmd = ("STATUS " + cAlias + " READY")
IF THIS.doMCI(cCmd) = "true" THEN
cCmd = "SEEK " + cAlias + " " + cPosCmd
THIS.doMCI(cCmd)
ENDIF
ENDPROC
PROCEDURE Destroy
THIS.closeVideo
ENDPROC
PROCEDURE Init
*!* This is the primary Windows API function that is used to
*!* send MCI commands
DECLARE INTEGER mciSendString ;
IN WinMM.DLL ;
STRING cMCIString,;
STRING @cRetString,;
INTEGER nRetLength,;
INTEGER hInstance
*!* This function allows us to retrieve the last MCI error that occured
DECLARE INTEGER mciGetErrorString ;
IN WINMM.DLL ;
INTEGER nErrorno, ;
STRING @cBuffer, ;
INTEGER nBufSize
*!* When MCI plays a video, it creates its own Window. By using
*!* this Windows API function we can position this Window to be
*!* in the same position as our Player rectangle on the form
DECLARE integer SetWindowPos ;
IN User32 ;
integer, integer, integer, integer, integer, integer, integer
ENDPROC
PROCEDURE Refresh
IF THIS.autoOpen = .T. THEN
THIS.openVideo
ENDIF
ENDPROC
PROCEDURE Error
#DEFINE INVALID_CONTROLSOURCE_LOC "Invalid controlSource specified."
LPARAMETERS nError, cMethod, nLine
DO CASE
CASE nError = 12 and cMethod = "openvideo"
messageBox(INVALID_CONTROLSOURCE_LOC)
OTHERWISE
ERROR (nError)
ENDCASE
ENDPROC
��}k��$�h����� ����%��
�UO���%�C� m.lnScopeb�N��3�T�
������%�C�
����
����>R,��4Invalid value passed to conflictmanager.handlerecord���#����������
T�
��-��
T�
��a��%�C�
SourceType������ ��C������
����(�C.����T�
�����T�
��C�
�/��%�C�
�b�G��M�.��T�
��C�
��_��T�
��C�
����
H�������
������%��
��
�����
T�
��a���T�
��C�)A value has been changed by another user.C�
�Field: �C�
�Record Number: CCCOZ�CC� m.lcFieldb�M�}C�
C�
�Original Value: C�
�� �
C�
�Current Value: C�
�� �
C�
�
Your change: CC�
��� �
�&C�
C�
�
�� is a Memo field.6C�
C�
�<Do you want to overwrite the current value with your change?C�
�0(Choose 'Cancel' to restore the original value.)�3�
Data Conflict�x�����
������T�
��C�
����$%��
��
���
��
�����
T�
��a���T�
��C�A value has been changed.C�
�Field: �
�C�
�Record Number: CCCOZ�CC� m.lcFieldb�M�}C�
C�
�Original Value: C�
�� �
C�
�Current Value: C�
�� �
C�
�
Your change: CC�
��� �
�&C�
C�
�
�� is a Memo field.6C�
C�
�<Do you want to overwrite the current value with your change?C�
�0(Choose 'Cancel' to restore the original value.)�3�Verify Changes�x����
H�������
������>��
�����
�����
������>��
�����
������%��
���7�T�
��C-a���B�C�
�����6���H� B�����ULNSCOPELNCHOICELNFIELDLCFIELDLUOLDVALLUCURVALLUFIELDLLMADECHANGE LLSUCCESSTHISSTRING ���T�
��C� m.luValueb��
H�.����
��C��O�
B�C�
�����C�
��N�Y���w�B�CC�
�Z�����
��D����
B�C�
�*����
��T����B�C� m.luValue�����
��L����B�C�
�� �.T.��.F.6�����M���B��
Memo field���ULUVALUEUTYPE������
T�
��-��T�
�����
H�8���!�CC� Buffering��������%��2C������|�
T�
��a���!�CC� Buffering��������%�C�������
T�
��a���2���R,:�����%��
���y�ET�
��C�!Do you want to save your changes?�$�Save Changes�x��%��
����c�T�
��CCaa�����6���u�
��Ca�����B��
���ULNCHOICELLMADECHANGE LNSUCCESS
NOBUFF_LOC1����T�
�����
H�'��!�CC� Buffering������x�%��2C������t�T�
��C������!�CC� Buffering�������T�
��C����+��
�����#��
���*T�
��C�
���
C�����6��T�
��C�
�����2��R,:�����B��
���U LNSUCCESSLNRECTHISHANDLERECORD
NOBUFF_LOC1����T�
�����
H�'��!�CC� Buffering������x�%��2C������t�T�
��C������!�CC� Buffering�������T�
��C����+��
�����#��
���*T�
��C�
���
C�����6��T�
��C�
�����2��R,:�����B��
���U LNSUCCESSLLNRECTHISHANDLERECORD
NOBUFF_LOChandlerecord,��string���
verifychanges��verifyeachchange� ��checkconflictsA��1��A��A�1����A��2aAAAA�2Q�VA21A��AA�1A1AAA����A3z��A���A�AQA�!1A2 ����a�AA�A��A�Q1���AA�2���aaA!A��AA��A�2���aaA!A��AA��A�1�2�WiC{K�]r%�pJ�!�)�$��� �7%�r!0�UB����%���?��� ��;���C�������UNKEYCODE
NSHIFTALTCTRLTHISPARENT SELECTALLy������%�����r�@%�C��������C���������n�
��� ���U
NBUTTONNSHIFTNXCOORDNYCOORDTHISPARENTMOUSEX
DRAGTHRESHOLDMOUSEYDRAG<������T�������T�������UNBUTTONNSHIFTNXCOORDNYCOORDTHISPARENTMOUSEXMOUSEY=�����%�������6��������UOSOURCENXCOORDNYCOORDNAMETHISPARENT CMDREMOVECLICK6 ��CC������������C������UTHISPARENTLSTSELECTEDADDITEMLIST LISTINDEX
REMOVEITEMu������
H� �n������G�T�������������n�T���������U OSOURCENXCOORDNYCOORDNSTATEDRAGICONTHISPARENTCANDROPICON
NODROPICONKeyPress,�� MouseMove��� MouseDownw��DragDrop���DblClickz��DragOver���1��AA21�AA31113�qA3131�aaA3���
�"A��'F
����
�������C����(��%�C�������p�T��a��T������T���������T��C�����
T�����T��-���
%�������� ���(��������CCC� Z���
�������� ���(�������CCCC� �Z���
�����U CFONTNAMETHISCLEARASIZES LSCALABLENLENNLARGESTFONTNSTART
NSMALLESTFONTIADDITEMfilllist,��1q��a����A�qAA�q�AA2�)@lookup_combo �FontName = "MS Sans Serif"
FontSize = 8
Height = 23
Width = 106
display_column =
lookup_table =
return_column =
order_column =
Name = "lookup_combo"
rint must either be spWPROCEDURE start
This.tmrSWatch.enabled = .T.
ENDPROC
PROCEDURE stop
This.tmrSWatch.enabled = .f.
ENDPROC
PROCEDURE reset
This.nSec = 0
This.nMin = 0
This.nHour = 0
This.UpdateDisplay
ENDPROC
PROCEDURE updatedisplay
cSecDisplay = ALLTRIM(STR(This.nSec))
cMinDisplay = ALLTRIM(STR(This.nMin))
cHourDisplay = ALLTRIM(STR(This.nHour))
This.lblSeconds.Caption = IIF(This.nSec < 10, "0" + cSecDisplay , cSecDisplay)
This.lblMinutes.Caption = IIF(This.nMin < 10, "0" + cMinDisplay , cMinDisplay)
This.lblHours.Caption = IIF(This.nHour < 10, "0" + cHourDisplay , cHourDisplay)
ENDPROC
PROCEDURE increment
THIS.nSec = THIS.nSec + 1
IF THIS.nSec = 60
THIS.nSec = 0
THIS.nMin = THIS.nMin + 1
ENDIF
IF THIS.nMin = 60
THIS.nMin = 0
THIS.nHour = THIS.nHour + 1
ENDIF
THIS.UpdateDisplay
THIS.ElapsedSeconds = (THIS.nHour * 3600) + ;
(THIS.nMin * 60) + ;
(This.nSec)
ENDPROC
PROCEDURE Init
This.lblSeparator1.Caption = SEPARATOR_LOC
This.lblSeparator2.Caption = SEPARATOR_LOC
ENDPROC
����������������������������������PROCEDURE domci
LPARAMETERS cMCIcmd
*!* This method takes a MCI command string and executes it using
*!* the Windows API function mciSendString
*!* If the function executes successfully, the result is returned.
*!* Otherwise, the error string is returned.
cRetString = space(80)
nRetValue = mciSendString(cMCIcmd,@cRetString,len(cRetString),0)
cErr = THIS.getMCIerror(nRetValue)
IF nRetValue > 0
RETURN CeRR
ENDIF
RETURN TRIM(STRTRAN(cRetString,chr(0),""))
ENDPROC
PROCEDURE getmcierror
LPARAMETERS cError
LOCAL lcErrorString,nError
*!* This method is called from the doMCI to retrieve the last
*!* MCI error string.
*!* This function also saves the last error number and string
*!* into properties associated with the form.
nError=0
IF TYPE("cError")="C"
IF LEFT(cError,7)="*ERROR*"
nError=val(substr(cError,8))
ENDIF
ENDIF
IF TYPE("cError")="N"
nError=cError
ENDIF
cErrorString=SPACE(256)
=mciGetErrorString(nError,@cErrorString,len(cErrorString))
THIS.MCIerror = nError
THIS.MCIerrorString = cErrorString
RETURN TRIM(CHRTRAN(cErrorString,CHR(0),""))
ENDPROC
PROCEDURE showmcierror
MESSAGEBOX(STR(THIS.MCIerror) + ": " + THIS.MCIerrorString)
ENDPROC
PROCEDURE setposition
PARAMETERS cPosition
cAlias = THIS.MCIalias
IF UPPER(cPosition) = "START" or UPPER(cPosition) = "END" THEN
cPosCmd = "to " + cPosition
ELSE
nPosition = VAL(cPosition)
IF EMPTY(nPosition) THEN
RETURN
ELSE
*!* Check to make sure position is not greater than the length
nMediaLength = VAL(THIS.doMCI("STATUS " + cAlias + " length"))
IF nMediaLength < nPosition THEN
RETURN
ELSE
cPosCmd = "to " + STR(nPosition)
ENDIF
ENDIF
ENDIF
*!* Make sure video is loaded
cCmd = ("STATUS " + cAlias + " READY")
IF THIS.doMCI(cCmd) = "true" THEN
cCmd = "SEEK " + cAlias + " " + cPosCmd
THIS.doMCI(cCmd)
ENDIF
ENDPROC
PROCEDURE opensound
*!* Get needed properties into variables
IF EMPTY(THIS.controlSource) THEN
cFileName = THIS.soundFile
IF EMPTY(cFileName) THEN
MESSAGEBOX("No filename or control source specified!")
RETURN
ENDIF
ELSE
cFileName = ALLTRIM(&controlSource)
IF EMPTY(cFileName) THEN
RETURN
ENDIF
ENDIF
cAlias = THIS.MCIalias
IF EMPTY(cAlias) THEN
cAlias = THIS.name
THIS.MCIalias = cAlias
ENDIF
_SCREEN.MousePointer = 11
*!* If sound is already loaded, then close it
cCmd = ("STATUS " + cAlias + " READY")
IF THIS.doMCI(cCmd) = "true" THEN
*!* If one is, close it
cCMD = ("CLOSE " + cAlias + " WAIT")
THIS.doMCI(cCmd)
ENDIF
*!* Set up open MCI command into string variable
cCmd = ('OPEN "' + cFileName + '" alias ' + cAlias + ' WAIT')
THIS.doMCI(cCmd)
*!* Check to see if MCI command succeeded
IF THIS.MCIerror > 0 THEN
messagebox(THIS.MCIerrorString)
_SCREEN.MousePointer = 0
RETURN
ENDIF
*!* Set the device to use milliseconds when setting/getting position
THIS.doMCI("SET " + cAlias + " time format milliseconds")
IF THIS.autoPlay = .T. THEN
THIS.playSound
ENDIF
_SCREEN.MousePointer = 0
ENDPROC
PROCEDURE pausesound
cAlias = THIS.MCIalias
*!* Check to see if there is media acutally playing
IF THIS.doMCI("STATUS " + cAlias + " mode") = "playing" THEN
*!* Yes there is, so execute the PAUSE MCI command
THIS.doMCI("PAUSE " + cAlias)
IF THIS.MCIerror > 0 THEN
THIS.showMCIerror
ENDIF
IF THIS.autoRepeat = .T. THEN
THIS.tmrCheckMode.INTERVAL = 0
ENDIF
ENDIF
ENDPROC
PROCEDURE playsound
cAlias = THIS.MCIalias
*!* First need to see if the media is at the end
*!* by comparing the total length with the current position
nMediaLength = VAL(THIS.doMCI("STATUS " + cAlias + " length"))
nMediaPosition = VAL(THIS.doMCI("STATUS " + cAlias + " position"))
IF nMediaPosition >= nMediaLength THEN
*!* The media is at the end, so we need to seek back to the start
*!* of the clip before playing
THIS.doMCI("SEEK " + cAlias + " to start WAIT")
ENDIF
*!* Now we can play the media
THIS.doMCI("PLAY " + cAlias)
IF THIS.MCIerror > 0 THEN
THIS.showMCIerror
ENDIF
IF THIS.autoRepeat = .T. THEN
THIS.tmrCheckMode.INTERVAL = 300
ENDIF
ENDPROC
PROCEDURE closesound
*!* If sound is not already closed, then close it
cCmd = ("STATUS " + THIS.MCIalias + " READY")
IF THIS.doMCI(cCmd) = "true" THEN
*!* If one is, close it
cCMD = ("CLOSE " + THIS.MCIalias + " WAIT")
THIS.doMCI(cCmd)
IF THIS.MCIerror > 0 THEN
THIS.showMCIerror
ENDIF
IF THIS.autoRepeat = .T. THEN
THIS.tmrCheckMode.INTERVAL = 0
ENDIF
ENDIF
ENDPROC
PROCEDURE Destroy
THIS.closeSound
ENDPROC
PROCEDURE Init
*!* This is the primary Windows API function that is used to
*!* send MCI commands
DECLARE INTEGER mciSendString ;
IN WinMM.DLL ;
STRING cMCIString,;
STRING @cRetString,;
INTEGER nRetLength,;
INTEGER hInstance
*!* This function allows us to retrieve the last MCI error that occured
DECLARE INTEGER mciGetErrorString ;
IN WINMM.DLL ;
INTEGER nErrorno, ;
STRING @cBuffer, ;
INTEGER nBufSize
*!* When MCI plays a video, it creates its own Window. By using
*!* this Windows API function we can position this Window to be
*!* in the same position as our Player rectangle on the form
DECLARE integer SetWindowPos ;
IN User32 ;
integer, integer, integer, integer, integer, integer, integer
ENDPROC
PROCEDURE Refresh
IF THIS.autoOpen = .T. THEN
THIS.openSound
ENDIF
ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LPARAMETERS nError, cMethod, nLine
DO CASE
CASE nError = 12 and cMethod = "opensound"
messageBox(INVALID_CONTROLSOURCE_LOC)
OTHERWISE
ERROR (nError)
ENDCASE
ENDPROC
/b���M�����Top = 6
Left = 235
Height = 22
Width = 26
FontName = "MS Sans Serif"
FontSize = 8
FontUnderline = .T.
Caption = "U"
Value = .F.
Style = 1
ToolTipText = "Underline"
Name = "chkUnderline"
les\vfpdocs\buildhlp\online\lck_i-z.rtfXc:\vsscheckboxz.rtfPc:\vssfiles\vfpdocs\buildhlp\online\lccheckboxnline\lck_i-z.rtfOc:\vssfiles\vfpdocs\buildh���� ��m%l�
{�U�T����������%�����<��d�T�������T�����������%�����<����T�������T�����������
�����9T������������<�����UTHISPARENTNSECNMINNHOUR
UPDATEDISPLAYELAPSEDSECONDSTimer,��1�r1�Ar1�A��2�)�distinct_values_comboa file name.�x��
�������comboboxE Init
IF TYPE("_SCREEN.ActiveForm") = 'O'
oForm = _SCREEN.ActiveForm
ELSE
RETURN
ENDIF
DO CASE
CASE THIS.Parent.nAppliesTo = 1 && Current Control
oForm.ActiveControl.FontItalic = THIS.Value
CASE THIS.Parent.nAppliesTo = 2 && All textboxes and editboxes
oForm.SetAll('FontItalic', THIS.Value, 'TEXTBOX')
oForm.SetAll('FontItalic', THIS.Value, 'EDITBOX')
CASE THIS.Parent.nAppliesTo = 3 && All Controls
oForm.SetAll('FontItalic', THIS.Value)
ENDCASE
ENDPROC
files\vfpdocs\buildhlp\online\lck_i-z.rtfB�Top = 6
Left = 210
Height = 22
Width = 26
FontItalic = .T.
FontName = "MS Sans Serif"
FontSize = 8
Caption = "I"
Value = .F.
Style = 1
ToolTipText = "Italic"
Name = "chkItalic"
_i-z.rtf6c:\vssfiles\vfpdocs\buildhlp\online\lck_i-z.rt
tbrediting.hlp\online\lck_i-z.rtfFc:\vssfiles\vfpdoc chkItalic\vfpdocs\buildhlp\online\lck_i-z.rtfEc:\vsscheckboxc:\vssfiles\vfpdocs\buildhlp\online\lck_i-z.rtcheckboxk_i-z.rtfBc:\vssfiles\vfpdocs\buildhlp\onlin���� ��m%l�
{�U�T����������%�����<��d�T�������T�����������%�����<����T�������T�����������
�����9T������������<�����UTHISPARENTNSECNMINNHOUR
UPDATEDISPLAYELAPSEDSECONDSTimer,��1�r1�Ar1�A��2�)�)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
�UTHISFORformlsd in, the variables are automatically
*!* set to PROCEDURE InteractiveChange
IF TYPE("_SCREEN.ActiveForm") = 'O'
oForm = _SCREEN.ActiveForm
ELSE
RETURN
ENDIF
DO CASE
CASE THIS.Parent.nAppliesTo = 1 && Current Control
oForm.ActiveControl.FontBold = THIS.Value
CASE THIS.Parent.nAppliesTo = 2 && All textboxes and editboxes
oForm.SetAll('FontBold', THIS.Value, 'TEXTBOX')
oForm.SetAll('FontBold', THIS.Value, 'EDITBOX')
CASE THIS.Parent.nAppliesTo = 3 && All Controls
oForm.SetAll('FontBold', THIS.Value)
ENDCASE
ENDPROC
t to send these %1 items to�Top = 6
Left = 185
Height = 22
Width = 26
FontBold = .T.
FontName = "MS Sans Serif"
FontSize = 8
Caption = "B"
Value = .F.
Style = 1
ToolTipText = "Bold"
Name = "chkBold"
:
tbrediting.hlp\online\lck_i-z.rtf&c:\vssfiles\vfpdocchkBoldes\vfpdocs\buildhlp\online\lck_i-z.rtf%c:\vsscheckboxc:\vssfiles\vfpdocs\buildhlp\online\lck_i-z.rtcheckboxk_i-z.rtf"c:\vssfiles\vfpdocs\buildhlp\onlinBTop = 6
Left = 185
Height = 22
Width = 0
Name = "Separator1"
buildhlp\online\lck_i-z.rtf!c:\vssfiles\vfpdocs\bu
tbrediting.hlp\online\lck_i-z.rtf3c:\vssfiles\vfpdoc
Separator1vfpdocs\buildhlp\online\lck_i-z.rtf2c:\vss separatorc:\vssfiles\vfpdocs\buildhlp\online\lck_i-z.rt separator_i-z.rtf/c:\vssfiles\vfpdocs\buildhlp\onlin���� ttB>%p���UT����a��UTHIS TMRSWATCHENABLEDT����-��UTHIS TMRSWATCHENABLED=T������T������T������
����UTHISNSECNMINNHOUR
UPDATEDISPLAY�T��CC��Z���T��CC��Z���T��CC��Z���-T����C���
��0���6��-T�� ��C���
��0���6��-T��
��C���
��0���6��UCSECDISPLAYTHISNSECCMINDISPLAYNMINCHOURDISPLAYNHOUR
LBLSECONDSCAPTION
LBLMINUTESLBLHOURS*
T�����
T�����
T�����UNMINNSECNHOURstart,��stop^��Reset���
updatedisplay���Init/��122�2AAA���3���2-Hd��
�N
i�)t�Height = 136
Width = 342
Desktop = .T.
DoCreate = .T.
AutoCenter = .T.
BorderStyle = 2
Caption = "Print Report"
MaxButton = .F.
MinButton = .F.
WindowType = 1
creport =
Name = "print_report"
gress.Mismatched pushjmp/popjmp call.CursoPROCEDURE InteractiveChange
IF TYPE("_SCREEN.ActiveForm") = 'O'
oForm = _SCREEN.ActiveForm
ELSE
RETURN
ENDIF
DO CASE
CASE THIS.Parent.nAppliesTo = 1 && Current Control
oForm.ActiveControl.FontSize = VAL(THIS.Value)
CASE THIS.Parent.nAppliesTo = 2 && All textboxes and editboxes
oForm.SetAll('FontSize', VAL(THIS.Value), 'TEXTBOX')
oForm.SetAll('FontSize', VAL(THIS.Value), 'EDITBOX')
CASE THIS.Parent.nAppliesTo = 3 && All Controls
oForm.SetAll('FontSize', VAL(THIS.Value))
ENDCASE
ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
DO CASE
CASE nError = 1881 && Fontsize invalid for the control
WAIT WINDOW BADSIZE_LOC TIMEOUT 2
IF TYPE("Application.ActiveForm.ActiveControl") = "O"
THIS.Parent.Refresh(Application.ActiveForm.ActiveControl)
ENDIF
OTHERWISE
*-----------------------------------------------------------
* Display information about an unanticipated error.
*-----------------------------------------------------------
lcMsg = NUM_LOC + ALLTRIM(STR(nError)) + CR_LOC + CR_LOC + ;
MSG_LOC + MESSAGE( )+ CR_LOC + CR_LOC + ;
PROG_LOC + PROGRAM(1)
lnAnswer = MESSAGEBOX(lcMsg, 2+48+512)
DO CASE
CASE lnAnswer = 3 &&Abort
CANCEL
CASE lnAnswer = 4 &&Retry
RETRY
OTHERWISE
RETURN
ENDCASE
ENDCASE
ENDPROC
erifP�jSysAnim_FontName = "MS Sans Serif"
FontSize = 8
Height = 22
Left = 136
Top = 6
Name = "cboSizes"
es\vfpdocs\buildhlp\onlin
tbrediting.cs\buildhlp\online\lck_i-z.rtf
c:\vssfilecboSizes\vssfiles\vfpdocs\buildhlp\online\lck_i-z.rtf comboboxz.rtfc:\vssfiles\vfpdocs\buildhlp\online\lcsamples.vcxne\lck_i-z.rtfc:\vssfiles\vfpdocs\buildhcbofontsizeuildhlp\online\lck_i-z.rtfc:\vssfiles\vfBTop = 6
Left = 136
Height = 22
Width = 0
Name = "Separator3"
c:\vssfiles\vfpdocs\buildhlp\online\lck_i-z.rtfc:
tbrediting.ck_i-z.rtfc:\vssfiles\vfpdocs\buildhlp\o
Separator3dhlp\online\lck_i-z.rtfc:\vssfiles\vfpdoc separator\vfpdocs\buildhlp\online\lck_i-z.rtf�c:\vss separatorc:\vssfiles\vfpdocs\buildhlp\online\lck_i-z.rt�PROCEDURE Destroy
cCursor = "c" + THIS.name
IF USED(cCursor) THEN
USE IN &cCursor
ENDIF
ENDPROC
PROCEDURE Init
IF !EMPTY(THIS.controlSource) THEN
IF NOT "." $ THIS.controlSource THEN
=MESSAGEBOX(NO_TABLE_LOC)
ELSE
cAlias = LEFTC(THIS.controlSource,(ATC(".",THIS.controlSource)-1))
cColumn = RIGHTC(THIS.controlSource,(LENC(THIS.controlSource)-ATC(".",THIS.controlSource)))
THIS.rowSourceType = 3
cSQL = "SELECT DISTINCT " + cColumn + " FROM " + cAlias + ;
" INTO CURSOR c" + THIS.name
THIS.rowSource = cSQL
ENDIF
ENDIF
ENDPROC
7creport Specifies the report to print from this form.
t8PROCEDURE InteractiveChange
LOCAL oForm, oControl
IF TYPE("_SCREEN.ActiveForm") = "O" AND TYPE("_SCREEN.ActiveForm.ActiveControl") = "O"
oForm = _SCREEN.ActiveForm
oControl = oForm.ActiveControl
ELSE
RETURN
ENDIF
DO CASE
CASE THIS.Parent.nAppliesTo = 1 && Current Control
oControl.FontName = This.Value
CASE THIS.Parent.nAppliesTo = 2 && All textboxes and editboxes
oForm.SetAll('FontName', This.Value, 'TEXTBOX')
oForm.SetAll('FontName', This.Value, 'EDITBOX')
*==================================================================
* comment out the previous 2 lines and uncomment the following lines
* if you want to affect all controls with a baseclass of textbox
* or editbox.
*------------------------------------------------------------------
*FOR i = 1 to oForm.ControlCount
* <find out what the baseclass property is to avoid having to UPPER>
* IF UPPER(oForm.Controls(i).BaseClass) = 'TEXTBOX' OR ;
* UPPER(oForm.Controls(i).BaseClass) = 'EDITBOX'
* oForm.Controls(i).FontName = THIS.Value
* ENDIF
*ENDFOR
*==================================================================
CASE THIS.Parent.nAppliesTo = 3 && All Controls
oForm.SetAll('FontName', This.Value)
ENDCASE
THIS.Parent.cboSizes.FillList(THIS.Value)
THIS.Parent.Refresh(oControl)
ENDPROC
jFontName = "MS Sans Serif"
FontSize = 8
Height = 22
Left = 6
Top = 6
Width = 125
Name = "cboFonts"
les\vfpdocs\bu
tbrediting.hlp\online\lck_i-z.rtf�c:\vssfiles\vfpdoccboFontss\vfpdocs\buildhlp\online\lck_i-z.rtf�c:\vsscomboboxc:\vssfiles\vfpdocs\buildhlp\online\lck_i-z.rtsamples.vcx-z.rtf�c:\vssfiles\vfpdocs\buildhlp\onlincbofontname�M������S���j3ҋΉE��E�P�y���]��
\�|+]���Hnappliesto 1 -- applies to current control
-- applies to all controls
܍�H���許����H���Ct
���W�����t�����Pj��s����gCaption = "Editing"
Height = 31
Left = 0
Top = 0
Width = 339
nappliesto = 1
Name = "tbrediting"
c:\vssfiles\vftoolbar�����> ��_^��]�U���|����8SVW��������
commandbutton�������������������������������������������
cmdQBFMode����������������������������������������������qbf.�����������������������������������������������������AutoSize = .F.
Top = 3
Left = 4
Height = 23
Width = 72
FontBold = .F.
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Enter QBF"
TabIndex = 23
Name = "cmdQBFMode"
�����
commandbutton�������������������������������������������
commandbutton������������������������������������������� container parsecondition
LPARAMETERS cCondition, cContrFWidth = 80
Height = 97
BorderWidth = 0
qbf_table =
Name = "qbf"
ontrolSource,(RATC(".",cControlSource)+1))
*!* Cqbf_table Specifies the table to query against.
*parsecondition
�����������������������������������������������������
commandbutton�������������������������������������������jdisplay_column Specifies the column from lookup_table to display in the drop down list.
lookup_table Specifies the table to lookup the values to display in the drop down.
return_column Specifies the column value to return the value property of the combo box.
order_column Specifies the column to order the records displayed in the drop down list (optional).
optiongroupny characters in the report.Invalid expressioptiongroupion file.Total label width exceeds allowed sopgReportOutputey.Too many READ commands are in effect.>PROCEDURE optPreview.Click
THISFORM.txtFileName.enabled = .F.
THISFORM.cmdSaveAs.enabled = .F.
ENDPROC
PROCEDURE optPrinter.Click
THISFORM.txtFileName.enabled = .F.
THISFORM.cmdSaveAs.enabled = .F.
ENDPROC
PROCEDURE optFile.Click
THISFORM.txtFileName.enabled = .T.
THISFORM.cmdSaveAs.enabled = .T.
ENDPROC
erver.Error saving the OLE object.Error creating the OLE�ButtonCount = 3
BackStyle = 0
Value = 1
Height = 110
Left = 10
Top = 14
Width = 242
Name = "opgReportOutput"
Option1.FontBold = .F.
Option1.FontName = "MS Sans Serif"
Option1.FontSize = 8
Option1.BackStyle = 0
Option1.Caption = "Print Preview"
Option1.Value = 1
Option1.Height = 15
Option1.Left = 11
Option1.Top = 12
Option1.Width = 80
Option1.AutoSize = .T.
Option1.Name = "optPreview"
Option2.FontBold = .F.
Option2.FontName = "MS Sans Serif"
Option2.FontSize = 8
Option2.BackStyle = 0
Option2.Caption = "Printer"
Option2.Value = 0
Option2.Height = 15
Option2.Left = 11
Option2.Top = 30
Option2.Width = 48
Option2.AutoSize = .T.
Option2.Name = "optPrinter"
Option3.FontBold = .F.
Option3.FontName = "MS Sans Serif"
Option3.FontSize = 8
Option3.BackStyle = 0
Option3.Caption = "File"
Option3.Value = 0
Option3.Height = 15
Option3.Left = 11
Option3.Top = 48
Option3.Width = 34
Option3.AutoSize = .T.
Option3.Name = "optFile"
Row or column position is off the screen.Cannprint_report.ommands are in effect.Compiled code for th���� ttB>%p���UT����a��UTHIS TMRSWATCHENABLEDT����-��UTHIS TMRSWATCHENABLED=T������T������T������
����UTHISNSECNMINNHOUR
UPDATEDISPLAY�T��CC��Z���T��CC��Z���T��CC��Z���-T����C���
��0���6��-T�� ��C���
��0���6��-T��
��C���
��0���6��UCSECDISPLAYTHISNSECCMINDISPLAYNMINCHOURDISPLAYNHOUR
LBLSECONDSCAPTION
LBLMINUTESLBLHOURS*
T�����
T�����
T�����UNMINNSECNHOURstart,��stop^��Reset���
updatedisplay���Init/��122�2AAA���3���2-Hd��
�N
i�)t�PROCEDURE Init
"' does not exist." + CHR(13) + CHR(13) + ;
"You must specify a valid report file to print in the cReport property of the form or passed in as a parameter."
LPARAMETERS cRepName
*!* If no parameters are passed in, the variables are automatically
*!* set to a logical .F. value.
IF TYPE("cRepName") = "C" THEN
*!* If a parameter is passed in, assume it is the report
*!* name and set the cReport property of the form to it.
THISFORM.cReport = cRepName
ENDIF
IF EMPTY(THISFORM.cReport) THEN
MESSAGEBOX(NO_REPORT_LOC)
RETURN .F.
ENDIF
IF !FILE(THISFORM.cReport) THEN
MESSAGEBOX(REPORT_NOT_FOUND_LOC)
RETURN .F.
ENDIF
ENDPROC
e error in GET statement.Command contains unrecognized �PROCEDURE Init
lOK = .T.
DO CASE
CASE EMPTY(THIS.lookup_table)
=MESSAGEBOX(NO_LOOKUP_TABLE_LOC,48)
lOK = .F.
CASE EMPTY(THIS.display_column)
=MESSAGEBOX(NO_DISPLAY_COLUMN_LOC,48)
lOK = .F.
CASE EMPTY(THIS.return_column)
=MESSAGEBOX(NO_RETURN_COLUMN_LOC,48)
lOK = .F.
ENDCASE
IF lOK THEN
IF !EMPTY(THIS.order_column)
nSQL = "SELECT " + THIS.display_column + "," + THIS.return_column + " FROM " + THIS.lookup_table + " ORDER BY " + THIS.order_column + " INTO CURSOR " + THIS.name
ELSE
nSQL = "SELECT " + THIS.display_column + "," + THIS.return_column + " FROM " + THIS.lookup_table + " INTO CURSOR " + THIS.name
ENDIF
THIS.RowSourceType = 3
THIS.RowSource = nSQL
THIS.BoundColumn = 2
ENDIF
THIS.Refresh
ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
DO CASE
CASE nError = 1806
=MESSAGEBOX(INVALID_COLUMN_LOC,48)
CASE nError = 1808
=MESSAGEBOX(INVALID_SORT_LOC,48)
CASE nError = 1802
=MESSAGEBOX(INVALID_TABLE_LOC,48)
OTHERWISE
=MESSAGEBOX(MESSAGE(),48)
ENDCASE
ENDPROC
PROCEDURE Destroy
cAlias = THIS.name
IF USED(cAlias) THEN
USE IN &cAlias
ENDIF
ENDPROC
Option1.Width = 80
Option1.AutoSize = .T.U��� <<�%%C��U���T��C�PX��T��C��C�>����T��C�����%�����c� B�����B�CC�C� ��`��UCMCICMD
CRETSTRING NRETVALUE
MCISENDSTRINGCERRTHISGETMCIERROR��������
T�����%�C�cErrorb�C��n�%�C��=�*ERROR*��j�T��CC��\g����%�C�cErrorb�N����
T������T��C�X����C��C�>���T������T������B�CC�C� ��`��UCERROR
LCERRORSTRINGNERRORCERRORSTRINGMCIGETERRORSTRINGTHISMCIERRORMCIERRORSTRING T������%�C������T������%�C������>��C�2No filename specified or control source specified!�x��B�����(cFileName = ALLTRIM(&cControlSource)
%�C������B���T������%�C�����T������T�������T�9�����
�true����!T� ��CLOSE �� WAIT����C� ��
���Gb(�C�Q�.\FOXTOOLS.FLL�����MainHWND���� _WhToHwnd����_WOnTop�T��C���T��CC�
���
T�����QT� ��OPEN "��" alias �� style child parent CC�Z�� WAIT����C� ��
��%����������C���x��T�9�����B����/T� ��status �� window handle wait��T��CCC� ��
g8��T������T������T�������T�������$��C����������(T� ��WINDOW �� state show����C� ��
���5��C�SET �� time format milliseconds��
��%���a����
�����T�9�����UCCONTROLSOURCETHIS
CONTROLSOURCE CFILENAME VIDEOFILECALIASMCIALIASNAMEMOUSEPOINTERCCMDDOMCIMAINHWND _WHTOHWND_WONTOP MAIN_HWND
CUR_WINDOWNULLPOINTERMCIERRORMCIERRORSTRINGHWINX1POSLEFTY1POSTOPX2POSWIDTHY2POSHEIGHTSETWINDOWPOSAUTOPLAY PLAYVIDEOT������,T��CC�STATUS �� length��g��.T��CC�STATUS �� position��g��%�������+��C�SEEK �� to start WAIT�������C�PLAY �����%��������
�����%���a��
�T�� �
��d���UCALIASTHISMCIALIASNMEDIALENGTHDOMCINMEDIAPOSITIONMCIERRORSHOWMCIERROR
AUTOREPEATTMRCHECKMODEINTERVAL�T������3%�C�STATUS �� mode���playing������C�PAUSE �����%������{�
�����%���a����T���������U CALIASTHISMCIALIASDOMCIMCIERRORSHOWMCIERROR
AUTOREPEATTMRCHECKMODEINTERVAL!��CC��Z�: ���x��UTHISMCIERRORMCIERRORSTRING�&T���STATUS ��� READY��%�C����true����$T���CLOSE ��� WAIT����C�����%��������
�����%���a����T���������U CCMDTHISMCIALIASDOMCIMCIERRORSHOWMCIERROR
AUTOREPEATTMRCHECKMODEINTERVALg4��T������(%�C�f�START�
C�f�END��S�T���to ������T��C�g��%�C����}�B����,T��CC�STATUS �� length��g��%���
����B����T���to C�Z�����
����UTHIS
CLOSEVIDEO�*|��
mciSendString� WinMM.DLL�����,|��mciGetErrorString� WINMM.DLL����+|��SetWindowPos�User32��������U
MCISENDSTRINGWINMMDLLMCIGETERRORSTRINGSETWINDOWPOSUSER32
�����UTHISAUTOOPEN OPENVIDEO������
H���%������ openvideo ��m�,��C� Invalid controlSource specified.�x��2��
������UNERRORCMETHODNLINEdomci,��getmcierror��� openvideoW�� playvideo���
pausevideo ��showmcierror)
��
closevideon
��setposition���DestroyR
��Initu
��RefreshA��Error���1q��R�AR3q����AAA��AqR3���AA���AAA�A�3�A���
m��
1Q�
f�_���jS�lt��x�������������+)<
��� � � �M%UZ G��Uh%�����C�%��C�INITIALIZE_AND_ADJUST����T���-���a���C�ADJUST�����UTHIS
INITIALRESIZELOOPTHROUGHCONTROLS���T��C������&T���������������&T���������������&T���������������&T����������� ����ET���������CC�oControl.FontSizeb�U�����
6������������UOCONTROLNLENTHIS
ACONTROLSTATSTOPINITIALFORMHEIGHTLEFTINITIALFORMWIDTHHEIGHTWIDTHFONTSIZE�����"T�����C������"T�����C������"T�����C������$%��� �Textbox Spinner
����"T�����C�������U
OCONTROLNPOSTOPTHISFORMHEIGHTTHIS
ACONTROLSTATSLEFTWIDTH BASECLASS����T��C�f��T��C�DECIMALv��G
(����
T�����T���a����
����(�����~�T��C�
������%��� �pCommandbutton Combobox Checkbox Listbox Form Grid Textbox Label Shape Editbox Olecontrol Pageframe Image Spinner����T������
H�'���&���INITIALIZE_AND_ADJUST��s���C��
�����C���
������ADJUST������C���
�����'%�C�
���� � Pageframe��z�&��
�
���(�C�
������v�!��C�
�
C�
������r���
����(�����n��%�C�
���� �pCommandbutton Combobox Checkbox Listbox Form Grid Textbox Label Shape Editbox Olecontrol Pageframe Image Spinner��j�T������
H���f�&���INITIALIZE_AND_ADJUST��3���CC�
����
�����CC�
�����
������ADJUST��f���CC�
�����
��������������T���-��G
(����UCTASKNOLDDECIMALNPOSTHISFORM
LOCKSCREENICONTROLCOUNTOCONTROLCONTROLS BASECLASSTHIS
ADDTOARRAYSETSIZEJ PAGECOUNTPAGESK)T�������T�������UTHISINITIALFORMHEIGHTTHISFORMHEIGHTINITIALFORMWIDTHWIDTH'T���a�����������UTHIS
INITIALRESIZE
ACONTROLSTATSadjustcontrols,��
addtoarray���setsizeJ��loopthroughcontrols`��Init���reset��1Q��aA2qQaaaaQ�3�!!!A!A;q�b����qA�aQqQAArb���a��q�AAAAAAA��2112�a1��� ���M
&Ah
�
XD�
\)� �PROCEDURE parsecondition
LPARAMETERS cCondition, cControlSource
LOCAL lcRetCondition, lcFieldName
IF TYPE('cCondition') = 'C'
cCondition = ALLTRIM(cCondition)
ENDIF
lcFieldName = SUBSTRC(cControlSource,(RATC(".",cControlSource)+1))
*!* NOTE: If you add a checkbox, radio button, or command group to
*!* the form, this routine will need to be changed to handle that
*!* specific datatype.
IF !EMPTY(cCondition) THEN
*!* If the type is Character or Memo, check to see if the
*!* user has entered a complex condition (if so, take that
*!* condition literally without any manipulation
IF TYPE('cCondition')$ "CM"
IF ("<" $ cCondition OR ;
"==" $ cCondition OR ;
"LIKE" $ cCondition OR ;
"<>" $ cCondition OR ;
"!=" $ cCondition OR ;
"#" $ cCondition OR ;
"=" $ cCondition OR ;
">" $ cCondition)
lcRetCondition = lcFieldName + cCondition
ENDIF
ENDIF
*!* If a complex condition wasn't found above (lcRetCondition will be empty)
*!* Then we need to create the WHERE condition ourselves
IF EMPTY(lcRetCondition)
*!* The RATC() Functions figure out the column to compare based on the
*!* controlSource of the control and any delimiters needed for the
*!* datatype are added around the values (not all conditions are
*!* assumed to be = when we construct them ourselves
DO CASE
CASE TYPE(cControlSource) $ "CM"
lcRetCondition = lcFieldName + " = " + CHR(34) + cCondition + CHR(34)
CASE TYPE(cControlSource) $ "DT"
lcRetCondition = lcFieldName + " = {" + DTOC(cCondition) + "}"
OTHERWISE
lcRetCondition = lcFieldName + " = " + STR(cCondition)
ENDCASE
ENDIF
ELSE
lcRetCondition = ""
ENDIF
RETURN lcRetCondition
ENDPROC
���������������������������������