vdfsplat / AppSrc / ObjectInspector.dg @ 67
History | View | Annotate | Download (92.4 KB)
1 | 19 | wil | Use Windows |
---|---|---|---|
2 | Use DfError |
||
3 | Use MsgBox |
||
4 | Use DfTreeVw |
||
5 | Use DfSpnFrm |
||
6 | Use File_Dlg |
||
7 | Use Seq_Chnl |
||
8 | Use DfTimer |
||
9 | Use DfOtPanl // TopMostMixin class |
||
10 | Use cOutputWindow.pkg // include getclassname declaration |
||
11 | Use cWorkingPanel.pkg |
||
12 | 20 | wil | Use cProgramObjects.pkg |
13 | 22 | wil | Use cImageList32.pkg |
14 | 38 | wil | Use cCJGrid.pkg |
15 | 49 | wil | Use cReadOnlyCheckbox.pkg |
16 | 38 | wil | Use Windows.pkg |
17 | 19 | wil | |
18 | 25 | wil | Define CS_CRLF For (Character(13)+Character(10)) |
19 | |||
20 | |||
21 | 38 | wil | Struct tFieldOptions |
22 | 39 | wil | Boolean bAutoFind |
23 | Boolean bAutofindGE |
||
24 | Boolean bCapsLock |
||
25 | Boolean bCommit |
||
26 | Boolean bForcePut |
||
27 | Boolean bNoEnter |
||
28 | Boolean bNoPut |
||
29 | Boolean bDisplayOnly |
||
30 | Boolean bZeroSuppress |
||
31 | Boolean bRequired |
||
32 | Boolean bFindReq |
||
33 | Boolean bRetain |
||
34 | Boolean bRetainAll |
||
35 | Boolean bSkipFound |
||
36 | 40 | wil | Boolean bKeyField |
37 | 38 | wil | End_Struct |
38 | |||
39 | 45 | wil | Struct tForeignFieldOptions |
40 | Boolean bAllowNewSave |
||
41 | 50 | wil | Boolean bReadOnly |
42 | 45 | wil | tFieldOptions ddDefault |
43 | tFieldOptions ddIndex |
||
44 | tFieldOptions ddKey |
||
45 | End_Struct |
||
46 | |||
47 | 39 | wil | Struct tColumn |
48 | Integer iNr |
||
49 | String sName |
||
50 | Integer eDfType |
||
51 | Integer iLength |
||
52 | Integer iPrecision |
||
53 | Boolean bChanged |
||
54 | String sDDValue |
||
55 | String sRBValue |
||
56 | 40 | wil | Integer iMainIndex |
57 | 39 | wil | End_Struct |
58 | 38 | wil | |
59 | 40 | wil | Struct tServer |
60 | Handle hoDD |
||
61 | Integer iFile |
||
62 | String sName |
||
63 | 49 | wil | Boolean bNullAllowed |
64 | Boolean bNoSwitch |
||
65 | 40 | wil | End_Struct |
66 | |||
67 | Struct tClient |
||
68 | Handle hoDD |
||
69 | Integer iFile |
||
70 | String sName |
||
71 | End_Struct |
||
72 | |||
73 | 39 | wil | Struct tTable |
74 | Integer iNr |
||
75 | String sName |
||
76 | Boolean bChangedState |
||
77 | Boolean bShouldSave |
||
78 | 40 | wil | Boolean bInUse |
79 | Boolean bAutoFill |
||
80 | 42 | wil | Boolean bFillFromFirst |
81 | 49 | wil | Boolean bProtectKey |
82 | Boolean bReadOnly |
||
83 | Boolean bCascadeDelete |
||
84 | Boolean bNoDelete |
||
85 | Boolean bNoCascadeDeleteStrict |
||
86 | Boolean bNoRelate |
||
87 | Boolean bParentChanged |
||
88 | Boolean bInheritConstraints |
||
89 | Boolean bUseDDRelates |
||
90 | 42 | wil | Integer iOrdering |
91 | 45 | wil | tForeignFieldOptions Foreign |
92 | 39 | wil | tColumn[] Columns |
93 | 40 | wil | tServer[] Servers |
94 | tClient[] Clients |
||
95 | 39 | wil | End_Struct |
96 | |||
97 | |||
98 | 19 | wil | Class ObjectTreeView Is A TreeView |
99 | |||
100 | Procedure Private_VScroll |
||
101 | End_Procedure // |
||
102 | |||
103 | Procedure Private_MouseWheel |
||
104 | End_Procedure // |
||
105 | |||
106 | Function Child_Object_Name Handle hoChild Returns String |
||
107 | String sChildName |
||
108 | |||
109 | Get ShortName of oProgram hoChild To sChildName |
||
110 | Move (sChildName+", id=("+trim(hoChild)+")") to sChildName |
||
111 | Function_Return sChildName |
||
112 | End_Function |
||
113 | |||
114 | |||
115 | Procedure AddChildren Integer hoRoot Handle hRoot Integer hoTarget |
||
116 | Integer iChildren iChild |
||
117 | String sChildName |
||
118 | Handle hChild hoPrevChild hoChild |
||
119 | String sClassname |
||
120 | Integer iImage |
||
121 | Integer iItemData |
||
122 | 20 | wil | Boolean bClientArea |
123 | 19 | wil | |
124 | Move -1 to hoChild |
||
125 | If hoRoot Ne 0 Begin |
||
126 | Get ChildCount Of oProgram hoRoot To iChildren |
||
127 | |||
128 | For iChild From 1 To iChildren |
||
129 | |||
130 | If (hoChild=-1) Begin |
||
131 | Get FirstChild Of oProgram hoRoot To hoChild |
||
132 | End |
||
133 | Else Begin |
||
134 | If (hoChild>0) Begin |
||
135 | Move hoChild To hoPrevChild |
||
136 | 29 | wil | //Get NextChild Of oProgram hoRoot hoPrevChild To hoChild |
137 | Get NextChild Of oProgram hoPrevChild To hoChild |
||
138 | 19 | wil | If (hoChild=hoPrevChild) Begin |
139 | Move 0 To hoChild |
||
140 | End |
||
141 | End // hoChild |
||
142 | End |
||
143 | |||
144 | |||
145 | If (hoChild > 0) Begin |
||
146 | Get Child_Object_Name hoChild to sChildName |
||
147 | Get xBitmapIDForObj of oProgram hoChild To iImage |
||
148 | 20 | wil | Get Debuggee_Client_Area_State of oProgram hoChild to bClientArea |
149 | If (bClientArea) Begin |
||
150 | 19 | wil | Move (tvPDSClient * 65536 + hoChild) To iItemData |
151 | End |
||
152 | Else Begin |
||
153 | Move (tvPDSNormal * 65536 + hoChild) To iItemData |
||
154 | End |
||
155 | Get AddTreeItem sChildName hRoot iItemData iImage iImage To hChild |
||
156 | Send AddChildren hoChild hChild hoTarget |
||
157 | 37 | wil | If (hoChild = hoTarget) Begin |
158 | Set CurrentTreeItem To hChild |
||
159 | Set ItemBold hChild To True // Object equal to Self is in Bold |
||
160 | End |
||
161 | 19 | wil | End |
162 | Loop |
||
163 | End |
||
164 | End_Procedure // AddChildren |
||
165 | |||
166 | |||
167 | Procedure AddDesktopChildren Handle hRoot Integer hoCurrentDesktopBranch Integer hoTarget |
||
168 | Integer iChildren hoChild iChild |
||
169 | 25 | wil | Integer iChildCount |
170 | 19 | wil | String sChildName |
171 | 25 | wil | Boolean bClientArea |
172 | 19 | wil | Handle hChild hoPrevChild |
173 | |||
174 | Get ChildCount of oProgram Desktop to iChildren |
||
175 | Move -1 to hoChild |
||
176 | For iChild From 1 To iChildren |
||
177 | |||
178 | If (hoChild=-1) Begin // **WvA |
||
179 | Get FirstChild Of oProgram Desktop To hoChild |
||
180 | End |
||
181 | Else Begin |
||
182 | If (hoChild>0) Begin |
||
183 | Move hoChild To hoPrevChild |
||
184 | 29 | wil | //Get NextChild Of oProgram Desktop hoPrevChild To hoChild |
185 | Get NextChild Of oProgram hoPrevChild To hoChild |
||
186 | 19 | wil | End |
187 | End |
||
188 | If (hoChild > 0) Begin |
||
189 | Get Child_Object_Name hoChild to sChildName |
||
190 | 25 | wil | Get PropertyBooleanEval of oProgram "Client_Area_State" hoChild To bClientArea |
191 | If (bClientArea) Begin |
||
192 | 19 | wil | Get AddTreeItem sChildName hRoot (tvPDSClient * 65536 + hoChild) bmpPDSClient bmpPDSClient to hChild |
193 | End |
||
194 | Else Begin |
||
195 | Get AddTreeItem sChildName hRoot (tvPDSNormal * 65536 + hoChild) bmpPDSNormal bmpPDSNormal to hChild |
||
196 | End |
||
197 | If hoChild Eq hoCurrentDesktopBranch Begin |
||
198 | Send AddChildren hoChild hChild hoTarget |
||
199 | Send DoExpandItem hChild |
||
200 | End |
||
201 | Else Begin |
||
202 | 25 | wil | If (hoChild=hoTarget) Set CurrentTreeItem to hChild |
203 | Get ChildCount of oProgram hoChild to iChildCount |
||
204 | If (iChildCount>0) Set ItemChildCount hChild to 1 |
||
205 | 19 | wil | End |
206 | End |
||
207 | Loop |
||
208 | End_Procedure // AddDesktopChildren |
||
209 | |||
210 | //**************************************************************************** |
||
211 | // $Module type: PROCEDURE |
||
212 | // $Module name: OnItemChanged |
||
213 | // $Author : VOO |
||
214 | // Created : 23/12/96 @ 10:37 |
||
215 | // |
||
216 | // Description |
||
217 | // This method will allow us to change the current target object |
||
218 | // |
||
219 | // $Rev History |
||
220 | // 23/12/96 Module header created |
||
221 | //**************************************************************************** |
||
222 | Procedure OnItemChanged Handle hItem Handle hItemOld |
||
223 | 29 | wil | Integer iData |
224 | Handle hoNewTarget |
||
225 | 19 | wil | |
226 | Get ItemData hItem To iData |
||
227 | 24 | wil | Move (Low (iData)) To hoNewTarget |
228 | 19 | wil | Delegate Set phoTarget To hoNewTarget |
229 | 29 | wil | Delegate Send DisplayCurrentObjectDetails |
230 | 19 | wil | End_Procedure // OnItemChanged |
231 | |||
232 | //**************************************************************************** |
||
233 | // $Module type: PROCEDURE |
||
234 | // $Module name: OnItemExpanding |
||
235 | // $Author : VOO |
||
236 | // Created : 22/12/96 @ 16:09 |
||
237 | // |
||
238 | // Description |
||
239 | // This method is used when the [+] in front of an item is clicked |
||
240 | // |
||
241 | // $Rev History |
||
242 | // 22/12/96 Module header created |
||
243 | //**************************************************************************** |
||
244 | Procedure OnItemExpanding Handle hItem |
||
245 | Integer bExpanded iData hoChild |
||
246 | Handle hChild |
||
247 | |||
248 | Get ItemExpandedState hItem To bExpanded |
||
249 | 24 | wil | If (bExpanded=False) Begin |
250 | 19 | wil | Get ChildItem hItem To hChild |
251 | 24 | wil | If (hChild=0) Begin |
252 | 19 | wil | Get ItemData hItem To iData |
253 | 24 | wil | Move (Low (iData)) To hoChild |
254 | 19 | wil | Send AddChildren hoChild hItem 0 |
255 | End |
||
256 | End |
||
257 | End_Procedure // OnItemExpanding |
||
258 | |||
259 | //**************************************************************************** |
||
260 | // $Module type: PROCEDURE |
||
261 | // $Module name: Error_Report |
||
262 | // $Author : VOO |
||
263 | // Created : 23/12/96 @ 12:06 |
||
264 | // |
||
265 | // Description |
||
266 | // Cancelled method. |
||
267 | // |
||
268 | // $Rev History |
||
269 | // 23/12/96 Module header created |
||
270 | //**************************************************************************** |
||
271 | Procedure Error_Report |
||
272 | End_Procedure // Error_Report |
||
273 | |||
274 | 37 | wil | Procedure OnGetInfoTip Handle hItem String ByRef sInfoTip |
275 | 38 | wil | Boolean bBold |
276 | String sVal |
||
277 | String sSelected |
||
278 | 37 | wil | |
279 | Get ItemLabel hItem to sVal |
||
280 | 38 | wil | Get ItemBold hItem To bBold |
281 | If (bBold) Move "<- has focus" To sSelected |
||
282 | Else Move "" To sSelected |
||
283 | Move ("Object with (object id):" * sVal * sSelected) to sInfoTip |
||
284 | 37 | wil | End_Procedure |
285 | |||
286 | |||
287 | 19 | wil | //**************************************************************************** |
288 | // $Module type: PROCEDURE |
||
289 | // $Module name: OnCreateTree |
||
290 | // $Author : VINCENT |
||
291 | // Created : 18-12-96 @ 15:49 |
||
292 | // |
||
293 | // Description |
||
294 | // |
||
295 | // $Rev History |
||
296 | // 18-12-96 VINCENT Module header created |
||
297 | //**************************************************************************** |
||
298 | Procedure OnCreateTree |
||
299 | 37 | wil | Handle hRoot |
300 | Handle hoTarget |
||
301 | Handle hoLastChild |
||
302 | Handle hoOldErrorBox |
||
303 | |||
304 | 24 | wil | Move Error_Object_Id To hoOldErrorBox |
305 | 38 | wil | Move Self To Error_Object_Id |
306 | 19 | wil | |
307 | Delegate Get phoTarget To hoTarget |
||
308 | |||
309 | While hoTarget Gt Desktop |
||
310 | 25 | wil | Move hoTarget To hoLastChild |
311 | Get PropertyHandleEval of oProgram "Parent" hoTarget To hoTarget |
||
312 | 19 | wil | End |
313 | |||
314 | Get AddTreeItem 'Desktop' 0 (tvPDSRoot * 65536 + Desktop) bmpPDSRoot bmpPDSRoot To hRoot |
||
315 | |||
316 | Delegate Get phoTarget To hoTarget |
||
317 | Send AddDesktopChildren hRoot hoLastChild hoTarget |
||
318 | |||
319 | 24 | wil | Move hoOldErrorBox To Error_Object_Id |
320 | 19 | wil | |
321 | Send DoExpandItem hRoot |
||
322 | End_Procedure // OnCreateTree |
||
323 | |||
324 | 31 | wil | //// **WvA |
325 | //Procedure OnResize |
||
326 | // Integer hoPanel |
||
327 | // Integer hoSelf |
||
328 | // Integer iPy iPy1 |
||
329 | // Integer iPx iPx1 |
||
330 | // Integer iPxy iPxy1 |
||
331 | // |
||
332 | // Forward Send OnResize |
||
333 | // Get Main_Panel_Id To hoPanel |
||
334 | // Move Self To hoSelf |
||
335 | // If (hoSelf<>0) Begin |
||
336 | // Get GuiLocation To iPxy |
||
337 | // Move (Hi(iPxy)) To iPy |
||
338 | // Move (Low(iPxy)) To iPx |
||
339 | // |
||
340 | // Move (iPy+ hi(GuiSize(hoSelf))+3) To iPy1 |
||
341 | // If (hoPanel <> 0) Begin |
||
342 | // |
||
343 | // Set GuiSize To (Hi(Client_Size(hoPanel))-iPy-10) (Low(GUISize(hoPanel))-iPx-10) |
||
344 | // //Set GuiLocation To iPy iPx |
||
345 | // Send Adjust_Logicals |
||
346 | // End |
||
347 | // End |
||
348 | //End_Procedure // OnResize |
||
349 | 19 | wil | |
350 | End_Class // ObjectTreeView |
||
351 | |||
352 | |||
353 | |||
354 | 40 | wil | Class cObjectInspector Is A ModalPanel//ToolPanel |
355 | 19 | wil | |
356 | Procedure Construct_Object |
||
357 | 40 | wil | //Integer hoCurrent |
358 | //Integer hoSelf |
||
359 | 19 | wil | |
360 | Forward Send Construct_Object |
||
361 | |||
362 | 29 | wil | Set Border_Style To Border_Thick |
363 | 40 | wil | //Set Caption_Bar To True |
364 | //Set Sysmenu_Icon To True |
||
365 | //Set Modal_State To True |
||
366 | 29 | wil | Set Locate_mode To Center_on_screen |
367 | 19 | wil | |
368 | On_Key Kcancel Send Close_Panel |
||
369 | |||
370 | Property Integer phoTarget Public |
||
371 | 40 | wil | //Property Integer pbIsResizing False |
372 | 19 | wil | Property Integer Main_Panel_Id 0 |
373 | |||
374 | 20 | wil | Object oProgram is a cProgramObjects |
375 | 19 | wil | End_Object |
376 | |||
377 | 29 | wil | Set Main_Panel_Id To Self |
378 | 19 | wil | End_Procedure // Construct_Object |
379 | |||
380 | |||
381 | 29 | wil | Procedure DisplayCurrentObjectDetails |
382 | 38 | wil | Send DisplayObjectDetails To oDetailsGroup |
383 | 29 | wil | End_Procedure |
384 | 19 | wil | |
385 | Function Debuggee_Focus_Object Returns Handle |
||
386 | String sResult |
||
387 | Handle hObjectID |
||
388 | Handle hoDebugger |
||
389 | Boolean bOK |
||
390 | |||
391 | Move 0 To hObjectID |
||
392 | Get phoDebugger To hoDebugger |
||
393 | If (hoDebugger) Begin |
||
394 | Move "" To sResult |
||
395 | Get ComEval of hoDebugger ("focus(desktop)") (&sResult) to bOK |
||
396 | If (bOk) begin |
||
397 | Move (sResult) To hObjectID |
||
398 | End |
||
399 | End |
||
400 | Function_Return hObjectID |
||
401 | End_Function // |
||
402 | |||
403 | Procedure ActivateObjectInspectorPanel |
||
404 | Integer hoFocus |
||
405 | Handle hoPopup |
||
406 | |||
407 | Get Debuggee_Focus_Object To hoFocus |
||
408 | Set phoTarget To hoFocus |
||
409 | |||
410 | // Show a "working" panel if this is called from within a GUI |
||
411 | Get Create U_cWorkingPanel To hoPopup |
||
412 | If (hoPopup) Begin |
||
413 | Send Show Of hoPopup "Please hold on.. " "The program is busy enumerating all objects in the running application." |
||
414 | End |
||
415 | Send Cursor_Wait of Cursor_Control |
||
416 | |||
417 | Send CreateObjectArray of oProgram |
||
418 | |||
419 | Send Cursor_Ready of Cursor_Control |
||
420 | If (hoPopup) begin |
||
421 | Send Hide Of hoPopup |
||
422 | Send Destroy of hoPopup |
||
423 | End |
||
424 | |||
425 | Send Popup_Modal |
||
426 | 29 | wil | Send DisplayCurrentObjectDetails |
427 | 19 | wil | End_Procedure // ActivateObjectInspectorPanel |
428 | |||
429 | 31 | wil | //// **WvA |
430 | //Procedure OnResize |
||
431 | // //If BuildingObjectID Ne 0 Begin |
||
432 | // // Forward Send OnResize |
||
433 | // If ((active_State(Self)) And (pbIsResizing(Self)=False)) Begin |
||
434 | // Set pbIsResizing To True |
||
435 | // Send OnResize Of ObjectTree |
||
436 | // Set pbIsResizing To False |
||
437 | // End |
||
438 | //End_Procedure // OnResize |
||
439 | 19 | wil | |
440 | |||
441 | End_Class // cObjectInspector |
||
442 | |||
443 | |||
444 | Object oObjectInspectorPanel Is A cObjectInspector |
||
445 | 38 | wil | Set Size To 220 545 |
446 | Set Location To 28 4 |
||
447 | Set Label To "Object Inspector" |
||
448 | 19 | wil | |
449 | 38 | wil | Object ObjectTree Is A ObjectTreeView |
450 | Set Size To 200 260 |
||
451 | Set Location To 10 3 |
||
452 | Set Label To 'Runtime application objects' |
||
453 | Set Label_Justification_Mode To jMode_Top |
||
454 | Set Label_Col_Offset To 1 |
||
455 | Set peAnchors To anTopBottomLeft |
||
456 | |||
457 | |||
458 | Object oObjectTreeBitmaps is an cImageList32 |
||
459 | Set piImageHeight to 16 |
||
460 | Set piImageWidth to 16 |
||
461 | 25 | wil | |
462 | 38 | wil | Procedure OnCreate |
463 | Integer iImg |
||
464 | |||
465 | Get AddImage 'Desktop.bmp' to iImg // Rootobject bitmap |
||
466 | Get AddImage 'AbView.bmp' to iImg // Clientobject bitmap |
||
467 | Get AddImage 'AbConPal.bmp' to iImg // Normalobject bitmap |
||
468 | |||
469 | Get AddImage 'ttbitmap16.bmp' to iImg // bmpPDSBitmap |
||
470 | Get AddImage 'ttchkbox16.bmp' to iImg // bmpPDSCheckbox |
||
471 | Get AddImage 'ttcombo16.bmp' to iImg // bmpPDSCombo |
||
472 | Get AddImage 'ttcontainer16.bmp' to iImg // bmpPDSContainer |
||
473 | Get AddImage 'ttedit16.bmp' to iImg // bmpPDSEdit |
||
474 | Get AddImage 'ttf_sellst16.bmp' to iImg // bmpPDSSellist |
||
475 | Get AddImage 'ttform16.bmp' to iImg // bmpPDSForm |
||
476 | Get AddImage 'ttgrid16.bmp' to iImg // bmpPDSGrid |
||
477 | Get AddImage 'ttgroup16.bmp' to iImg // bmpPDSGroup |
||
478 | Get AddImage 'ttlist16.bmp' to iImg // bmpPDSList |
||
479 | Get AddImage 'ttmodalpanel16.bmp' to iImg // bmpPDSModalPanel |
||
480 | Get AddImage 'ttradio16.bmp' to iImg // bmpPDSRadio |
||
481 | Get AddImage 'ttspin16.bmp' to iImg // bmpPDSSpin |
||
482 | Get AddImage 'tttab16.bmp' to iImg // bmpPDSTabpage |
||
483 | Get AddImage 'tttabdlg16.bmp' to iImg // bmpPDSTabDialog |
||
484 | Get AddImage 'tttextbox16.bmp' to iImg // bmpPDSTextbox |
||
485 | Get AddImage 'tttrack16.bmp' to iImg // bmpPDSTrack |
||
486 | Get AddImage 'tttreeview16.bmp' to iImg // bmpPDSTreeview |
||
487 | Get AddImage 'ttview16.bmp' to iImg // bmpPDSView |
||
488 | Get AddImage 'ttradiogroup16.bmp' to iImg // bmpPDSRadioGroup |
||
489 | Get AddImage 'ttmenu16.bmp' to iImg // bmpPDSMenu |
||
490 | Get AddImage 'ttbutton16.bmp' to iImg // bmpPDSButton |
||
491 | Get AddImage 'ttobject16.bmp' to iImg // bmpPDSActiveX |
||
492 | End_Procedure |
||
493 | |||
494 | End_Object // ObjectIdBitmaps |
||
495 | |||
496 | Set ImageListObject To (oObjectTreeBitmaps(Self)) |
||
497 | Set TreeRootLinesState To False |
||
498 | Set pbEnableInfoTips To True |
||
499 | End_Object // ObjectTree |
||
500 | |||
501 | Object oDetailsGroup Is A Group |
||
502 | Set Label To "Details" |
||
503 | Set Size to 204 274 |
||
504 | Set Location To 6 266 |
||
505 | Set peAnchors To anAll |
||
506 | |||
507 | Function ComplexToString Integer ciValue Returns String |
||
508 | Function_Return (String (Hi (ciValue)) - ',' - String (Low (ciValue))) |
||
509 | End_Function // ComplexToString |
||
510 | |||
511 | Function BooleanToString Boolean bValue Returns String |
||
512 | String sValue |
||
513 | If (bValue) Move "True" To sValue |
||
514 | Else Move "False" To sValue |
||
515 | Function_Return sValue |
||
516 | End_Function |
||
517 | |||
518 | Function AnchorsToString Integer eAnchors Returns String |
||
519 | String sAnchors |
||
520 | 34 | wil | |
521 | 38 | wil | Move "unknown" to sAnchors |
522 | Case Begin |
||
523 | Case (eAnchors= anNone) |
||
524 | Move "anNone" To sAnchors |
||
525 | Case Break |
||
526 | Case (eAnchors= anAll) |
||
527 | Move "anAll" To sAnchors |
||
528 | Case Break |
||
529 | Case (eAnchors= anBottomLeft) |
||
530 | Move "anBottomLeft" To sAnchors |
||
531 | Case Break |
||
532 | Case (eAnchors= anBottomLeftRight) |
||
533 | Move "anBottomLeftRight" To sAnchors |
||
534 | Case Break |
||
535 | Case (eAnchors= anBottomRight) |
||
536 | Move "anBottomRight" To sAnchors |
||
537 | Case Break |
||
538 | Case (eAnchors= anTopBottomLeft) |
||
539 | Move "anTopBottomLeft" To sAnchors |
||
540 | Case Break |
||
541 | Case (eAnchors= anTopBottomRight) |
||
542 | Move "anTopBottomRight" To sAnchors |
||
543 | Case Break |
||
544 | Case (eAnchors= anTopLeftRight) |
||
545 | Move "anTopLeftRight" To sAnchors |
||
546 | Case Break |
||
547 | Case (eAnchors= anTopRight) |
||
548 | Move "anTopRight" To sAnchors |
||
549 | Case Break |
||
550 | Case (eAnchors= anTopLeft) |
||
551 | Move "anTopLeft" To sAnchors |
||
552 | Case Break |
||
553 | Case End |
||
554 | Function_Return sAnchors |
||
555 | End_Function |
||
556 | |||
557 | Function BorderStyleToString Integer eStyle Returns String |
||
558 | String sStyle |
||
559 | 34 | wil | |
560 | 38 | wil | Move "unknown" to sStyle |
561 | Case Begin |
||
562 | Case (eStyle=Border_None) |
||
563 | Move "Border_None" To sStyle |
||
564 | Case Break |
||
565 | Case (eStyle=Border_Dialog) |
||
566 | Move "Border_Dialog" To sStyle |
||
567 | Case Break |
||
568 | Case (eStyle=Border_Normal) |
||
569 | Move "Border_Normal" To sStyle |
||
570 | Case Break |
||
571 | Case (eStyle=Border_Thick) |
||
572 | Move "Border_Thick" To sStyle |
||
573 | Case Break |
||
574 | Case (eStyle=Border_ClientEdge) |
||
575 | Move "Border_ClientEdge" To sStyle |
||
576 | Case Break |
||
577 | Case (eStyle=Border_StaticEdge) |
||
578 | Move "Border_StaticEdge" To sStyle |
||
579 | Case Break |
||
580 | Case (eStyle=Border_WindowEdge) |
||
581 | Move "Border_WindowEdge" To sStyle |
||
582 | Case Break |
||
583 | Case End |
||
584 | Function_Return sStyle |
||
585 | End_Function |
||
586 | |||
587 | Function JustificationModeToString Integer eMode Returns String |
||
588 | String sMode |
||
589 | 34 | wil | |
590 | 38 | wil | Move "unknown" To sMode |
591 | Case Begin |
||
592 | Case (eMode=jmode_top) |
||
593 | Move "jmode_top" to sMode |
||
594 | Case break |
||
595 | Case (eMode=jmode_left) |
||
596 | Move "jmode_left" to sMode |
||
597 | Case break |
||
598 | Case (eMode=jmode_right) |
||
599 | Move "jmode_right" to sMode |
||
600 | Case break |
||
601 | Case End |
||
602 | Function_Return sMode |
||
603 | End_Function |
||
604 | 50 | wil | |
605 | |||
606 | Function TableName handle hoDD Integer iMainFile Returns String |
||
607 | Integer iRuntimeVersion |
||
608 | Integer iPos |
||
609 | Integer iField |
||
610 | String sValue |
||
611 | String sTableName |
||
612 | String sDDfileText |
||
613 | String sExtMess |
||
614 | Handle hoDebugger |
||
615 | |||
616 | Get phoDebugger To hoDebugger |
||
617 | If (hoDebugger) Begin |
||
618 | Get piRuntimeVersion of hoDebugger To iRuntimeVersion |
||
619 | If (iRuntimeVersion>=180) Begin |
||
620 | |||
621 | Get StringEval of oProgram ("ErrorMessageTableName("+trim(hoDD)+","+trim(iMainFile)+")") To sValue |
||
622 | Move sValue To sTableName |
||
623 | End |
||
624 | Else Begin |
||
625 | // Unfortunately before DF18.0 we don't have a clean function for getting the logic_file_name |
||
626 | // of the table, so we need to parse it out by hand. |
||
627 | //Move (DD_FILE_TEXT* string(iFile) * "-" * sFile) to sExtMess |
||
628 | Get StringEval of oProgram ("Current_Validate_Field("+trim(hoDD)+")") To iField |
||
629 | If (iField=0) Begin |
||
630 | Get StringEval of oProgram ("Extended_Error_Message("+trim(hoDD)+")") To sValue |
||
631 | Move (Pos("\n",sValue)) To iPos |
||
632 | If (iPos>0) Begin |
||
633 | Move (Left(sValue,iPos-1)) To sExtMess |
||
634 | End |
||
635 | Else Move sValue To sExtMess |
||
636 | Move (DD_FILE_TEXT* string(iMainFile) + " - ") To sDDfileText |
||
637 | Move (Replace(sDDfileText,sExtMess,"")) To sTableName |
||
638 | End |
||
639 | Else Begin |
||
640 | // ugh, we're in a validation can't use the above logic as it resets the current_validate_field |
||
641 | // property, and we've got to clean means to restore that. |
||
642 | // Let's fallback on something ugly, because without table name we're gonna get runtime errors. |
||
643 | Get ShortName Of oProgram hoDD To sValue |
||
644 | If (Pos("o",sValue)=1) Move (Replace("o",sValue,"")) To sValue |
||
645 | Move (Replace("_DD",sValue,"")) To sTableName |
||
646 | End |
||
647 | End |
||
648 | End |
||
649 | Function_Return sTableName |
||
650 | End_Function |
||
651 | 19 | wil | |
652 | 38 | wil | |
653 | |||
654 | Procedure DisplayObjectDetails |
||
655 | Handle hoTarget |
||
656 | Handle hoDD |
||
657 | Integer eWindowsClass |
||
658 | Integer iMainFile |
||
659 | Boolean bState |
||
660 | Boolean bIsDD |
||
661 | Boolean bIsDbView |
||
662 | Boolean bIsDeo |
||
663 | String sValue |
||
664 | String sLine |
||
665 | 19 | wil | |
666 | 38 | wil | Move False To bIsDD |
667 | Move False To bIsDbView |
||
668 | Move False To bIsDeo |
||
669 | 25 | wil | |
670 | 38 | wil | Get phoTarget To hoTarget |
671 | 25 | wil | |
672 | 38 | wil | Get ShortName of oProgram hoTarget To sValue |
673 | Set Value of oShortName To sValue |
||
674 | |||
675 | Get xBitmapIDForObj of oProgram hoTarget To eWindowsClass |
||
676 | 51 | wil | Get PropertyHandleEval of oProgram "Server" hoTarget to hoDD |
677 | If (hoDD=0 and eWindowsClass=bmpPDSModalPanel) Begin |
||
678 | Get PropertyHandleEval of oProgram "Main_DD" hoTarget to hoDD |
||
679 | End |
||
680 | If (hoDD and eWindowsClass<>bmpPDSView and eWindowsClass<>bmpPDSContainer and eWindowsClass<>bmpPDSModalPanel and eWindowsClass<>bmpPDSClient) Begin |
||
681 | 38 | wil | Move True To bIsDeo |
682 | End |
||
683 | 51 | wil | Else If (hoDD and (eWindowsClass=bmpPDSView or eWindowsClass=bmpPDSContainer or eWindowsClass=bmpPDSModalPanel or eWindowsClass=bmpPDSClient)) Begin |
684 | // view/container or datadictionary |
||
685 | 40 | wil | Get PropertyIntegerEval Of oProgram "Main_File" hoTarget To iMainFile |
686 | 38 | wil | If (iMainFile<>0) Begin |
687 | Move True To bIsDD |
||
688 | End |
||
689 | Else Begin |
||
690 | Move True To bIsDbView |
||
691 | End |
||
692 | End |
||
693 | |||
694 | 43 | wil | If (hoTarget>Desktop) Begin |
695 | Get PropertyBooleanEval of oProgram "Active_State" hoTarget To bState |
||
696 | Set Checked_State of oActiveState To bState |
||
697 | End |
||
698 | |||
699 | 38 | wil | If (bIsDD=false) Begin |
700 | 51 | wil | Set Visible_State of oDDGroup To False |
701 | Set Visible_State of oObjectDetailsEdit to True |
||
702 | Send DisplayObjectDetails of oObjectDetailsEdit |
||
703 | |||
704 | Get ObjectWindowsClassName of oProgram hoTarget to sValue |
||
705 | 38 | wil | Set Value Of oWindowsClass To sValue |
706 | End |
||
707 | 41 | wil | Else Begin |
708 | Set Value Of oWindowsClass To "" |
||
709 | End |
||
710 | 38 | wil | |
711 | If (bIsDeo) Begin |
||
712 | Send DisplayDeoDetails Of oObjectDetailsEdit hoDD |
||
713 | End |
||
714 | Else if (bIsDD) Begin |
||
715 | Set Visible_State of oObjectDetailsEdit To False |
||
716 | Set Visible_State of oDDGroup To True |
||
717 | Send DisplayDataDictionaryDetails of oDDGroup iMainFile |
||
718 | End |
||
719 | Else if (bIsDbView) Begin |
||
720 | Send DisplayViewDetails Of oObjectDetailsEdit |
||
721 | End |
||
722 | 51 | wil | Else Begin |
723 | // Not a DEO or DD or View |
||
724 | Send DisplayNonDeoDetails of oObjectDetailsEdit |
||
725 | End |
||
726 | 38 | wil | |
727 | End_Procedure |
||
728 | |||
729 | Object oShortName is a Form |
||
730 | Set Location To 8 60 |
||
731 | Set Size To 13 106 |
||
732 | Set Label To "Name:" |
||
733 | Set Label_Col_Offset to 2 |
||
734 | Set Label_Justification_Mode to jMode_Right |
||
735 | Set Enabled_State to False |
||
736 | End_Object |
||
737 | |||
738 | 49 | wil | Object oActiveState is a cReadOnlyCheckbox |
739 | 38 | wil | Set Location To 23 60 |
740 | 40 | wil | Set Size To 10 50 |
741 | Set Label To "Active State" |
||
742 | 38 | wil | End_Object |
743 | |||
744 | Object oWindowsClass is a Form |
||
745 | Set Location To 38 60 |
||
746 | Set Size To 13 106 |
||
747 | Set Label To "Windows Class:" |
||
748 | Set Label_Col_Offset to 2 |
||
749 | Set Label_Justification_Mode to jMode_Right |
||
750 | Set Enabled_State to False |
||
751 | End_Object |
||
752 | |||
753 | Object oDDGroup is a Group |
||
754 | Set Location To 53 3 |
||
755 | Set Size to 144 267 |
||
756 | Set Label To "DataDictionary" |
||
757 | Set peAnchors To anAll |
||
758 | |||
759 | Property Handle phoCurrentDD 0 |
||
760 | 39 | wil | Property tTable pTable |
761 | 38 | wil | |
762 | // |
||
763 | 45 | wil | // Returns field options |
764 | 38 | wil | // |
765 | Function DDFieldOption Handle hoDD Integer iField String sOption Returns Boolean |
||
766 | String sValue |
||
767 | Boolean bState |
||
768 | 19 | wil | |
769 | 38 | wil | Move False To bState |
770 | Get StringEval of oProgram ("Field_Option("+trim(hoDD)+","+trim(iField)+","+sOption+")") To sValue |
||
771 | If (sValue=True) Move True To bState // string evaluates to boolean |
||
772 | Function_Return bState |
||
773 | End_Function |
||
774 | 45 | wil | |
775 | // |
||
776 | // Returns foreign field options |
||
777 | // iField can also be: |
||
778 | // DD_Default, DD_IndexField, DD_KeyField as those are negative values, they do not collide |
||
779 | // with Fields |
||
780 | // |
||
781 | Function DDForeignFieldOption Handle hoDD Integer iField String sOption Returns Boolean |
||
782 | String sValue |
||
783 | Boolean bState |
||
784 | 49 | wil | Integer iRuntimeVersion |
785 | Integer iOption |
||
786 | Integer iOptions |
||
787 | Handle hoDebugger |
||
788 | 45 | wil | |
789 | 49 | wil | Get phoDebugger To hoDebugger |
790 | If (hoDebugger) Begin |
||
791 | Get piRuntimeVersion of hoDebugger To iRuntimeVersion |
||
792 | If (iRuntimeVersion>=141) Begin |
||
793 | Move False To bState |
||
794 | Get StringEval of oProgram ("Foreign_Field_Option("+trim(hoDD)+","+trim(iField)+","+sOption+")") To sValue |
||
795 | If (sValue=True) Move True To bState // string evaluates to boolean |
||
796 | End |
||
797 | Else Begin |
||
798 | Move False To bState |
||
799 | Get StringEval of oProgram ("Foreign_Field_Options("+trim(hoDD)+","+trim(iField)+")") To sValue |
||
800 | Move sValue To iOptions |
||
801 | Get FieldOptionStringToInteger sOption To iOption |
||
802 | If (iOption<>0) Begin |
||
803 | If ((iOptions iAnd iOption)=iOption) Begin |
||
804 | Move True To bState |
||
805 | End |
||
806 | End |
||
807 | End |
||
808 | End |
||
809 | 45 | wil | Function_Return bState |
810 | End_Function |
||
811 | 38 | wil | |
812 | 41 | wil | // Obsolete |
813 | 38 | wil | // Returns field options as a string |
814 | // |
||
815 | Function DDFieldOptionsToString Handle hoDD Integer iField Returns String |
||
816 | Boolean bState |
||
817 | String sOption |
||
818 | String sOptions |
||
819 | |||
820 | Move "" To sOptions |
||
821 | Move "DD_Autofind" To sOption |
||
822 | Get DDFieldOption hoDD iField sOption To bState |
||
823 | If (bState) Move (sOption+",") To sOptions |
||
824 | |||
825 | Move "DD_Autofind_GE" To sOption |
||
826 | Get DDFieldOption hoDD iField sOption To bState |
||
827 | If (bState) Move (sOptions+sOption+",") To sOptions |
||
828 | |||
829 | Move "DD_CapsLock" To sOption |
||
830 | Get DDFieldOption hoDD iField sOption To bState |
||
831 | If (bState) Move (sOptions+sOption+",") To sOptions |
||
832 | |||
833 | Move "DD_Commit" To sOption |
||
834 | Get DDFieldOption hoDD iField sOption To bState |
||
835 | If (bState) Move (sOptions+sOption+",") To sOptions |
||
836 | |||
837 | Move "DD_ForcePut" To sOption |
||
838 | Get DDFieldOption hoDD iField sOption To bState |
||
839 | If (bState) Move (sOptions+sOption+",") To sOptions |
||
840 | |||
841 | Move "DD_NoEnter" To sOption |
||
842 | Get DDFieldOption hoDD iField sOption To bState |
||
843 | If (bState) Move (sOptions+sOption+",") To sOptions |
||
844 | |||
845 | Move "DD_NoPut" To sOption |
||
846 | Get DDFieldOption hoDD iField sOption To bState |
||
847 | If (bState) Move (sOptions+sOption+",") To sOptions |
||
848 | |||
849 | // is noenter+noput |
||
850 | //Move "DD_DisplayOnly" To sOption |
||
851 | //Get DDFieldOption hoDD iField sOption To bState |
||
852 | //If (bState) Move (sOptions+","+sOption) To sOptions |
||
853 | |||
854 | Move "DD_Zero_Suppress" To sOption |
||
855 | Get DDFieldOption hoDD iField sOption To bState |
||
856 | If (bState) Move (sOptions+sOption+",") To sOptions |
||
857 | |||
858 | Move "DD_Required" To sOption |
||
859 | Get DDFieldOption hoDD iField sOption To bState |
||
860 | If (bState) Move (sOptions+sOption+",") To sOptions |
||
861 | |||
862 | Move "DD_FindReq" To sOption |
||
863 | Get DDFieldOption hoDD iField sOption To bState |
||
864 | If (bState) Move (sOptions+sOption+",") To sOptions |
||
865 | |||
866 | Move "DD_Retain" To sOption |
||
867 | Get DDFieldOption hoDD iField sOption To bState |
||
868 | If (bState) Move (sOptions+sOption+",") To sOptions |
||
869 | |||
870 | 49 | wil | Move "DD_RetainAll" To sOption |
871 | Get DDFieldOption hoDD iField sOption To bState |
||
872 | If (bState) Move (sOptions+","+sOption) To sOptions |
||
873 | 38 | wil | |
874 | Move "DD_SkipFound" To sOption |
||
875 | Get DDFieldOption hoDD iField sOption To bState |
||
876 | If (bState) Move (sOptions+sOption+",") To sOptions |
||
877 | |||
878 | If (sOptions<>"") Begin |
||
879 | Move (Replaces("DD_",sOptions," ")) To sOptions // DD_ in the name just takes up more space, replace by space character |
||
880 | Move (Left(sOptions,Length(sOptions)-1)) To sOptions // remove trailing comma |
||
881 | End |
||
882 | Function_Return sOptions |
||
883 | End_Function |
||
884 | |||
885 | 49 | wil | Function FieldOptionStringToInteger String sOption Returns Integer |
886 | Integer iOption |
||
887 | Move 0 To iOption |
||
888 | Case Begin |
||
889 | Case (sOption="DD_Autofind") |
||
890 | Move DD_Autofind To iOption |
||
891 | Case Break |
||
892 | Case (sOption="DD_Autofind_GE") |
||
893 | Move DD_Autofind_GE To iOption |
||
894 | Case Break |
||
895 | Case (sOption="DD_CapsLock") |
||
896 | Move DD_CapsLock To iOption |
||
897 | Case Break |
||
898 | Case (sOption="DD_Commit") |
||
899 | Move DD_Commit To iOption |
||
900 | Case Break |
||
901 | Case (sOption="DD_ForcePut") |
||
902 | Move DD_ForcePut To iOption |
||
903 | Case Break |
||
904 | Case (sOption="DD_NoEnter") |
||
905 | Move DD_NoEnter To iOption |
||
906 | Case Break |
||
907 | Case (sOption="DD_NoPut") |
||
908 | Move DD_NoPut To iOption |
||
909 | Case Break |
||
910 | Case (sOption="DD_DisplayOnly") |
||
911 | Move DD_DisplayOnly To iOption |
||
912 | Case Break |
||
913 | Case (sOption="DD_Zero_Suppress") |
||
914 | Move DD_Zero_Suppress To iOption |
||
915 | Case Break |
||
916 | Case (sOption="DD_Required") |
||
917 | Move DD_Required To iOption |
||
918 | Case Break |
||
919 | Case (sOption="DD_FindReq") |
||
920 | Move DD_FindReq To iOption |
||
921 | Case Break |
||
922 | Case (sOption="DD_Retain") |
||
923 | Move DD_Retain To iOption |
||
924 | Case Break |
||
925 | Case (sOption="DD_RetainAll") |
||
926 | Move DD_RetainAll to iOption |
||
927 | Case Break |
||
928 | Case (sOption="DD_SkipFound") |
||
929 | Move DD_SkipFound To iOption |
||
930 | Case Break |
||
931 | Case End |
||
932 | Function_Return iOption |
||
933 | End_Function |
||
934 | |||
935 | 38 | wil | // |
936 | 41 | wil | // Returns field options into the tFieldOptions structure |
937 | 38 | wil | // |
938 | Function DDFieldOptions Handle hoDD Integer iField Returns tFieldOptions |
||
939 | Boolean bState |
||
940 | String sOption |
||
941 | tFieldOptions Options |
||
942 | |||
943 | Move "DD_Autofind" To sOption |
||
944 | Get DDFieldOption hoDD iField sOption To bState |
||
945 | If (bState) Move True To Options.bAutoFind |
||
946 | |||
947 | Move "DD_Autofind_GE" To sOption |
||
948 | Get DDFieldOption hoDD iField sOption To bState |
||
949 | If (bState) Move True To Options.bAutoFindGE |
||
950 | |||
951 | Move "DD_CapsLock" To sOption |
||
952 | Get DDFieldOption hoDD iField sOption To bState |
||
953 | If (bState) Move True To Options.bCapsLock |
||
954 | |||
955 | Move "DD_Commit" To sOption |
||
956 | Get DDFieldOption hoDD iField sOption To bState |
||
957 | If (bState) Move True To Options.bCommit |
||
958 | |||
959 | Move "DD_ForcePut" To sOption |
||
960 | Get DDFieldOption hoDD iField sOption To bState |
||
961 | If (bState) Move True To Options.bForcePut |
||
962 | |||
963 | Move "DD_NoEnter" To sOption |
||
964 | Get DDFieldOption hoDD iField sOption To bState |
||
965 | If (bState) Move True To Options.bNoEnter |
||
966 | |||
967 | Move "DD_NoPut" To sOption |
||
968 | Get DDFieldOption hoDD iField sOption To bState |
||
969 | If (bState) Move True To Options.bNoPut |
||
970 | |||
971 | 41 | wil | // is noenter+noput, no need to query or display again. |
972 | 38 | wil | //Move "DD_DisplayOnly" To sOption |
973 | //Get DDFieldOption hoDD iField sOption To bState |
||
974 | //If (bState) Move True to Options.bDisplayOnly |
||
975 | |||
976 | Move "DD_Zero_Suppress" To sOption |
||
977 | Get DDFieldOption hoDD iField sOption To bState |
||
978 | If (bState) Move True To Options.bZeroSuppress |
||
979 | |||
980 | Move "DD_Required" To sOption |
||
981 | Get DDFieldOption hoDD iField sOption To bState |
||
982 | If (bState) Move True To Options.bRequired |
||
983 | |||
984 | Move "DD_FindReq" To sOption |
||
985 | Get DDFieldOption hoDD iField sOption To bState |
||
986 | If (bState) Move True To Options.bFindReq |
||
987 | |||
988 | Move "DD_Retain" To sOption |
||
989 | Get DDFieldOption hoDD iField sOption To bState |
||
990 | If (bState) Move True to Options.bRetain |
||
991 | |||
992 | 49 | wil | Move "DD_RetainAll" To sOption |
993 | Get DDFieldOption hoDD iField sOption To bState |
||
994 | If (bState) Move True To Options.bRetainAll |
||
995 | 38 | wil | |
996 | Move "DD_SkipFound" To sOption |
||
997 | Get DDFieldOption hoDD iField sOption To bState |
||
998 | If (bState) Move True To Options.bSkipFound |
||
999 | |||
1000 | 40 | wil | Get StringEval of oProgram ("Key_Field_State("+trim(hoDD)+","+trim(iField)+")") To bState |
1001 | If (bState) Move True To Options.bKeyField |
||
1002 | |||
1003 | 38 | wil | Function_Return Options |
1004 | End_Function |
||
1005 | 48 | wil | |
1006 | // |
||
1007 | // Returns field options into the tFieldOptions structure |
||
1008 | // |
||
1009 | Function DDForeignFieldOptions Handle hoDD Integer iField Returns tFieldOptions |
||
1010 | Boolean bState |
||
1011 | String sOption |
||
1012 | tFieldOptions Options |
||
1013 | 38 | wil | |
1014 | 48 | wil | Move "DD_Autofind" To sOption |
1015 | Get DDForeignFieldOption hoDD iField sOption To bState |
||
1016 | If (bState) Move True To Options.bAutoFind |
||
1017 | |||
1018 | Move "DD_Autofind_GE" To sOption |
||
1019 | Get DDForeignFieldOption hoDD iField sOption To bState |
||
1020 | If (bState) Move True To Options.bAutoFindGE |
||
1021 | |||
1022 | Move "DD_CapsLock" To sOption |
||
1023 | Get DDForeignFieldOption hoDD iField sOption To bState |
||
1024 | If (bState) Move True To Options.bCapsLock |
||
1025 | |||
1026 | Move "DD_Commit" To sOption |
||
1027 | Get DDForeignFieldOption hoDD iField sOption To bState |
||
1028 | If (bState) Move True To Options.bCommit |
||
1029 | |||
1030 | Move "DD_ForcePut" To sOption |
||
1031 | Get DDForeignFieldOption hoDD iField sOption To bState |
||
1032 | If (bState) Move True To Options.bForcePut |
||
1033 | |||
1034 | Move "DD_NoEnter" To sOption |
||
1035 | Get DDForeignFieldOption hoDD iField sOption To bState |
||
1036 | If (bState) Move True To Options.bNoEnter |
||
1037 | |||
1038 | Move "DD_NoPut" To sOption |
||
1039 | Get DDForeignFieldOption hoDD iField sOption To bState |
||
1040 | If (bState) Move True To Options.bNoPut |
||
1041 | |||
1042 | // is noenter+noput, no need to query or display again. |
||
1043 | //Move "DD_DisplayOnly" To sOption |
||
1044 | //Get DDFieldOption hoDD iField sOption To bState |
||
1045 | //If (bState) Move True to Options.bDisplayOnly |
||
1046 | |||
1047 | Move "DD_Zero_Suppress" To sOption |
||
1048 | Get DDForeignFieldOption hoDD iField sOption To bState |
||
1049 | If (bState) Move True To Options.bZeroSuppress |
||
1050 | |||
1051 | Move "DD_Required" To sOption |
||
1052 | Get DDForeignFieldOption hoDD iField sOption To bState |
||
1053 | If (bState) Move True To Options.bRequired |
||
1054 | |||
1055 | Move "DD_FindReq" To sOption |
||
1056 | Get DDForeignFieldOption hoDD iField sOption To bState |
||
1057 | If (bState) Move True To Options.bFindReq |
||
1058 | |||
1059 | Move "DD_Retain" To sOption |
||
1060 | Get DDForeignFieldOption hoDD iField sOption To bState |
||
1061 | If (bState) Move True to Options.bRetain |
||
1062 | |||
1063 | 49 | wil | Move "DD_RetainAll" To sOption |
1064 | 50 | wil | Get DDForeignFieldOption hoDD iField sOption To bState |
1065 | 49 | wil | If (bState) Move True To Options.bRetainAll |
1066 | 48 | wil | |
1067 | Move "DD_SkipFound" To sOption |
||
1068 | Get DDForeignFieldOption hoDD iField sOption To bState |
||
1069 | If (bState) Move True To Options.bSkipFound |
||
1070 | |||
1071 | Function_Return Options |
||
1072 | End_Function |
||
1073 | |||
1074 | 30 | wil | |
1075 | 38 | wil | |
1076 | Object oTable_TD is a TabDialog |
||
1077 | 39 | wil | Set Location To 8 3 |
1078 | Set Size to 134 258 |
||
1079 | 38 | wil | Set peAnchors to anAll |
1080 | 31 | wil | |
1081 | 39 | wil | Object oTable_TP is a TabPage |
1082 | 38 | wil | Set Label to "Table" |
1083 | 39 | wil | |
1084 | 40 | wil | Object oTableName is a Form |
1085 | Set Location to 8 35 |
||
1086 | Set Size to 13 106 |
||
1087 | Set Label to "Name:" |
||
1088 | Set Label_Col_Offset to 2 |
||
1089 | Set Label_Justification_Mode to jMode_Right |
||
1090 | Set Enabled_State to False |
||
1091 | End_Object |
||
1092 | |||
1093 | 49 | wil | Object oOrdering is a Form |
1094 | Set Location to 8 193 |
||
1095 | Set Size to 13 46 |
||
1096 | Set Label to "Ordering:" |
||
1097 | Set Label_Col_Offset to 2 |
||
1098 | Set Label_Justification_Mode to jMode_Right |
||
1099 | Set Enabled_State to False |
||
1100 | End_Object |
||
1101 | |||
1102 | Object oShouldSave_cb is a cReadOnlyCheckbox |
||
1103 | 39 | wil | Set Size to 10 50 |
1104 | 40 | wil | Set Location to 27 12 |
1105 | 39 | wil | Set Label to "Should Save" |
1106 | 49 | wil | Set psTooltip To "Should_Save" |
1107 | 39 | wil | End_Object |
1108 | 40 | wil | |
1109 | 49 | wil | Object oChangedState_cb is a cReadOnlyCheckbox |
1110 | 40 | wil | Set Size to 10 50 |
1111 | Set Location to 42 12 |
||
1112 | 49 | wil | Set Label to "Changed" |
1113 | Set psTooltip to "Changed_State" |
||
1114 | 40 | wil | End_Object |
1115 | |||
1116 | 49 | wil | Object oInUse_cb is a cReadOnlyCheckbox |
1117 | 40 | wil | Set Size to 10 50 |
1118 | Set Location to 57 12 |
||
1119 | 49 | wil | Set Label to "In Use" |
1120 | Set psTooltip To "In_Use_State" |
||
1121 | 40 | wil | End_Object |
1122 | |||
1123 | 49 | wil | Object oAutoFill_cb is a cReadOnlyCheckbox |
1124 | 40 | wil | Set Size to 10 50 |
1125 | Set Location to 72 12 |
||
1126 | 49 | wil | Set Label to "Auto Fill" |
1127 | Set psTooltip To "Auto_Fill_State" |
||
1128 | 40 | wil | End_Object |
1129 | 42 | wil | |
1130 | 49 | wil | Object oFillFromFirst_cb is a cReadOnlyCheckbox |
1131 | 42 | wil | Set Size to 10 50 |
1132 | Set Location to 87 12 |
||
1133 | Set Label to "Fill From First" |
||
1134 | 49 | wil | Set psTooltip To "pbAutoFillFromFirst" |
1135 | 42 | wil | End_Object |
1136 | |||
1137 | 49 | wil | Object oProtectKey_cb is a cReadOnlyCheckbox |
1138 | Set Size to 10 50 |
||
1139 | Set Location to 27 82 |
||
1140 | Set Label to "Protect Key" |
||
1141 | set psTooltip To "Protect_Key_State" |
||
1142 | 42 | wil | End_Object |
1143 | 49 | wil | |
1144 | Object oReadOnly_cb is a cReadOnlyCheckbox |
||
1145 | Set Size to 10 50 |
||
1146 | Set Location to 42 82 |
||
1147 | Set Label to "Read Only" |
||
1148 | Set psTooltip to "Read_Only_State" |
||
1149 | End_Object |
||
1150 | |||
1151 | Object oNoDelete_cb is a cReadOnlyCheckbox |
||
1152 | Set Size to 10 50 |
||
1153 | Set Location to 57 82 |
||
1154 | Set Label to "No Delete" |
||
1155 | Set psTooltip To "No_Delete_State" |
||
1156 | End_Object |
||
1157 | |||
1158 | Object oNoRelate_cb is a cReadOnlyCheckbox |
||
1159 | Set Size to 10 50 |
||
1160 | Set Location to 72 82 |
||
1161 | Set Label to "No Relate" |
||
1162 | Set psTooltip To "No_Relate_State" |
||
1163 | End_Object |
||
1164 | |||
1165 | Object oParentChanged_cb is a cReadOnlyCheckbox |
||
1166 | Set Size to 10 50 |
||
1167 | Set Location to 87 82 |
||
1168 | Set Label to "Parent Changed" |
||
1169 | Set psTooltip To "Parent_Changed_State" |
||
1170 | End_Object |
||
1171 | |||
1172 | Object oInheritConstraints_cb is a cReadOnlyCheckbox |
||
1173 | Set Size to 10 50 |
||
1174 | Set Location to 27 152 |
||
1175 | Set Label to "Inherit Constraints" |
||
1176 | Set psTooltip To "pbInheritConstraints" |
||
1177 | End_Object |
||
1178 | |||
1179 | Object oUseDDRelates_cb is a cReadOnlyCheckbox |
||
1180 | Set Size to 10 50 |
||
1181 | Set Location to 42 152 |
||
1182 | Set Label to "DD Relates" |
||
1183 | Set psTooltip to "pbUseDDRelates" |
||
1184 | End_Object |
||
1185 | |||
1186 | Object oNoCascadeDeleteStrict is a cReadOnlyCheckbox |
||
1187 | Set Size to 10 50 |
||
1188 | Set Location to 72 152 |
||
1189 | Set Label to "No Cascade Delete Strict" |
||
1190 | Set psTooltip To "pbNoCascadeDeleteStrict" |
||
1191 | End_Object |
||
1192 | |||
1193 | Object oCascadeDelete_cb is a cReadOnlyCheckbox |
||
1194 | Set Size to 10 50 |
||
1195 | Set Location to 87 152 |
||
1196 | Set Label to "Cascade Delete" |
||
1197 | Set psTooltip To "Cascade_Delete_State" |
||
1198 | End_Object |
||
1199 | 40 | wil | |
1200 | Procedure DisplayTabDetails |
||
1201 | Handle hoDD |
||
1202 | String sName |
||
1203 | Boolean bState |
||
1204 | tTable Table |
||
1205 | |||
1206 | Get phoCurrentDD to hoDD |
||
1207 | If (hoDD) Begin |
||
1208 | Get pTable To Table |
||
1209 | |||
1210 | 49 | wil | Set Value Of oTableName To Table.sName |
1211 | Set Checked_State Of oShouldSave_cb To Table.bShouldSave |
||
1212 | Set Checked_State Of oChangedState_cb To Table.bChangedState |
||
1213 | Set Checked_State Of oInUse_cb To Table.bInUse |
||
1214 | Set Checked_State Of oAutoFill_cb To Table.bAutoFill |
||
1215 | Set Checked_State Of oFillFromFirst_cb To Table.bFillFromFirst |
||
1216 | Set Checked_State Of oProtectKey_cb To Table.bProtectKey |
||
1217 | Set Checked_State Of oReadOnly_cb To Table.bReadOnly |
||
1218 | Set Checked_State Of oNoDelete_cb To Table.bNoDelete |
||
1219 | Set Checked_State Of oNoRelate_cb To Table.bNoRelate |
||
1220 | Set Checked_State Of oParentChanged_cb To Table.bParentChanged |
||
1221 | Set Checked_State Of oInheritConstraints_cb To Table.bInheritConstraints |
||
1222 | Set Checked_State Of oUseDDRelates_cb To Table.bUseDDRelates |
||
1223 | Set Checked_State Of oNoCascadeDeleteStrict To Table.bNoCascadeDeleteStrict |
||
1224 | Set Checked_State Of oCascadeDelete_cb To Table.bCascadeDelete |
||
1225 | Set Value Of oOrdering To Table.iOrdering |
||
1226 | 40 | wil | End |
1227 | End_Procedure |
||
1228 | 38 | wil | End_Object |
1229 | |||
1230 | Object oData_TP is a TabPage |
||
1231 | Set Label to "Data" |
||
1232 | 39 | wil | |
1233 | |||
1234 | Object oDataList is a cCJGrid |
||
1235 | Set Size to 124 220 |
||
1236 | 40 | wil | Set Location to 4 3 |
1237 | 39 | wil | Set pbSelectionEnable To True |
1238 | Set peAnchors to anAll |
||
1239 | Set pbReadOnly to True |
||
1240 | |||
1241 | Object oDataColumnNo is a cCJGridColumn |
||
1242 | Set piWidth to 30 |
||
1243 | Set psCaption to "#" |
||
1244 | 40 | wil | Set psTooltip To "Column Number" |
1245 | 39 | wil | Set peDataType to Mask_Numeric_Window |
1246 | Set pbResizable to False |
||
1247 | End_Object |
||
1248 | |||
1249 | Object oDataColumnName is a cCJGridColumn |
||
1250 | Set piWidth to 70 |
||
1251 | Set psCaption to "Column" |
||
1252 | End_Object |
||
1253 | |||
1254 | Object oDataColumnChanged is a cCJGridColumn |
||
1255 | Set piWidth to 25 |
||
1256 | Set pbCheckbox to True |
||
1257 | 40 | wil | //Set pbVisible To False |
1258 | 39 | wil | Set psCaption to "Changed" |
1259 | End_Object |
||
1260 | |||
1261 | Object oDataColumnDDValue is a cCJGridColumn |
||
1262 | Set piWidth to 60 |
||
1263 | Set psCaption to "DD Value" |
||
1264 | 40 | wil | Set psTooltip To "DataDictionary Column Value" |
1265 | 39 | wil | End_Object |
1266 | |||
1267 | Object oDataColumnRBValue is a cCJGridColumn |
||
1268 | Set piWidth to 60 |
||
1269 | Set psCaption to "Rec.Buffer" |
||
1270 | 40 | wil | Set psTooltip To "Record Buffer Column Value" |
1271 | 39 | wil | End_Object |
1272 | |||
1273 | |||
1274 | Procedure LoadData |
||
1275 | Handle hoDataSource |
||
1276 | Handle hoDD |
||
1277 | Boolean bChanged |
||
1278 | Boolean bIsCreated |
||
1279 | Integer iRows |
||
1280 | Integer iNo |
||
1281 | Integer iName |
||
1282 | Integer iChanged |
||
1283 | Integer iDDValue |
||
1284 | Integer iRBValue |
||
1285 | Integer iItem |
||
1286 | Integer iCount |
||
1287 | Integer iField |
||
1288 | String sDDValue |
||
1289 | String sRBValue |
||
1290 | String sField |
||
1291 | tTable Table |
||
1292 | tColumn[] Columns |
||
1293 | tDataSourceRow[] TheData |
||
1294 | |||
1295 | Get phoDataSource to hoDataSource |
||
1296 | Get phoCurrentDD to hoDD |
||
1297 | |||
1298 | // Get the datasource indexes of the various columns |
||
1299 | Get piColumnId of oDataColumnNo To iNo |
||
1300 | Get piColumnId of oDataColumnName To iName |
||
1301 | Get piColumnId of oDataColumnChanged To iChanged |
||
1302 | Get piColumnId of oDataColumnDDValue To iDDValue |
||
1303 | Get piColumnId Of oDataColumnRBValue To iRBValue |
||
1304 | |||
1305 | // Load all data into the datasource array |
||
1306 | If (hoDD) Begin |
||
1307 | Get pTable To Table |
||
1308 | Move Table.Columns To Columns |
||
1309 | Move (SizeOfArray(Columns)) To iCount |
||
1310 | For iItem From 0 To (iCount-1) |
||
1311 | Move Columns[iItem].iNr To iField |
||
1312 | Move Columns[iItem].sName To sField |
||
1313 | Move Columns[iItem].bChanged To bChanged |
||
1314 | Move Columns[iItem].sDDValue To sDDValue |
||
1315 | Move Columns[iItem].sRBValue To sRBValue |
||
1316 | |||
1317 | Move iField To TheData[iRows].sValue[iNo] |
||
1318 | Move sField To TheData[iRows].sValue[iName] |
||
1319 | Move bChanged To TheData[iRows].sValue[iChanged] |
||
1320 | Move sDDValue To TheData[iRows].sValue[iDDValue] |
||
1321 | Move sRBValue To TheData[iRows].sValue[iRBValue] |
||
1322 | |||
1323 | Increment iRows |
||
1324 | Loop |
||
1325 | |||
1326 | End |
||
1327 | |||
1328 | Get IsComObjectCreated To bIsCreated |
||
1329 | If (bIsCreated) Begin |
||
1330 | // Initialize Grid with new data |
||
1331 | Send InitializeData TheData |
||
1332 | Send MovetoFirstRow |
||
1333 | End |
||
1334 | End_Procedure |
||
1335 | End_Object |
||
1336 | |||
1337 | |||
1338 | Procedure DisplayTabDetails |
||
1339 | Send LoadData of oDataList |
||
1340 | End_Procedure |
||
1341 | 38 | wil | End_Object |
1342 | |||
1343 | Object oFieldOptions_TP is a TabPage |
||
1344 | 39 | wil | Set Label to "Options" |
1345 | |||
1346 | 48 | wil | Object oFieldOptionsColumnsList is a cCJGrid |
1347 | 39 | wil | Set Size to 114 80 |
1348 | 40 | wil | Set Location to 4 3 |
1349 | 39 | wil | Set pbSelectionEnable To True |
1350 | Set peAnchors to anTopBottomLeft |
||
1351 | Set pbReadOnly to True |
||
1352 | |||
1353 | Object oOptionsColumnNo is a cCJGridColumn |
||
1354 | Set piWidth to 30 |
||
1355 | Set psCaption to "#" |
||
1356 | Set peDataType to Mask_Numeric_Window |
||
1357 | Set pbResizable to False |
||
1358 | End_Object |
||
1359 | |||
1360 | Object oOptionsColumnName is a cCJGridColumn |
||
1361 | Set piWidth to 50 |
||
1362 | Set psCaption to "Column" |
||
1363 | End_Object |
||
1364 | |||
1365 | Object oOptionsColumnChanged is a cCJGridColumn |
||
1366 | Set piWidth to 35 |
||
1367 | Set pbCheckbox to True |
||
1368 | Set psCaption to "Changed" |
||
1369 | Set pbVisible To False |
||
1370 | Set pbShowInFieldChooser To False |
||
1371 | End_Object |
||
1372 | |||
1373 | Function CurrentRow Returns Integer |
||
1374 | Handle hoDataSource |
||
1375 | Integer iRow |
||
1376 | |||
1377 | Move -1 To iRow |
||
1378 | Get phoDataSource to hoDataSource |
||
1379 | If (hoDataSource) Begin |
||
1380 | Get SelectedRow of hoDataSource to iRow |
||
1381 | End |
||
1382 | Function_Return irow |
||
1383 | End_Function |
||
1384 | |||
1385 | Procedure OnRowChanged Integer iOld Integer iNew |
||
1386 | Forward Send OnRowChanged iOld iNew |
||
1387 | If (iOld<>iNew) begin |
||
1388 | Send DisplayFieldOptions |
||
1389 | End |
||
1390 | End_Procedure |
||
1391 | |||
1392 | |||
1393 | Procedure LoadData |
||
1394 | Handle hoDataSource |
||
1395 | Handle hoDD |
||
1396 | Boolean bChanged |
||
1397 | Boolean bIsCreated |
||
1398 | Integer iRows |
||
1399 | Integer iNo |
||
1400 | Integer iName |
||
1401 | Integer iChanged |
||
1402 | Integer iCount |
||
1403 | Integer iField |
||
1404 | Integer iItem |
||
1405 | String sValue |
||
1406 | String sField |
||
1407 | tTable Table |
||
1408 | tColumn[] Columns |
||
1409 | tDataSourceRow[] TheData |
||
1410 | |||
1411 | Get phoDataSource to hoDataSource |
||
1412 | Get phoCurrentDD to hoDD |
||
1413 | |||
1414 | // Get the datasource indexes of the various columns |
||
1415 | Get piColumnId of oOptionsColumnNo To iNo |
||
1416 | Get piColumnId of oOptionsColumnName To iName |
||
1417 | Get piColumnId of oOptionsColumnChanged To iChanged |
||
1418 | |||
1419 | // Load all data into the datasource array |
||
1420 | If (hoDD) Begin |
||
1421 | Get pTable To Table |
||
1422 | Move Table.Columns To Columns |
||
1423 | Move (SizeOfArray(Columns)) To iCount |
||
1424 | For iItem From 0 To (iCount-1) |
||
1425 | Move Columns[iItem].iNr To iField |
||
1426 | Move Columns[iItem].sName To sField |
||
1427 | Move Columns[iItem].bChanged To bChanged |
||
1428 | |||
1429 | Move iField To TheData[iRows].sValue[iNo] |
||
1430 | Move sField To TheData[iRows].sValue[iName] |
||
1431 | Move bChanged To TheData[iRows].sValue[iChanged] |
||
1432 | Increment iRows |
||
1433 | Loop |
||
1434 | |||
1435 | End |
||
1436 | |||
1437 | Get IsComObjectCreated To bIsCreated |
||
1438 | If (bIsCreated) Begin |
||
1439 | // Initialize Grid with new data |
||
1440 | Send InitializeData TheData |
||
1441 | Send MovetoFirstRow |
||
1442 | End |
||
1443 | End_Procedure |
||
1444 | End_Object |
||
1445 | 19 | wil | |
1446 | 39 | wil | |
1447 | |||
1448 | |||
1449 | |||
1450 | 49 | wil | Object oAutoFind_cb is a cReadOnlyCheckbox |
1451 | 38 | wil | Set Size to 10 50 |
1452 | 40 | wil | Set Location to 13 92 |
1453 | 38 | wil | Set Label to "Auto Find" |
1454 | End_Object |
||
1455 | 19 | wil | |
1456 | 49 | wil | Object oAutoFindGE_cb is a cReadOnlyCheckbox |
1457 | 38 | wil | Set Size to 10 50 |
1458 | 40 | wil | Set Location to 25 92 |
1459 | 38 | wil | Set Label to "Auto Find GE" |
1460 | End_Object |
||
1461 | |||
1462 | 49 | wil | Object oCapslock_cb is a cReadOnlyCheckbox |
1463 | 38 | wil | Set Size to 10 50 |
1464 | 40 | wil | Set Location to 37 92 |
1465 | 38 | wil | Set Label to "Capslock" |
1466 | End_Object |
||
1467 | |||
1468 | 49 | wil | //Object oDisplayOnly_cb is a cReadOnlyCheckbox |
1469 | 40 | wil | // Set Size to 10 50 |
1470 | // Set Location to 49 92 |
||
1471 | // Set Label to "DisplayOnly" |
||
1472 | //End_Object |
||
1473 | 38 | wil | |
1474 | 49 | wil | Object oFindReq_cb is a cReadOnlyCheckbox |
1475 | 38 | wil | Set Size to 10 50 |
1476 | 40 | wil | Set Location to 61 92 |
1477 | 38 | wil | Set Label to "FindReq" |
1478 | End_Object |
||
1479 | |||
1480 | 49 | wil | Object oForcePut_cb is a cReadOnlyCheckbox |
1481 | 38 | wil | Set Size to 10 50 |
1482 | 40 | wil | Set Location to 73 92 |
1483 | 38 | wil | Set Label to "ForcePut" |
1484 | End_Object |
||
1485 | |||
1486 | 49 | wil | Object oKeyfield_cb is a cReadOnlyCheckbox |
1487 | 38 | wil | Set Size to 10 50 |
1488 | 40 | wil | Set Location to 85 92 |
1489 | 38 | wil | Set Label to "Keyfield" |
1490 | End_Object |
||
1491 | |||
1492 | 49 | wil | Object oNoEnter_cb is a cReadOnlyCheckbox |
1493 | 38 | wil | Set Size to 10 50 |
1494 | 40 | wil | Set Location to 97 92 |
1495 | 38 | wil | Set Label to "NoEnter" |
1496 | End_Object |
||
1497 | |||
1498 | 49 | wil | Object oNoPut_cb is a cReadOnlyCheckbox |
1499 | 38 | wil | Set Size to 10 50 |
1500 | 40 | wil | Set Location to 109 92 |
1501 | 38 | wil | Set Label to "NoPut" |
1502 | End_Object |
||
1503 | |||
1504 | 49 | wil | Object oRetain_cb is a cReadOnlyCheckbox |
1505 | 38 | wil | Set Size to 10 50 |
1506 | 40 | wil | Set Location to 13 175 |
1507 | 38 | wil | Set Label to "Retain" |
1508 | End_Object |
||
1509 | |||
1510 | 49 | wil | Object oRequired_cb is a cReadOnlyCheckbox |
1511 | 38 | wil | Set Size to 10 50 |
1512 | 40 | wil | Set Location to 25 175 |
1513 | 38 | wil | Set Label to "Required" |
1514 | End_Object |
||
1515 | |||
1516 | 49 | wil | Object oSkipFound_cb is a cReadOnlyCheckbox |
1517 | 38 | wil | Set Size to 10 50 |
1518 | 40 | wil | Set Location to 37 175 |
1519 | 38 | wil | Set Label to "SkipFound" |
1520 | End_Object |
||
1521 | |||
1522 | 49 | wil | Object oZeroSuppress_cb is a cReadOnlyCheckbox |
1523 | 38 | wil | Set Size to 10 50 |
1524 | 40 | wil | Set Location to 49 175 |
1525 | 38 | wil | Set Label to "ZeroSuppress" |
1526 | End_Object |
||
1527 | |||
1528 | 49 | wil | Object oCommit_cb is a cReadOnlyCheckbox |
1529 | 38 | wil | Set Size to 10 50 |
1530 | 40 | wil | Set Location to 61 175 |
1531 | 38 | wil | Set Label to "Commit" |
1532 | End_Object |
||
1533 | 33 | wil | |
1534 | 39 | wil | Procedure DisplayFieldOptions |
1535 | 38 | wil | Handle hoDD |
1536 | Integer iRow |
||
1537 | Integer iField |
||
1538 | tFieldOptions Options |
||
1539 | |||
1540 | Get phoCurrentDD To hoDD |
||
1541 | 48 | wil | Get CurrentRow Of oFieldOptionsColumnsList To iRow |
1542 | 38 | wil | If (iRow<>-1 and hoDD) Begin |
1543 | 39 | wil | Get SelectedRowValue of oOptionsColumnNo to iField |
1544 | 38 | wil | Get DDFieldOptions hoDD iField To Options |
1545 | Set Checked_State of oAutoFind_cb To Options.bAutoFind |
||
1546 | Set Checked_State of oAutoFindGE_cb To Options.bAutoFindGE |
||
1547 | Set Checked_State of oCapslock_cb To Options.bCapslock |
||
1548 | //Set Checked_State of oDisplayOnly_cb To Options.bDisplayOnly |
||
1549 | Set Checked_State of oFindReq_cb To Options.bFindReq |
||
1550 | Set Checked_State of oForcePut_cb To Options.bForcePut |
||
1551 | 40 | wil | Set Checked_State Of oKeyfield_cb To Options.bKeyField |
1552 | 38 | wil | Set Checked_State Of oNoEnter_cb To Options.bNoEnter |
1553 | Set Checked_State Of oNoPut_cb To Options.bNoPut |
||
1554 | Set Checked_State Of oRetain_cb To Options.bRetain |
||
1555 | Set Checked_State Of oRequired_cb To Options.bRequired |
||
1556 | Set Checked_State Of oSkipFound_cb To Options.bSkipFound |
||
1557 | Set Checked_State Of oZeroSuppress_cb To Options.bZeroSuppress |
||
1558 | Set Checked_State Of oCommit_cb To Options.bCommit |
||
1559 | 33 | wil | End |
1560 | 38 | wil | End_Procedure |
1561 | 39 | wil | |
1562 | Procedure DisplayTabDetails |
||
1563 | 48 | wil | Send LoadData Of oFieldOptionsColumnsList |
1564 | 39 | wil | Send DisplayFieldOptions |
1565 | End_Procedure |
||
1566 | 38 | wil | End_Object |
1567 | 45 | wil | |
1568 | |||
1569 | Object oForeignFieldOptions_TP is a TabPage |
||
1570 | Set Label to "Foreign Options" |
||
1571 | |||
1572 | 49 | wil | //Object oDisplayOnly_cb is a cReadOnlyCheckbox |
1573 | 48 | wil | // Set Size to 10 50 |
1574 | // Set Location to 49 92 |
||
1575 | // Set Label to "DisplayOnly" |
||
1576 | //End_Object |
||
1577 | |||
1578 | 50 | wil | Object oForeignKeyGrp is a Group |
1579 | Set Size to 86 73 |
||
1580 | Set Location to 6 8 |
||
1581 | Set Label to "Key Fields" |
||
1582 | 48 | wil | |
1583 | 50 | wil | Object oAutoFind_cb is a cReadOnlyCheckbox |
1584 | Set Size to 10 50 |
||
1585 | Set Location to 10 10 |
||
1586 | Set Label to "Auto Find" |
||
1587 | End_Object |
||
1588 | Object oAutoFindGE_cb is a cReadOnlyCheckbox |
||
1589 | Set Size to 10 50 |
||
1590 | Set Location to 22 10 |
||
1591 | Set Label to "Auto Find GE" |
||
1592 | End_Object |
||
1593 | Object oFindReq_cb is a cReadOnlyCheckbox |
||
1594 | Set Size to 10 50 |
||
1595 | Set Location to 34 10 |
||
1596 | Set Label to "FindReq" |
||
1597 | End_Object |
||
1598 | Object oNoEnter_cb is a cReadOnlyCheckbox |
||
1599 | Set Size to 10 50 |
||
1600 | Set Location to 46 10 |
||
1601 | Set Label to "NoEnter" |
||
1602 | End_Object |
||
1603 | Object oNoPut_cb is a cReadOnlyCheckbox |
||
1604 | Set Size to 10 50 |
||
1605 | Set Location to 58 10 |
||
1606 | Set Label to "NoPut" |
||
1607 | End_Object |
||
1608 | Object oSkipFound_cb is a cReadOnlyCheckbox |
||
1609 | Set Size to 10 50 |
||
1610 | Set Location to 70 10 |
||
1611 | Set Label to "SkipFound" |
||
1612 | Set psTooltip to "DD_SkipFound" |
||
1613 | End_Object |
||
1614 | |||
1615 | Procedure DisplayFieldOptions tFieldOptions Options |
||
1616 | Set Checked_State of oAutoFind_cb To Options.bAutoFind |
||
1617 | Set Checked_State of oAutoFindGE_cb To Options.bAutoFindGE |
||
1618 | Set Checked_State of oCapslock_cb To Options.bCapslock |
||
1619 | //Set Checked_State of oDisplayOnly_cb To Options.bDisplayOnly |
||
1620 | Set Checked_State of oFindReq_cb To Options.bFindReq |
||
1621 | Set Checked_State Of oNoEnter_cb To Options.bNoEnter |
||
1622 | Set Checked_State Of oNoPut_cb To Options.bNoPut |
||
1623 | Set Checked_State Of oSkipFound_cb To Options.bSkipFound |
||
1624 | End_Procedure |
||
1625 | 48 | wil | End_Object |
1626 | |||
1627 | 50 | wil | Object oForeignIndexGrp is a Group |
1628 | Set Size to 86 73 |
||
1629 | Set Location to 6 88 |
||
1630 | Set Label to "Index Fields" |
||
1631 | 48 | wil | |
1632 | 50 | wil | Object oAutoFind_cb is a cReadOnlyCheckbox |
1633 | Set Size to 10 50 |
||
1634 | Set Location to 10 10 |
||
1635 | Set Label to "Auto Find" |
||
1636 | End_Object |
||
1637 | Object oAutoFindGE_cb is a cReadOnlyCheckbox |
||
1638 | Set Size to 10 50 |
||
1639 | Set Location to 22 10 |
||
1640 | Set Label to "Auto Find GE" |
||
1641 | End_Object |
||
1642 | Object oFindReq_cb is a cReadOnlyCheckbox |
||
1643 | Set Size to 10 50 |
||
1644 | Set Location to 34 10 |
||
1645 | Set Label to "FindReq" |
||
1646 | End_Object |
||
1647 | Object oNoEnter_cb is a cReadOnlyCheckbox |
||
1648 | Set Size to 10 50 |
||
1649 | Set Location to 46 10 |
||
1650 | Set Label to "NoEnter" |
||
1651 | End_Object |
||
1652 | Object oNoPut_cb is a cReadOnlyCheckbox |
||
1653 | Set Size to 10 50 |
||
1654 | Set Location to 58 10 |
||
1655 | Set Label to "NoPut" |
||
1656 | End_Object |
||
1657 | Object oSkipFound_cb is a cReadOnlyCheckbox |
||
1658 | Set Size to 10 50 |
||
1659 | Set Location to 70 10 |
||
1660 | Set Label to "SkipFound" |
||
1661 | Set psTooltip to "DD_SkipFound" |
||
1662 | End_Object |
||
1663 | |||
1664 | Procedure DisplayFieldOptions tFieldOptions Options |
||
1665 | Set Checked_State of oAutoFind_cb To Options.bAutoFind |
||
1666 | Set Checked_State of oAutoFindGE_cb To Options.bAutoFindGE |
||
1667 | Set Checked_State of oCapslock_cb To Options.bCapslock |
||
1668 | //Set Checked_State of oDisplayOnly_cb To Options.bDisplayOnly |
||
1669 | Set Checked_State of oFindReq_cb To Options.bFindReq |
||
1670 | Set Checked_State Of oNoEnter_cb To Options.bNoEnter |
||
1671 | Set Checked_State Of oNoPut_cb To Options.bNoPut |
||
1672 | Set Checked_State Of oSkipFound_cb To Options.bSkipFound |
||
1673 | End_Procedure |
||
1674 | 48 | wil | End_Object |
1675 | |||
1676 | 50 | wil | Object oForeignDefaultGrp is a Group |
1677 | Set Size to 86 73 |
||
1678 | Set Location to 6 167 |
||
1679 | Set Label to "Default" |
||
1680 | Object oNoEnter_cb is a cReadOnlyCheckbox |
||
1681 | Set Size to 10 50 |
||
1682 | Set Location to 46 10 |
||
1683 | Set Label to "NoEnter" |
||
1684 | End_Object |
||
1685 | Object oNoPut_cb is a cReadOnlyCheckbox |
||
1686 | Set Size to 10 50 |
||
1687 | Set Location to 58 10 |
||
1688 | Set Label to "NoPut" |
||
1689 | End_Object |
||
1690 | Object oSkipFound_cb is a cReadOnlyCheckbox |
||
1691 | Set Size to 10 50 |
||
1692 | Set Location to 70 10 |
||
1693 | Set Label to "SkipFound" |
||
1694 | Set psTooltip to "DD_SkipFound" |
||
1695 | End_Object |
||
1696 | |||
1697 | Procedure DisplayFieldOptions tFieldOptions Options |
||
1698 | Set Checked_State Of oNoEnter_cb To Options.bNoEnter |
||
1699 | Set Checked_State Of oNoPut_cb To Options.bNoPut |
||
1700 | Set Checked_State Of oSkipFound_cb To Options.bSkipFound |
||
1701 | End_Procedure |
||
1702 | 48 | wil | End_Object |
1703 | |||
1704 | 50 | wil | Object oForeignReadonly_cb is a cReadOnlyCheckbox |
1705 | 48 | wil | Set Size to 10 50 |
1706 | 50 | wil | Set Location to 102 55 |
1707 | Set Label to "Foreign Readonly" |
||
1708 | Set psTooltip to "pbForeignReadOnly" |
||
1709 | 48 | wil | End_Object |
1710 | 50 | wil | Object oForeignNewSave_cb is a cReadOnlyCheckbox |
1711 | 48 | wil | Set Size to 10 50 |
1712 | 50 | wil | Set Location to 102 152 |
1713 | Set Label to "Foreign New Save" |
||
1714 | Set psTooltip to "Allow_Foreign_New_Save_State" |
||
1715 | 48 | wil | End_Object |
1716 | |||
1717 | 50 | wil | |
1718 | Procedure DisplayForeignFieldOptions tForeignFieldOptions Foreign |
||
1719 | Send DisplayFieldOptions Of oForeignKeyGrp Foreign.ddKey |
||
1720 | Send DisplayFieldOptions Of oForeignIndexGrp Foreign.ddIndex |
||
1721 | Send DisplayFieldOptions Of oForeignDefaultGrp Foreign.ddDefault |
||
1722 | 48 | wil | End_Procedure |
1723 | 45 | wil | |
1724 | Procedure DisplayTabDetails |
||
1725 | 50 | wil | Handle hoDD |
1726 | tTable Table |
||
1727 | |||
1728 | Get phoCurrentDD to hoDD |
||
1729 | If (hoDD) Begin |
||
1730 | Get pTable To Table |
||
1731 | |||
1732 | Set Checked_State Of oForeignReadonly_cb To Table.Foreign.bReadOnly |
||
1733 | Set Checked_State Of oForeignNewSave_cb To Table.Foreign.bAllowNewSave |
||
1734 | End |
||
1735 | Send DisplayForeignFieldOptions Table.Foreign |
||
1736 | 45 | wil | End_Procedure |
1737 | 50 | wil | |
1738 | 45 | wil | End_Object |
1739 | 38 | wil | |
1740 | 40 | wil | Object oRelationships_TP is a TabPage |
1741 | Set Label to "Relationships" |
||
1742 | |||
1743 | Object oParentGroup is a Group |
||
1744 | Set Size to 58 234 |
||
1745 | Set Location to 1 4 |
||
1746 | Set Label to "Parents" |
||
1747 | |||
1748 | Object oParentList is a cCJGrid |
||
1749 | 49 | wil | Set Size to 50 155 |
1750 | 40 | wil | Set Location to 7 3 |
1751 | Set pbSelectionEnable to True |
||
1752 | Set peAnchors to anAll |
||
1753 | Set pbReadOnly to True |
||
1754 | |||
1755 | Object oParentColumnNo is a cCJGridColumn |
||
1756 | 49 | wil | Set piWidth to 40 |
1757 | 40 | wil | Set psCaption to "#" |
1758 | Set psTooltip to "File Number" |
||
1759 | Set peDataType to Mask_Numeric_Window |
||
1760 | Set pbResizable to False |
||
1761 | End_Object |
||
1762 | |||
1763 | Object oParentColumnName is a cCJGridColumn |
||
1764 | 49 | wil | Set piWidth to 270 |
1765 | 40 | wil | Set psCaption to "Name" |
1766 | End_Object |
||
1767 | |||
1768 | Procedure LoadData |
||
1769 | Handle hoDataSource |
||
1770 | Handle hoDD |
||
1771 | Boolean bIsCreated |
||
1772 | Integer iRows |
||
1773 | Integer iNo |
||
1774 | Integer iName |
||
1775 | Integer iItem |
||
1776 | Integer iCount |
||
1777 | Integer iFile |
||
1778 | String sFile |
||
1779 | tTable Table |
||
1780 | tServer[] Servers |
||
1781 | tDataSourceRow[] TheData |
||
1782 | |||
1783 | Get phoDataSource to hoDataSource |
||
1784 | Get phoCurrentDD to hoDD |
||
1785 | |||
1786 | // Get the datasource indexes of the various columns |
||
1787 | Get piColumnId of oDataColumnNo to iNo |
||
1788 | Get piColumnId of oDataColumnName to iName |
||
1789 | |||
1790 | // Load all data into the datasource array |
||
1791 | If (hoDD) Begin |
||
1792 | Get pTable to Table |
||
1793 | Move Table.Servers to Servers |
||
1794 | Move (SizeOfArray(Servers)) to iCount |
||
1795 | For iItem from 0 to (iCount-1) |
||
1796 | Move Servers[iItem].iFile to iFile |
||
1797 | Move Servers[iItem].sName to sFile |
||
1798 | |||
1799 | Move iFile to TheData[iRows].sValue[iNo] |
||
1800 | Move sFile to TheData[iRows].sValue[iName] |
||
1801 | |||
1802 | Increment iRows |
||
1803 | Loop |
||
1804 | |||
1805 | End |
||
1806 | |||
1807 | Get IsComObjectCreated to bIsCreated |
||
1808 | If (bIsCreated) Begin |
||
1809 | // Initialize Grid with new data |
||
1810 | Send InitializeData TheData |
||
1811 | Send MovetoFirstRow |
||
1812 | End |
||
1813 | End_Procedure |
||
1814 | 49 | wil | |
1815 | Function CurrentRow Returns Integer |
||
1816 | Handle hoDataSource |
||
1817 | Integer iRow |
||
1818 | |||
1819 | Move -1 To iRow |
||
1820 | Get phoDataSource to hoDataSource |
||
1821 | If (hoDataSource) Begin |
||
1822 | Get SelectedRow of hoDataSource to iRow |
||
1823 | End |
||
1824 | Function_Return irow |
||
1825 | End_Function |
||
1826 | |||
1827 | Procedure OnRowChanged Integer iOld Integer iNew |
||
1828 | Forward Send OnRowChanged iOld iNew |
||
1829 | If (iOld<>iNew) begin |
||
1830 | Send DisplayParentDetails |
||
1831 | End |
||
1832 | End_Procedure |
||
1833 | |||
1834 | 40 | wil | End_Object |
1835 | 49 | wil | |
1836 | Object oParentNullAllowed_cb is a cReadOnlyCheckBox |
||
1837 | Set Size to 10 50 |
||
1838 | Set Location to 18 169 |
||
1839 | Set Label to "Null Allowed" |
||
1840 | Set psToolTip to "ParentNullAllowed" |
||
1841 | End_Object |
||
1842 | |||
1843 | Object oParentNoSwitch_cb is a cReadOnlyCheckBox |
||
1844 | Set Size to 10 50 |
||
1845 | Set Location to 30 169 |
||
1846 | Set Label to "No Switch" |
||
1847 | Set psToolTip to "ParentNoSwitchIfCommitted" |
||
1848 | End_Object |
||
1849 | |||
1850 | Procedure DisplayParentDetails |
||
1851 | Integer iRow |
||
1852 | Integer iFile |
||
1853 | Handle hoDD |
||
1854 | tTable Table |
||
1855 | tServer[] Servers |
||
1856 | |||
1857 | Get phoCurrentDD To hoDD |
||
1858 | Get CurrentRow Of oParentList To iRow |
||
1859 | If (iRow<>-1 and hoDD) Begin |
||
1860 | Get pTable to Table |
||
1861 | Move Table.Servers to Servers |
||
1862 | |||
1863 | Get SelectedRowValue of oParentColumnNo to iFile |
||
1864 | If (Servers[iRow].iFile=iFile) Begin |
||
1865 | Set Checked_State of oParentNullAllowed_cb To Servers[iRow].bNullAllowed |
||
1866 | Set Checked_State of oParentNoSwitch_cb To Servers[iRow].bNoSwitch |
||
1867 | End |
||
1868 | Else Begin |
||
1869 | Send Info_Box ("DisplayParentDetails assert grid ifile"+trim(Servers[iRow].iFile)+"<>"+trim(iFile)+"ifile") |
||
1870 | End |
||
1871 | End |
||
1872 | End_Procedure |
||
1873 | 40 | wil | End_Object |
1874 | |||
1875 | Object oChildGroup is a Group |
||
1876 | Set Size to 58 234 |
||
1877 | Set Location to 60 4 |
||
1878 | Set Label to "Childs" |
||
1879 | |||
1880 | Object oChildList is a cCJGrid |
||
1881 | 49 | wil | Set Size to 50 154 |
1882 | 40 | wil | Set Location to 8 3 |
1883 | Set pbSelectionEnable to True |
||
1884 | Set peAnchors to anAll |
||
1885 | Set pbReadOnly to True |
||
1886 | |||
1887 | Object oChildColumnNo is a cCJGridColumn |
||
1888 | 49 | wil | Set piWidth to 38 |
1889 | 40 | wil | Set psCaption to "#" |
1890 | Set psTooltip to "File Number" |
||
1891 | Set peDataType to Mask_Numeric_Window |
||
1892 | Set pbResizable to False |
||
1893 | End_Object |
||
1894 | |||
1895 | Object oChildColumnName is a cCJGridColumn |
||
1896 | 49 | wil | Set piWidth to 270 |
1897 | 40 | wil | Set psCaption to "Name" |
1898 | End_Object |
||
1899 | |||
1900 | Procedure LoadData |
||
1901 | Handle hoDataSource |
||
1902 | Handle hoDD |
||
1903 | Boolean bIsCreated |
||
1904 | Integer iRows |
||
1905 | Integer iNo |
||
1906 | Integer iName |
||
1907 | Integer iItem |
||
1908 | Integer iCount |
||
1909 | Integer iFile |
||
1910 | String sFile |
||
1911 | tTable Table |
||
1912 | tClient[] Clients |
||
1913 | tDataSourceRow[] TheData |
||
1914 | |||
1915 | Get phoDataSource to hoDataSource |
||
1916 | Get phoCurrentDD to hoDD |
||
1917 | |||
1918 | // Get the datasource indexes of the various columns |
||
1919 | Get piColumnId of oDataColumnNo to iNo |
||
1920 | Get piColumnId of oDataColumnName to iName |
||
1921 | |||
1922 | // Load all data into the datasource array |
||
1923 | If (hoDD) Begin |
||
1924 | Get pTable to Table |
||
1925 | Move Table.Clients to Clients |
||
1926 | Move (SizeOfArray(Clients)) to iCount |
||
1927 | For iItem from 0 to (iCount-1) |
||
1928 | Move Clients[iItem].iFile to iFile |
||
1929 | Move Clients[iItem].sName to sFile |
||
1930 | |||
1931 | Move iFile to TheData[iRows].sValue[iNo] |
||
1932 | Move sFile to TheData[iRows].sValue[iName] |
||
1933 | |||
1934 | Increment iRows |
||
1935 | Loop |
||
1936 | |||
1937 | End |
||
1938 | |||
1939 | Get IsComObjectCreated to bIsCreated |
||
1940 | If (bIsCreated) Begin |
||
1941 | // Initialize Grid with new data |
||
1942 | Send InitializeData TheData |
||
1943 | Send MovetoFirstRow |
||
1944 | End |
||
1945 | End_Procedure |
||
1946 | End_Object |
||
1947 | End_Object |
||
1948 | |||
1949 | |||
1950 | |||
1951 | Procedure DisplayTabDetails |
||
1952 | Send LoadData Of oParentList |
||
1953 | 49 | wil | Send DisplayParentDetails of oParentGroup |
1954 | 40 | wil | Send LoadData of oChildList |
1955 | End_Procedure |
||
1956 | End_Object |
||
1957 | |||
1958 | 38 | wil | |
1959 | Function Tab_Change Integer iToTab Integer ePointerMode Returns Integer |
||
1960 | Handle hoToTab |
||
1961 | Integer iCurrentTab |
||
1962 | Integer iRetVal |
||
1963 | |||
1964 | Get Current_Tab To iCurrentTab |
||
1965 | Forward Get Tab_Change iToTab ePointerMode To iRetVal |
||
1966 | If (iCurrentTab<>-1 and iRetval=0) Begin |
||
1967 | Get Tab_Page_Id iToTab To hoToTab |
||
1968 | 45 | wil | If (hoToTab=oFieldOptions_TP or hoToTab=oForeignFieldOptions_TP or hoToTab=oData_TP or hoToTab=oTable_TP or hoToTab=oRelationships_TP) Begin |
1969 | 38 | wil | Send DisplayTabDetails of hoToTab |
1970 | 33 | wil | End |
1971 | End |
||
1972 | 38 | wil | Function_Return iRetVal |
1973 | End_Function |
||
1974 | |||
1975 | 40 | wil | Procedure UpdateCurrentTab |
1976 | Handle hoTab |
||
1977 | Integer iTab |
||
1978 | |||
1979 | Get Current_Tab To iTab |
||
1980 | If (iTab<>-1) Begin |
||
1981 | Get Tab_Page_Id iTab To hoTab |
||
1982 | If (hoTab=oFieldOptions_TP or hoTab=oData_TP or hoTab=oTable_TP or hoTab=oRelationships_TP) Begin |
||
1983 | Send DisplayTabDetails of hoTab |
||
1984 | End |
||
1985 | End |
||
1986 | End_Procedure |
||
1987 | |||
1988 | 38 | wil | End_Object |
1989 | |||
1990 | 39 | wil | Function EmptyTable Returns tTable |
1991 | tTable Table |
||
1992 | tColumn[] Columns |
||
1993 | |||
1994 | Move (ResizeArray(Columns,0)) To Columns |
||
1995 | Move 0 To Table.iNr |
||
1996 | Move "" To Table.sName |
||
1997 | Move Columns To Table.Columns |
||
1998 | Function_Return Table |
||
1999 | End_Function |
||
2000 | |||
2001 | 40 | wil | Function EnumerateColumns Handle hoDD String sFile Returns tColumn[] |
2002 | Boolean bChanged |
||
2003 | Integer iCount |
||
2004 | Integer iItem |
||
2005 | Integer iField |
||
2006 | Integer iMainIndex |
||
2007 | String sField |
||
2008 | String sValue |
||
2009 | String sRBValue |
||
2010 | tColumn[] Columns |
||
2011 | |||
2012 | Get PropertyIntegerEval of oProgram "Field_Count" hoDD To iCount |
||
2013 | Move 0 To iItem |
||
2014 | For iField From 0 To iCount |
||
2015 | Get StringEval of oProgram ("Field_Label_Tag("+trim(hoDD)+","+trim(iField)+")") To sValue |
||
2016 | Move sValue To sField |
||
2017 | |||
2018 | //Get DDFieldOptionsToString hoDD iField To sOptions |
||
2019 | //If (sOptions<>"") Move ("-"+sOptions) To sOptions |
||
2020 | |||
2021 | Get StringEval of oProgram ("Field_Current_Value("+trim(hoDD)+","+trim(iField)+")") To sValue |
||
2022 | Get StringEval of oProgram ("Field_Changed_State("+trim(hoDD)+","+trim(iField)+")") To bChanged |
||
2023 | Get StringEval of oProgram ("Field_Index(" +trim(hoDD)+","+trim(iField)+")") To iMainIndex |
||
2024 | |||
2025 | Get StringEval of oProgram (trim(sFile)+"."+trim(sField)) To sRBValue |
||
2026 | |||
2027 | Move iField To Columns[iItem].iNr |
||
2028 | Move sField To Columns[iItem].sName |
||
2029 | Move sValue To Columns[iItem].sDDValue |
||
2030 | Move sRBValue To Columns[iItem].sRBValue |
||
2031 | Move bChanged To Columns[iItem].bChanged |
||
2032 | Move iMainIndex To Columns[iItem].iMainIndex |
||
2033 | Increment iItem |
||
2034 | Loop |
||
2035 | Function_Return Columns |
||
2036 | End_Function |
||
2037 | |||
2038 | Function EnumerateParents Handle hoDD Returns tServer[] |
||
2039 | Integer iCount |
||
2040 | Integer iFile |
||
2041 | Integer iItem |
||
2042 | 49 | wil | Integer iRuntimeVersion |
2043 | Handle hoDebugger |
||
2044 | Boolean bNullAllowed |
||
2045 | Boolean bNoSwitch |
||
2046 | 40 | wil | Handle hoParent |
2047 | String sValue |
||
2048 | String sName |
||
2049 | tServer[] Servers |
||
2050 | |||
2051 | Get PropertyIntegerEval of oProgram "Data_Set_Server_Count" hoDD To iCount |
||
2052 | For iItem From 0 To (iCount-1) |
||
2053 | Get StringEval of oProgram ("Data_Set_Server("+trim(hoDD)+","+trim(iItem)+")") To sValue |
||
2054 | Move sValue To hoParent |
||
2055 | Get ShortName Of oProgram hoParent To sName |
||
2056 | Get PropertyIntegerEval Of oProgram "Main_File" hoParent To iFile |
||
2057 | |||
2058 | 49 | wil | Move False To bNullAllowed |
2059 | Move False To bNoSwitch |
||
2060 | Get phoDebugger To hoDebugger |
||
2061 | If (hoDebugger) Begin |
||
2062 | Get piRuntimeVersion of hoDebugger To iRuntimeVersion |
||
2063 | If (iRuntimeVersion>=170) Begin |
||
2064 | // VDF17.0+ |
||
2065 | Get StringEval of oProgram ("ParentNullAllowed("+trim(hoDD)+","+trim(iFile)+")") To sValue |
||
2066 | Move sValue To bNullAllowed |
||
2067 | Get StringEval of oProgram ("ParentNoSwitchIfCommitted("+trim(hoDD)+","+trim(iFile)+")") To sValue |
||
2068 | Move sValue To bNoSwitch |
||
2069 | End |
||
2070 | End |
||
2071 | |||
2072 | Move hoParent To Servers[iItem].hoDD |
||
2073 | Move sName To Servers[iItem].sName |
||
2074 | Move iFile To Servers[iItem].iFile |
||
2075 | Move bNullAllowed To Servers[iItem].bNullAllowed |
||
2076 | Move bNoSwitch To Servers[iItem].bNoSwitch |
||
2077 | 40 | wil | Loop |
2078 | Function_Return Servers |
||
2079 | End_Function |
||
2080 | |||
2081 | Function EnumerateChilds Handle hoDD Returns tClient[] |
||
2082 | Integer iCount |
||
2083 | Integer iFile |
||
2084 | Integer iItem |
||
2085 | Handle hoChild |
||
2086 | String sValue |
||
2087 | String sName |
||
2088 | tClient[] Clients |
||
2089 | |||
2090 | Get PropertyIntegerEval of oProgram "Data_Set_Client_Count" hoDD To iCount |
||
2091 | For iItem From 0 To (iCount-1) |
||
2092 | Get StringEval of oProgram ("Data_Set_Client("+trim(hoDD)+","+trim(iItem)+")") To sValue |
||
2093 | Move sValue To hoChild |
||
2094 | Get ShortName Of oProgram hoChild To sName |
||
2095 | Get PropertyIntegerEval Of oProgram "Main_File" hoChild To iFile |
||
2096 | |||
2097 | Move hoChild To Clients[iItem].hoDD |
||
2098 | Move sName To Clients[iItem].sName |
||
2099 | Move iFile To Clients[iItem].iFile |
||
2100 | Loop |
||
2101 | Function_Return Clients |
||
2102 | End_Function |
||
2103 | |||
2104 | 50 | wil | Function ForeignFieldOptions Handle hoDD Returns tForeignFieldOptions |
2105 | Boolean bReadOnly |
||
2106 | Boolean bNewSave |
||
2107 | tFieldOptions ddDefault |
||
2108 | tFieldOptions ddIndex |
||
2109 | tFieldOptions ddKey |
||
2110 | tForeignFieldOptions Foreign |
||
2111 | 49 | wil | |
2112 | 50 | wil | Get PropertyBooleanEval of oProgram "pbForeignReadOnly" hoDD To bReadOnly |
2113 | Get PropertyBooleanEval of oProgram "Allow_Foreign_New_Save_State" hoDD To bNewSave |
||
2114 | 49 | wil | |
2115 | 50 | wil | Get DDForeignFieldOptions hoDD DD_Default To ddDefault |
2116 | Get DDForeignFieldOptions hoDD DD_IndexField To ddIndex |
||
2117 | Get DDForeignFieldOptions hoDD DD_KeyField To ddKey |
||
2118 | |||
2119 | Move bReadOnly To Foreign.bReadOnly |
||
2120 | Move bNewSave To Foreign.bAllowNewSave |
||
2121 | Move ddDefault To Foreign.ddDefault |
||
2122 | Move ddIndex To Foreign.ddIndex |
||
2123 | Move ddKey To Foreign.ddKey |
||
2124 | Function_Return Foreign |
||
2125 | 49 | wil | End_Function |
2126 | |||
2127 | 38 | wil | Procedure DisplayDataDictionaryDetails Integer iMainFile |
2128 | Handle hoDD |
||
2129 | 40 | wil | Handle hoParent |
2130 | Handle hoChild |
||
2131 | 38 | wil | Boolean bTableChanged |
2132 | 49 | wil | Boolean bShouldSave |
2133 | 38 | wil | Boolean bChanged |
2134 | 40 | wil | Boolean bInUse |
2135 | Boolean bAutoFill |
||
2136 | 42 | wil | Boolean bFillFromFirst |
2137 | 49 | wil | Boolean bProtectKey |
2138 | Boolean bReadOnly |
||
2139 | Boolean bNoDelete |
||
2140 | Boolean bNoRelate |
||
2141 | Boolean bParentChanged |
||
2142 | Boolean bInheritConstraints |
||
2143 | Boolean bUseDDRelates |
||
2144 | Boolean bNoCascadeDeleteStrict |
||
2145 | Boolean bCascadeDelete |
||
2146 | 39 | wil | Integer iItem |
2147 | 38 | wil | Integer iCount |
2148 | Integer iField |
||
2149 | 42 | wil | Integer iOrdering |
2150 | 49 | wil | String sTableName |
2151 | 38 | wil | String sField |
2152 | String sValue |
||
2153 | String sOptions |
||
2154 | String sLine |
||
2155 | 39 | wil | tColumn[] Columns |
2156 | 40 | wil | tServer[] Servers |
2157 | tClient[] Clients |
||
2158 | 50 | wil | tForeignFieldOptions Foreign |
2159 | 39 | wil | tTable Table |
2160 | 38 | wil | |
2161 | Get phoTarget To hoDD |
||
2162 | Set phoCurrentDD To hoDD |
||
2163 | 39 | wil | Get Emptytable To Table |
2164 | 38 | wil | |
2165 | 49 | wil | Get TableName hoDD iMainFile To sTableName |
2166 | |||
2167 | Move ("DataDictionary for Table : "+sTableName) To sLine |
||
2168 | 38 | wil | Set Label Of oDDGroup To sLine |
2169 | 39 | wil | |
2170 | 49 | wil | Get PropertyBooleanEval of oProgram "Should_Save" hoDD To bShouldSave |
2171 | Get PropertyBooleanEval of oProgram "Changed_State" hoDD To bTableChanged |
||
2172 | Get PropertyBooleanEval of oProgram "In_Use_State" hoDD To bInUse |
||
2173 | Get PropertyBooleanEval of oProgram "Auto_Fill_State" hoDD To bAutoFill |
||
2174 | Get PropertyBooleanEval of oProgram "pbAutoFillFromFirst" hoDD To bFillFromFirst |
||
2175 | Get PropertyIntegerEval of oProgram "Ordering" hoDD To iOrdering |
||
2176 | Get PropertyBooleanEval of oProgram "Protect_Key_State" hoDD To bProtectKey |
||
2177 | Get PropertyBooleanEval of oProgram "Read_Only_State" hoDD To bReadOnly |
||
2178 | Get PropertyBooleanEval of oProgram "No_Delete_State" hoDD To bNoDelete |
||
2179 | Get PropertyBooleanEval of oProgram "No_Relate_State" hoDD To bNoRelate |
||
2180 | Get PropertyBooleanEval of oProgram "Parent_Changed_State" hoDD To bParentChanged |
||
2181 | Get PropertyBooleanEval of oProgram "pbInheritConstraints" hoDD To bInheritConstraints |
||
2182 | Get PropertyBooleanEval of oProgram "pbUseDDRelates" hoDD To bUseDDRelates |
||
2183 | Get PropertyBooleanEval of oProgram "pbNoCascadeDeleteStrict" hoDD To bNoCascadeDeleteStrict |
||
2184 | Get PropertyBooleanEval of oProgram "Cascade_Delete_State" hoDD To bCascadeDelete |
||
2185 | 40 | wil | |
2186 | 49 | wil | Move iMainFile To Table.iNr |
2187 | Move sTableName To Table.sName |
||
2188 | Move bShouldSave To Table.bShouldSave |
||
2189 | Move bTableChanged To Table.bChangedState |
||
2190 | Move bInUse To Table.bInUse |
||
2191 | Move bAutoFill To Table.bAutoFill |
||
2192 | Move bFillFromFirst To Table.bFillFromFirst |
||
2193 | Move bProtectKey To Table.bProtectKey |
||
2194 | Move bReadOnly To Table.bReadOnly |
||
2195 | Move bNoDelete To Table.bNoDelete |
||
2196 | Move bNoRelate To Table.bNoRelate |
||
2197 | Move bParentChanged To Table.bParentChanged |
||
2198 | Move bInheritConstraints To Table.bInheritConstraints |
||
2199 | Move bUseDDRelates To Table.bUseDDRelates |
||
2200 | Move bNoCascadeDeleteStrict To Table.bNoCascadeDeleteStrict |
||
2201 | Move bCascadeDelete To Table.bCascadeDelete |
||
2202 | Move iOrdering To Table.iOrdering |
||
2203 | 40 | wil | |
2204 | 50 | wil | Get ForeignFieldOptions hoDD To Foreign |
2205 | Get EnumerateColumns hoDD sTableName To Columns |
||
2206 | Get EnumerateParents hoDD To Servers |
||
2207 | Get EnumerateChilds hoDD To Clients |
||
2208 | |||
2209 | Move Foreign To Table.Foreign |
||
2210 | 39 | wil | Move Columns To Table.Columns |
2211 | 40 | wil | Move Servers To Table.Servers |
2212 | Move Clients To Table.Clients |
||
2213 | |||
2214 | 39 | wil | Set pTable To Table |
2215 | 40 | wil | |
2216 | Send UpdateCurrentTab Of oTable_TD |
||
2217 | 38 | wil | End_Procedure |
2218 | End_Object |
||
2219 | |||
2220 | Object oObjectDetailsEdit is a Edit |
||
2221 | Set Location To 53 3 |
||
2222 | Set Size To 144 263 |
||
2223 | Set Read_Only_State to True |
||
2224 | Set peAnchors To anAll |
||
2225 | |||
2226 | Procedure Add_Line String sText |
||
2227 | String sValue |
||
2228 | |||
2229 | Send Append_Text (sText + CS_CRLF) |
||
2230 | End_Procedure // Add_Row |
||
2231 | |||
2232 | Procedure DisplayDeoDetails Handle hoDD |
||
2233 | Integer iFile |
||
2234 | Integer iField |
||
2235 | Integer iMainFile |
||
2236 | Integer iValue |
||
2237 | Handle hoTarget |
||
2238 | Handle hoFileDD |
||
2239 | Handle hoMainDD |
||
2240 | String sFile |
||
2241 | String sField |
||
2242 | String sValue |
||
2243 | String sLine |
||
2244 | |||
2245 | Get phoTarget To hoTarget |
||
2246 | Get PropertyHandleEval of oProgram "Main_DD" hoTarget to hoMainDD |
||
2247 | If (hoMainDD) Begin |
||
2248 | |||
2249 | Get ShortName Of oProgram hoMainDD To sValue |
||
2250 | Move ("Main DD : "+sValue) To sLine |
||
2251 | 25 | wil | Send Add_Line sLine |
2252 | 38 | wil | End |
2253 | |||
2254 | Get PropertyIntegerEval of oProgram "Main_File" hoDD to iMainFile |
||
2255 | |||
2256 | 51 | wil | Get PropertyStringEval of oProgram "Label" hoTarget to sValue |
2257 | If (sValue<>"0") Begin |
||
2258 | Move ("Label : "+trim(sValue)) to sLine |
||
2259 | Send Add_Line sLine |
||
2260 | End |
||
2261 | Get PropertyIntegerEval of oProgram "Label_Col_Offset" hoTarget to iValue |
||
2262 | 38 | wil | If (iValue<>0) Begin |
2263 | Move ("Label_Col_Offset : "+trim(iValue)) To sLine |
||
2264 | Send Add_Line sLine |
||
2265 | End |
||
2266 | Get PropertyIntegerEval of oProgram "Label_Row_Offset" hoTarget To iValue |
||
2267 | If (iValue<>0) Begin |
||
2268 | Move ("Label_Row_Offset : "+trim(iValue)) To sLine |
||
2269 | Send Add_Line sLine |
||
2270 | End |
||
2271 | Get PropertyIntegerEval of oProgram "Label_Justification_Mode" hoTarget To iValue |
||
2272 | If (iValue<>jmode_left) Begin |
||
2273 | Get JustificationModeToString iValue To sValue |
||
2274 | Move ("Label_Justification_Mode : "+sValue) To sLine |
||
2275 | Send Add_Line sLine |
||
2276 | End |
||
2277 | |||
2278 | |||
2279 | Get ShortName Of oProgram hoDD To sValue |
||
2280 | Move ("Server : "+sValue) To sLine |
||
2281 | Send Add_Line sLine |
||
2282 | |||
2283 | Get PropertyIntegerEval of oProgram "Data_File" hoTarget To iFile |
||
2284 | If (iFile<>0) Begin |
||
2285 | Get PropertyIntegerEval of oProgram "Data_Field" hoTarget to iField |
||
2286 | Move ("File/Field : "+trim(iFile)+","+trim(iField)) To sLine |
||
2287 | Send Add_line sLine |
||
2288 | 33 | wil | |
2289 | 50 | wil | Get TableName hoDD iFile To sFile |
2290 | Move ("File : "+sFile) To sLine |
||
2291 | 38 | wil | Send Add_line sLine |
2292 | 34 | wil | |
2293 | 38 | wil | If (iMainFile<>0 and iMainFile<>iFile) Begin |
2294 | Get StringEval of oProgram ("Data_Set("+trim(hoDD)+","+trim(iFile)+")") To hoFileDD |
||
2295 | 33 | wil | End |
2296 | 38 | wil | Else Begin |
2297 | Move hoDD To hoFileDD |
||
2298 | 33 | wil | End |
2299 | 38 | wil | Get StringEval of oProgram ("Field_Label_Tag("+trim(hoFileDD)+","+trim(iField)+")") To sValue |
2300 | Move sValue To sField |
||
2301 | Move ("Field : "+sValue) To sLine |
||
2302 | Send Add_line sLine |
||
2303 | 19 | wil | |
2304 | 38 | wil | Get StringEval of oProgram ("File_Field_Current_Value("+trim(hoDD)+","+trim(iFile)+","+trim(iField)+")") To sValue |
2305 | Move ("DD Value : "+sValue) To sLine |
||
2306 | Send Add_line sLine |
||
2307 | |||
2308 | Get StringEval of oProgram (trim(sFile)+"."+trim(sField)) To sValue |
||
2309 | Move ("Record Value : "+sValue) To sLine |
||
2310 | Send Add_line sLine |
||
2311 | |||
2312 | Get StringEval of oProgram ("File_Field_Changed_State("+trim(hoDD)+","+trim(iFile)+","+trim(iField)+")") To sValue |
||
2313 | Get BooleanToString sValue To sValue |
||
2314 | Move ("DD Changed_State : "+sValue) To sLine |
||
2315 | Send Add_line sLine |
||
2316 | End |
||
2317 | End_Procedure |
||
2318 | |||
2319 | |||
2320 | Procedure DisplayViewDetails |
||
2321 | Handle hoDialog |
||
2322 | Boolean bState |
||
2323 | String sValue |
||
2324 | String sLine |
||
2325 | Integer eBorderStyle |
||
2326 | Integer ciMaxSize |
||
2327 | Integer ciMinSize |
||
2328 | |||
2329 | Get phoTarget To hoDialog |
||
2330 | Send Add_Line "dbView Object" |
||
2331 | Get PropertyIntegerEval of oProgram "piMinSize" hoDialog To ciMinSize |
||
2332 | If (ciMinSize<>0) Begin |
||
2333 | Get ComplexToString ciMinSize To sValue |
||
2334 | Move ("piMinSize : "+sValue) To sLine |
||
2335 | Send Add_Line sLine |
||
2336 | End |
||
2337 | Get PropertyIntegerEval of oProgram "piMaxSize" hoDialog To ciMaxSize |
||
2338 | If (ciMaxSize<>0) Begin |
||
2339 | Get ComplexToString ciMaxSize To sValue |
||
2340 | Move ("piMaxSize : "+sValue) To sLine |
||
2341 | Send Add_Line sLine |
||
2342 | End |
||
2343 | Get PropertyIntegerEval of oProgram "Border_Style" hoDialog To eBorderStyle |
||
2344 | If (eBorderStyle<>Border_Dialog) Begin |
||
2345 | Get BorderStyleToString eBorderStyle To sValue |
||
2346 | Move ("Border_Style : "+sValue) To sLine |
||
2347 | Send Add_Line sLine |
||
2348 | End |
||
2349 | Get PropertyBooleanEval of oProgram "Minimize_Icon" hoDialog to bState |
||
2350 | If (bState=false) Begin |
||
2351 | Move ("Minimize_Icon : false") To sLine |
||
2352 | Send Add_Line sLine |
||
2353 | End |
||
2354 | |||
2355 | End_Procedure |
||
2356 | |||
2357 | 51 | wil | Procedure DisplayNonDeoDetails |
2358 | Integer iValue |
||
2359 | Integer iCount |
||
2360 | Integer iItem |
||
2361 | Integer iDisplayed |
||
2362 | Handle hoTarget |
||
2363 | String sValue |
||
2364 | String sLine |
||
2365 | |||
2366 | Get phoTarget to hoTarget |
||
2367 | |||
2368 | Get PropertyStringEval of oProgram "Label" hoTarget to sValue |
||
2369 | If (sValue<>"0") Begin |
||
2370 | Move ("Label : "+trim(sValue)) to sLine |
||
2371 | Send Add_Line sLine |
||
2372 | End |
||
2373 | Get PropertyIntegerEval of oProgram "Label_Col_Offset" hoTarget to iValue |
||
2374 | If (iValue<>0) Begin |
||
2375 | Move ("Label_Col_Offset : "+trim(iValue)) to sLine |
||
2376 | Send Add_Line sLine |
||
2377 | End |
||
2378 | Get PropertyIntegerEval of oProgram "Label_Row_Offset" hoTarget to iValue |
||
2379 | If (iValue<>0) Begin |
||
2380 | Move ("Label_Row_Offset : "+trim(iValue)) to sLine |
||
2381 | Send Add_Line sLine |
||
2382 | End |
||
2383 | Get PropertyIntegerEval of oProgram "Label_Justification_Mode" hoTarget to iValue |
||
2384 | If (iValue<>jmode_left) Begin |
||
2385 | Get JustificationModeToString iValue to sValue |
||
2386 | Move ("Label_Justification_Mode : "+sValue) to sLine |
||
2387 | Send Add_Line sLine |
||
2388 | End |
||
2389 | Get PropertyIntegerEval of oProgram "Item_Count" hoTarget to iCount |
||
2390 | If (iCount>0) Begin |
||
2391 | Move ("Item_Count : "+trim(iCount)) to sLine |
||
2392 | Send Add_Line sLine |
||
2393 | Move 0 to iDisplayed |
||
2394 | For iItem from 0 to (iCount-1) |
||
2395 | Get StringEval of oProgram ("Value("+trim(hoTarget)+","+Trim(iItem)+")") to sValue |
||
2396 | If (sValue<>"") Begin |
||
2397 | Move ("item "+Trim(iItem)+" : "+trim(sValue)) to sLine |
||
2398 | Send Add_Line sLine |
||
2399 | Increment iDisplayed |
||
2400 | If (iCount>30 and iDisplayed=30) Begin |
||
2401 | Send Add_Line "... more" // limit over 30 data points on this to keep things fast |
||
2402 | Move iCount to iItem |
||
2403 | End |
||
2404 | End |
||
2405 | Loop |
||
2406 | End |
||
2407 | End_Procedure |
||
2408 | |||
2409 | 38 | wil | Procedure DisplayObjectDetails |
2410 | Handle hoTarget |
||
2411 | 53 | wil | Handle hWnd |
2412 | Handle hChildWnd |
||
2413 | 38 | wil | Integer ciSize |
2414 | Integer ciLocation |
||
2415 | Integer eWindowsClass |
||
2416 | Integer eAnchors |
||
2417 | 41 | wil | Boolean bIsCreated |
2418 | 38 | wil | String sValue |
2419 | String sLine |
||
2420 | |||
2421 | Send Delete_Data |
||
2422 | |||
2423 | Get phoTarget To hoTarget |
||
2424 | |||
2425 | Get xBitmapIDForObj of oProgram hoTarget To eWindowsClass |
||
2426 | Get PropertyIntegerEval of oProgram "Size" hoTarget To ciSize |
||
2427 | If (ciSize<>0) begin |
||
2428 | Get ComplexToString ciSize To sValue |
||
2429 | Move ("Size : "+sValue) To sLine |
||
2430 | Send Add_Line sLine |
||
2431 | End |
||
2432 | 19 | wil | |
2433 | 38 | wil | Get PropertyIntegerEval of oProgram "Location" hoTarget To ciLocation |
2434 | If (ciLocation<>0) Begin |
||
2435 | Get ComplexToString ciLocation To sValue |
||
2436 | Move ("Location : "+sValue) To sLine |
||
2437 | Send Add_Line sLine |
||
2438 | End |
||
2439 | 19 | wil | |
2440 | 38 | wil | Get PropertyIntegerEval of oProgram "peAnchors" hoTarget To eAnchors |
2441 | If (eAnchors<>anNone) Begin |
||
2442 | Get AnchorsToString eAnchors To sValue |
||
2443 | Move ("peAnchors : "+sValue) To sLine |
||
2444 | Send Add_Line sLine |
||
2445 | End |
||
2446 | 22 | wil | |
2447 | 53 | wil | Move 0 To hWnd |
2448 | Get PropertyIntegerEval of oProgram "Window_Handle" hoTarget To sValue |
||
2449 | If (sValue<>0) Begin |
||
2450 | Move sValue To hWnd |
||
2451 | Move ("Window Handle : "+sValue+" ($"+IntToHex(sValue)+")") To sLine |
||
2452 | Send Add_Line sLine |
||
2453 | End |
||
2454 | |||
2455 | |||
2456 | 41 | wil | If (eWindowsClass=bmpPDSActiveX) Begin |
2457 | Get ProgID of oProgram hoTarget To sValue |
||
2458 | Move ("ProgID : "+sValue) To sLine |
||
2459 | Send Add_Line sLine |
||
2460 | If (sValue<>"") Begin |
||
2461 | Get ActivexName of oProgram hoTarget to sValue |
||
2462 | Move ("Control Name : "+sValue) To sLine |
||
2463 | Send Add_Line sLine |
||
2464 | End |
||
2465 | Get PropertyBooleanEval Of oProgram "IsComObjectCreated" hoTarget To bIsCreated |
||
2466 | Get BooleanToString bIsCreated To sValue |
||
2467 | Move ("IsComObjectCreated : "+sValue) To sLine |
||
2468 | Send Add_Line sLine |
||
2469 | 53 | wil | if (bIsCreated) Begin |
2470 | // Below doesn't work, not sure why, get "External function not defined error" |
||
2471 | //Get PropertyVariantEval of oProgram "pvComObject" hoTarget To sValue |
||
2472 | //If (sValue<>0) Begin |
||
2473 | // Move ("pvComObject : "+sValue+" ($"+IntToHex(sValue)+")") To sLine |
||
2474 | // Send Add_Line sLine |
||
2475 | //End |
||
2476 | |||
2477 | If (hWnd<>0) Begin |
||
2478 | Get FindFirstChildWindowHandle hWnd To hChildWnd |
||
2479 | while (hChildWnd<>0) |
||
2480 | Get WindowsClassnameForWindowsHandle hChildWnd To sValue |
||
2481 | Move ("ActiveX Control : "+sValue+" ($"+IntToHex(hChildWnd)+")") To sLine |
||
2482 | Send Add_Line sLine |
||
2483 | Get FindNextChildWindowHandle hWnd hChildWnd To hChildWnd |
||
2484 | loop |
||
2485 | End |
||
2486 | |||
2487 | Get PropertyIntegerEval of oProgram "PHDISPATCHDRIVER" hoTarget To sValue |
||
2488 | If (sValue<>0) Begin |
||
2489 | Move ("phDispatchDriver : "+sValue+" ($"+IntToHex(sValue)+")") To sLine |
||
2490 | Send Add_Line sLine |
||
2491 | End |
||
2492 | End |
||
2493 | |||
2494 | 41 | wil | End |
2495 | |||
2496 | 38 | wil | End_Procedure |
2497 | End_Object |
||
2498 | End_Object // oDetailsGroup |
||
2499 | 19 | wil | |
2500 | End_Object // oObjectInspectorPanel |
||
2501 | |||
2502 | |||
2503 | 53 | wil | Procedure StartObjectInspector |
2504 | Boolean bStarted |
||
2505 | Boolean bPaused |
||
2506 | |||
2507 | Get HasProgramStarted To bStarted |
||
2508 | If (bStarted) Begin |
||
2509 | Get HasProgramPaused To bPaused // Automatically pause the program if not already |
||
2510 | If (bPaused=false) Begin // paused as otherwise the object inspector can't show much |
||
2511 | Send doDebugPause // of anything. |
||
2512 | End |
||
2513 | Send ActivateObjectInspectorPanel To oObjectInspectorPanel |
||
2514 | End |
||
2515 | Else Begin |
||
2516 | Send Info_Box "The object inspector only works when debugging a program.\nIt appears that we are not doing that now." |
||
2517 | End |
||
2518 | End_Procedure // StartObjectInspector |
||
2519 | 19 | wil | |
2520 | |||
2521 | 53 | wil | |
2522 | |||
2523 | On_Key Key_Ctrl+Key_L Send StartObjectInspector |