1 unit QtWSFactory;
2
3 {$mode objfpc}{$H+}
4
5 interface
6 uses
7 Classes, Controls, ComCtrls, Calendar, StdCtrls, Spin, Grids,
8 Dialogs, ExtCtrls, Buttons, CheckLst, Forms, Menus, RubberBand, PairSplitter,
9 WSLCLClasses;
10
11 // imglist
RegisterCustomImageListResolutionnull12 function RegisterCustomImageListResolution: Boolean;
13 // controls
RegisterDragImageListResolutionnull14 function RegisterDragImageListResolution: Boolean;
RegisterLazAccessibleObjectnull15 function RegisterLazAccessibleObject: Boolean;
RegisterControlnull16 function RegisterControl: Boolean;
RegisterWinControlnull17 function RegisterWinControl: Boolean;
RegisterGraphicControlnull18 function RegisterGraphicControl: Boolean;
RegisterCustomControlnull19 function RegisterCustomControl: Boolean;
20 // comctrls
RegisterStatusBarnull21 function RegisterStatusBar: Boolean;
RegisterTabSheetnull22 function RegisterTabSheet: Boolean;
RegisterPageControlnull23 function RegisterPageControl: Boolean;
RegisterCustomListViewnull24 function RegisterCustomListView: Boolean;
RegisterCustomProgressBarnull25 function RegisterCustomProgressBar: Boolean;
RegisterCustomUpDownnull26 function RegisterCustomUpDown: Boolean;
RegisterCustomToolButtonnull27 function RegisterCustomToolButton: Boolean;
RegisterToolBarnull28 function RegisterToolBar: Boolean;
RegisterCustomTrackBarnull29 function RegisterCustomTrackBar: Boolean;
RegisterCustomTreeViewnull30 function RegisterCustomTreeView: Boolean;
31 // calendar
RegisterCustomCalendarnull32 function RegisterCustomCalendar: Boolean;
33 // dialogs
RegisterCommonDialognull34 function RegisterCommonDialog: Boolean;
RegisterFileDialognull35 function RegisterFileDialog: Boolean;
RegisterOpenDialognull36 function RegisterOpenDialog: Boolean;
RegisterSaveDialognull37 function RegisterSaveDialog: Boolean;
RegisterSelectDirectoryDialognull38 function RegisterSelectDirectoryDialog: Boolean;
RegisterColorDialognull39 function RegisterColorDialog: Boolean;
RegisterColorButtonnull40 function RegisterColorButton: Boolean;
RegisterFontDialognull41 function RegisterFontDialog: Boolean;
42 // StdCtrls
RegisterCustomScrollBarnull43 function RegisterCustomScrollBar: Boolean;
RegisterCustomGroupBoxnull44 function RegisterCustomGroupBox: Boolean;
RegisterCustomComboBoxnull45 function RegisterCustomComboBox: Boolean;
RegisterCustomListBoxnull46 function RegisterCustomListBox: Boolean;
RegisterCustomEditnull47 function RegisterCustomEdit: Boolean;
RegisterCustomMemonull48 function RegisterCustomMemo: Boolean;
RegisterButtonControlnull49 function RegisterButtonControl: Boolean;
RegisterCustomButtonnull50 function RegisterCustomButton: Boolean;
RegisterCustomCheckBoxnull51 function RegisterCustomCheckBox: Boolean;
RegisterToggleBoxnull52 function RegisterToggleBox: Boolean;
RegisterRadioButtonnull53 function RegisterRadioButton: Boolean;
RegisterCustomStaticTextnull54 function RegisterCustomStaticText: Boolean;
RegisterCustomLabelnull55 function RegisterCustomLabel: Boolean;
56 // extctrls
RegisterCustomPagenull57 function RegisterCustomPage: Boolean;
RegisterCustomNotebooknull58 function RegisterCustomNotebook: Boolean;
RegisterShapenull59 function RegisterShape: Boolean;
RegisterCustomSplitternull60 function RegisterCustomSplitter: Boolean;
RegisterPaintBoxnull61 function RegisterPaintBox: Boolean;
RegisterCustomImagenull62 function RegisterCustomImage: Boolean;
RegisterBevelnull63 function RegisterBevel: Boolean;
RegisterCustomRadioGroupnull64 function RegisterCustomRadioGroup: Boolean;
RegisterCustomCheckGroupnull65 function RegisterCustomCheckGroup: Boolean;
RegisterCustomLabeledEditnull66 function RegisterCustomLabeledEdit: Boolean;
RegisterCustomPanelnull67 function RegisterCustomPanel: Boolean;
RegisterCustomTrayIconnull68 function RegisterCustomTrayIcon: Boolean;
69 //ExtDlgs
RegisterPreviewFileControlnull70 function RegisterPreviewFileControl: Boolean;
RegisterPreviewFileDialognull71 function RegisterPreviewFileDialog: Boolean;
RegisterOpenPictureDialognull72 function RegisterOpenPictureDialog: Boolean;
RegisterSavePictureDialognull73 function RegisterSavePictureDialog: Boolean;
RegisterCalculatorDialognull74 function RegisterCalculatorDialog: Boolean;
RegisterCalculatorFormnull75 function RegisterCalculatorForm: Boolean;
RegisterCalendarDialognull76 function RegisterCalendarDialog: Boolean;
77 // Buttons
RegisterCustomBitBtnnull78 function RegisterCustomBitBtn: Boolean;
RegisterCustomSpeedButtonnull79 function RegisterCustomSpeedButton: Boolean;
80 // CheckLst
RegisterCustomCheckListBoxnull81 function RegisterCustomCheckListBox: Boolean;
82 // Forms
RegisterScrollingWinControlnull83 function RegisterScrollingWinControl: Boolean;
RegisterScrollBoxnull84 function RegisterScrollBox: Boolean;
RegisterCustomFramenull85 function RegisterCustomFrame: Boolean;
RegisterCustomFormnull86 function RegisterCustomForm: Boolean;
RegisterHintWindownull87 function RegisterHintWindow: Boolean;
RegisterCustomGridnull88 function RegisterCustomGrid: Boolean;
RegisterMenuItemnull89 function RegisterMenuItem: Boolean;
RegisterMenunull90 function RegisterMenu: Boolean;
RegisterMainMenunull91 function RegisterMainMenu: Boolean;
RegisterPopupMenunull92 function RegisterPopupMenu: Boolean;
RegisterPairSplitterSidenull93 function RegisterPairSplitterSide: Boolean;
RegisterCustomPairSplitternull94 function RegisterCustomPairSplitter: Boolean;
RegisterCustomFloatSpinEditnull95 function RegisterCustomFloatSpinEdit: Boolean;
RegisterCustomRubberBandnull96 function RegisterCustomRubberBand: Boolean;
97 // LazDeviceAPIs
RegisterLazDeviceAPIsnull98 function RegisterLazDeviceAPIs: Boolean;
99
100 implementation
101 uses
102 QtWSButtons,
103 QtWSCalendar,
104 QtWSCheckLst,
105 QtWSComCtrls,
106 QtWSControls,
107 QtWSDialogs,
108 QtWSExtCtrls,
109 QtWSForms,
110 QtWSMenus,
111 QtWSPairSplitter,
112 QtWSSpin,
113 QtWSStdCtrls,
114 QtWSGrids,
115 QtWSDesigner;
116
117 // imglist
RegisterCustomImageListResolutionnull118 function RegisterCustomImageListResolution: Boolean; alias : 'WSRegisterCustomImageListResolution';
119 begin
120 Result := False;
121 end;
122
123 // controls
RegisterDragImageListResolutionnull124 function RegisterDragImageListResolution: Boolean; alias : 'WSRegisterDragImageListResolution';
125 begin
126 RegisterWSComponent(TDragImageListResolution, TQtWSDragImageListResolution);
127 Result := True;
128 end;
129
RegisterLazAccessibleObjectnull130 function RegisterLazAccessibleObject: Boolean; alias : 'WSRegisterLazAccessibleObject';
131 begin
132 // RegisterWSLazAccessibleObject(TGtk2WSLazAccessibleObject);
133 // Result := True;
134 Result := False;
135 end;
136
RegisterControlnull137 function RegisterControl: Boolean; alias : 'WSRegisterControl';
138 begin
139 Result := False;
140 end;
141
RegisterWinControlnull142 function RegisterWinControl: Boolean; alias : 'WSRegisterWinControl';
143 begin
144 RegisterWSComponent(TWinControl, TQtWSWinControl);
145 Result := True;
146 end;
147
RegisterGraphicControlnull148 function RegisterGraphicControl: Boolean; alias : 'WSRegisterGraphicControl';
149 begin
150 Result := False;
151 end;
152
RegisterCustomControlnull153 function RegisterCustomControl: Boolean; alias : 'WSRegisterCustomControl';
154 begin
155 RegisterWSComponent(TCustomControl, TQtWSCustomControl);
156 Result := True;
157 end;
158
159 // comctrls
RegisterStatusBarnull160 function RegisterStatusBar: Boolean; alias : 'WSRegisterStatusBar';
161 begin
162 RegisterWSComponent(TStatusBar, TQtWSStatusBar);
163 Result := True;
164 end;
165
RegisterTabSheetnull166 function RegisterTabSheet: Boolean; alias : 'WSRegisterTabSheet';
167 begin
168 Result := False;
169 end;
170
RegisterPageControlnull171 function RegisterPageControl: Boolean; alias : 'WSRegisterPageControl';
172 begin
173 Result := False;
174 end;
175
RegisterCustomListViewnull176 function RegisterCustomListView: Boolean; alias : 'WSRegisterCustomListView';
177 begin
178 RegisterWSComponent(TCustomListView, TQtWSCustomListView);
179 Result := True;
180 end;
181
RegisterCustomProgressBarnull182 function RegisterCustomProgressBar: Boolean; alias : 'WSRegisterCustomProgressBar';
183 begin
184 RegisterWSComponent(TCustomProgressBar, TQtWSProgressBar);
185 Result := True;
186 end;
187
RegisterCustomUpDownnull188 function RegisterCustomUpDown: Boolean; alias : 'WSRegisterCustomUpDown';
189 begin
190 Result := False;
191 end;
192
RegisterCustomToolButtonnull193 function RegisterCustomToolButton: Boolean; alias : 'WSRegisterCustomToolButton';
194 begin
195 Result := False;
196 end;
197
RegisterToolBarnull198 function RegisterToolBar: Boolean; alias : 'WSRegisterToolBar';
199 begin
200 RegisterWSComponent(TToolBar, TQtWSToolBar);
201 Result := True;
202 end;
203
RegisterCustomTrackBarnull204 function RegisterCustomTrackBar: Boolean; alias : 'WSRegisterCustomTrackBar';
205 begin
206 RegisterWSComponent(TCustomTrackBar, TQtWSTrackBar);
207 Result := True;
208 end;
209
RegisterCustomTreeViewnull210 function RegisterCustomTreeView: Boolean; alias : 'WSRegisterCustomTreeView';
211 begin
212 Result := False;
213 end;
214
215 // calendar
RegisterCustomCalendarnull216 function RegisterCustomCalendar: Boolean; alias : 'WSRegisterCustomCalendar';
217 begin
218 RegisterWSComponent(TCustomCalendar, TQtWSCustomCalendar);
219 Result := True;
220 end;
221
222 // dialogs
RegisterCommonDialognull223 function RegisterCommonDialog: Boolean; alias : 'WSRegisterCommonDialog';
224 begin
225 RegisterWSComponent(TCommonDialog, TQtWSCommonDialog);
226 Result := True;
227 end;
228
RegisterFileDialognull229 function RegisterFileDialog: Boolean; alias : 'WSRegisterFileDialog';
230 begin
231 RegisterWSComponent(TFileDialog, TQtWSFileDialog);
232 Result := True;
233 end;
234
RegisterOpenDialognull235 function RegisterOpenDialog: Boolean; alias : 'WSRegisterOpenDialog';
236 begin
237 RegisterWSComponent(TOpenDialog, TQtWSOpenDialog);
238 Result := True;
239 end;
240
RegisterSaveDialognull241 function RegisterSaveDialog: Boolean; alias : 'WSRegisterSaveDialog';
242 begin
243 Result := False;
244 end;
245
RegisterSelectDirectoryDialognull246 function RegisterSelectDirectoryDialog: Boolean; alias : 'WSRegisterSelectDirectoryDialog';
247 begin
248 RegisterWSComponent(TSelectDirectoryDialog, TQtWSSelectDirectoryDialog);
249 Result := True;
250 end;
251
RegisterColorDialognull252 function RegisterColorDialog: Boolean; alias : 'WSRegisterColorDialog';
253 begin
254 RegisterWSComponent(TColorDialog, TQtWSColorDialog);
255 Result := True;
256 end;
257
RegisterColorButtonnull258 function RegisterColorButton: Boolean; alias : 'WSRegisterColorButton';
259 begin
260 Result := False;
261 end;
262
RegisterFontDialognull263 function RegisterFontDialog: Boolean; alias : 'WSRegisterFontDialog';
264 begin
265 RegisterWSComponent(TFontDialog, TQtWSFontDialog);
266 Result := True;
267 end;
268
269 // StdCtrls
RegisterCustomScrollBarnull270 function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar';
271 begin
272 RegisterWSComponent(TCustomScrollBar, TQtWSScrollBar);
273 Result := True;
274 end;
275
RegisterCustomGroupBoxnull276 function RegisterCustomGroupBox: Boolean; alias : 'WSRegisterCustomGroupBox';
277 begin
278 RegisterWSComponent(TCustomGroupBox, TQtWSCustomGroupBox);
279 Result := True;
280 end;
281
RegisterCustomComboBoxnull282 function RegisterCustomComboBox: Boolean; alias : 'WSRegisterCustomComboBox';
283 begin
284 RegisterWSComponent(TCustomComboBox, TQtWSCustomComboBox);
285 Result := True;
286 end;
287
RegisterCustomListBoxnull288 function RegisterCustomListBox: Boolean; alias : 'WSRegisterCustomListBox';
289 begin
290 RegisterWSComponent(TCustomListBox, TQtWSCustomListBox);
291 Result := True;
292 end;
293
RegisterCustomEditnull294 function RegisterCustomEdit: Boolean; alias : 'WSRegisterCustomEdit';
295 begin
296 RegisterWSComponent(TCustomEdit, TQtWSCustomEdit);
297 Result := True;
298 end;
299
RegisterCustomMemonull300 function RegisterCustomMemo: Boolean; alias : 'WSRegisterCustomMemo';
301 begin
302 RegisterWSComponent(TCustomMemo, TQtWSCustomMemo);
303 Result := True;
304 end;
305
RegisterButtonControlnull306 function RegisterButtonControl: Boolean; alias : 'WSRegisterButtonControl';
307 begin
308 Result := False;
309 end;
310
RegisterCustomButtonnull311 function RegisterCustomButton: Boolean; alias : 'WSRegisterCustomButton';
312 begin
313 RegisterWSComponent(TCustomButton, TQtWSButton);
314 Result := True;
315 end;
316
RegisterCustomCheckBoxnull317 function RegisterCustomCheckBox: Boolean; alias : 'WSRegisterCustomCheckBox';
318 begin
319 RegisterWSComponent(TCustomCheckBox, TQtWSCustomCheckBox);
320 Result := True;
321 end;
322
RegisterToggleBoxnull323 function RegisterToggleBox: Boolean; alias : 'WSRegisterToggleBox';
324 begin
325 RegisterWSComponent(TToggleBox, TQtWSToggleBox);
326 Result := True;
327 end;
328
RegisterRadioButtonnull329 function RegisterRadioButton: Boolean; alias : 'WSRegisterRadioButton';
330 begin
331 RegisterWSComponent(TRadioButton, TQtWSRadioButton);
332 Result := True;
333 end;
334
RegisterCustomStaticTextnull335 function RegisterCustomStaticText: Boolean; alias : 'WSRegisterCustomStaticText';
336 begin
337 RegisterWSComponent(TCustomStaticText, TQtWSCustomStaticText);
338 Result := True;
339 end;
340
RegisterCustomLabelnull341 function RegisterCustomLabel: Boolean; alias : 'WSRegisterCustomLabel';
342 begin
343 Result := False;
344 end;
345
346 // extctrls
RegisterCustomPagenull347 function RegisterCustomPage: Boolean; alias : 'WSRegisterCustomPage';
348 begin
349 RegisterWSComponent(TCustomPage, TQtWSCustomPage);
350 Result := True;
351 end;
352
RegisterCustomNotebooknull353 function RegisterCustomNotebook: Boolean; alias : 'WSRegisterCustomNotebook';
354 begin
355 RegisterWSComponent(TCustomTabControl, TQtWSCustomTabControl);
356 Result := True;
357 end;
358
RegisterShapenull359 function RegisterShape: Boolean; alias : 'WSRegisterShape';
360 begin
361 Result := False;
362 end;
363
RegisterCustomSplitternull364 function RegisterCustomSplitter: Boolean; alias : 'WSRegisterCustomSplitter';
365 begin
366 Result := False;
367 end;
368
RegisterPaintBoxnull369 function RegisterPaintBox: Boolean; alias : 'WSRegisterPaintBox';
370 begin
371 Result := False;
372 end;
373
RegisterCustomImagenull374 function RegisterCustomImage: Boolean; alias : 'WSRegisterCustomImage';
375 begin
376 Result := False;
377 end;
378
RegisterBevelnull379 function RegisterBevel: Boolean; alias : 'WSRegisterBevel';
380 begin
381 Result := False;
382 end;
383
RegisterCustomRadioGroupnull384 function RegisterCustomRadioGroup: Boolean; alias : 'WSRegisterCustomRadioGroup';
385 begin
386 RegisterWSComponent(TCustomRadioGroup, TQtWSCustomRadioGroup);
387 Result := True;
388 end;
389
RegisterCustomCheckGroupnull390 function RegisterCustomCheckGroup: Boolean; alias : 'WSRegisterCustomCheckGroup';
391 begin
392 RegisterWSComponent(TCustomCheckGroup, TQtWSCustomCheckGroup);
393 Result := True;
394 end;
395
RegisterCustomLabeledEditnull396 function RegisterCustomLabeledEdit: Boolean; alias : 'WSRegisterCustomLabeledEdit';
397 begin
398 Result := False;
399 end;
400
RegisterCustomPanelnull401 function RegisterCustomPanel: Boolean; alias : 'WSRegisterCustomPanel';
402 begin
403 RegisterWSComponent(TCustomPanel, TQtWSCustomPanel);
404 Result := True;
405 end;
406
RegisterCustomTrayIconnull407 function RegisterCustomTrayIcon: Boolean; alias : 'WSRegisterCustomTrayIcon';
408 begin
409 RegisterWSComponent(TCustomTrayIcon, TQtWSCustomTrayIcon);
410 Result := True;
411 end;
412
413 //ExtDlgs
RegisterPreviewFileControlnull414 function RegisterPreviewFileControl: Boolean; alias : 'WSRegisterPreviewFileControl';
415 begin
416 Result := False;
417 end;
418
RegisterPreviewFileDialognull419 function RegisterPreviewFileDialog: Boolean; alias : 'WSRegisterPreviewFileDialog';
420 begin
421 Result := False;
422 end;
423
RegisterOpenPictureDialognull424 function RegisterOpenPictureDialog: Boolean; alias : 'WSRegisterOpenPictureDialog';
425 begin
426 Result := False;
427 end;
428
RegisterSavePictureDialognull429 function RegisterSavePictureDialog: Boolean; alias : 'WSRegisterSavePictureDialog';
430 begin
431 Result := False;
432 end;
433
RegisterCalculatorDialognull434 function RegisterCalculatorDialog: Boolean; alias : 'WSRegisterCalculatorDialog';
435 begin
436 Result := False;
437 end;
438
RegisterCalculatorFormnull439 function RegisterCalculatorForm: Boolean; alias : 'WSRegisterCalculatorForm';
440 begin
441 Result := False;
442 end;
443
444 (*function RegisterCalendarDialogForm: Boolean; alias : 'WSRegisterCalendarDialogForm';
445 begin
446 Result := False;
447 end;*)
448
RegisterCalendarDialognull449 function RegisterCalendarDialog: Boolean; alias : 'WSRegisterCalendarDialog';
450 begin
451 Result := False;
452 end;
453
454 // Buttons
RegisterCustomBitBtnnull455 function RegisterCustomBitBtn: Boolean; alias : 'WSRegisterCustomBitBtn';
456 begin
457 RegisterWSComponent(TCustomBitBtn, TQtWSBitBtn);
458 Result := True;
459 end;
460
RegisterCustomSpeedButtonnull461 function RegisterCustomSpeedButton: Boolean; alias : 'WSRegisterCustomSpeedButton';
462 begin
463 Result := False;
464 end;
465
466 // CheckLst
RegisterCustomCheckListBoxnull467 function RegisterCustomCheckListBox: Boolean; alias : 'WSRegisterCustomCheckListBox';
468 begin
469 RegisterWSComponent(TCustomCheckListBox, TQtWSCustomCheckListBox);
470 Result := True;
471 end;
472
473 // Forms
RegisterScrollingWinControlnull474 function RegisterScrollingWinControl: Boolean; alias : 'WSRegisterScrollingWinControl';
475 begin
476 RegisterWSComponent(TScrollingWinControl, TQtWSScrollingWinControl);
477 Result := True;
478 end;
479
RegisterScrollBoxnull480 function RegisterScrollBox: Boolean; alias : 'WSRegisterScrollBox';
481 begin
482 RegisterWSComponent(TScrollBox, TQtWSScrollBox);
483 Result := True;
484 end;
485
RegisterCustomFramenull486 function RegisterCustomFrame: Boolean; alias : 'WSRegisterCustomFrame';
487 begin
488 RegisterWSComponent(TCustomFrame, TQtWSCustomFrame);
489 Result := True;
490 end;
491
RegisterCustomFormnull492 function RegisterCustomForm: Boolean; alias : 'WSRegisterCustomForm';
493 begin
494 RegisterWSComponent(TCustomForm, TQtWSCustomForm);
495 Result := True;
496 end;
497
RegisterHintWindownull498 function RegisterHintWindow: Boolean; alias : 'WSRegisterHintWindow';
499 begin
500 RegisterWSComponent(THintWindow, TQtWSHintWindow);
501 Result := True;
502 end;
503
RegisterCustomGridnull504 function RegisterCustomGrid: Boolean; alias : 'WSRegisterCustomGrid';
505 begin
506 RegisterWSComponent(TCustomGrid, TQtWSCustomGrid);
507 Result := True;
508 end;
509
RegisterMenuItemnull510 function RegisterMenuItem: Boolean; alias : 'WSRegisterMenuItem';
511 begin
512 RegisterWSComponent(TMenuItem, TQtWSMenuItem);
513 Result := True;
514 end;
515
RegisterMenunull516 function RegisterMenu: Boolean; alias : 'WSRegisterMenu';
517 begin
518 RegisterWSComponent(TMenu, TQtWSMenu);
519 Result := True;
520 end;
521
RegisterMainMenunull522 function RegisterMainMenu: Boolean; alias : 'WSRegisterMainMenu';
523 begin
524 Result := False;
525 end;
526
RegisterPopupMenunull527 function RegisterPopupMenu: Boolean; alias : 'WSRegisterPopupMenu';
528 begin
529 RegisterWSComponent(TPopupMenu, TQtWSPopupMenu);
530 Result := True;
531 end;
532
RegisterPairSplitterSidenull533 function RegisterPairSplitterSide: Boolean; alias : 'WSRegisterPairSplitterSide';
534 begin
535 RegisterWSComponent(TPairSplitterSide, TQtWSPairSplitterSide);
536 Result := True;
537 end;
538
RegisterCustomPairSplitternull539 function RegisterCustomPairSplitter: Boolean; alias : 'WSRegisterCustomPairSplitter';
540 begin
541 Result := False;
542 end;
543
RegisterCustomFloatSpinEditnull544 function RegisterCustomFloatSpinEdit: Boolean; alias : 'WSRegisterCustomFloatSpinEdit';
545 begin
546 RegisterWSComponent(TCustomFloatSpinEdit, TQtWSCustomFloatSpinEdit);
547 Result := True;
548 end;
549
RegisterCustomRubberBandnull550 function RegisterCustomRubberBand: Boolean; alias : 'WSRegisterCustomRubberBand';
551 begin
552 RegisterWSComponent(TCustomRubberBand, TQtWSCustomRubberBand);
553 Result := True;
554 end;
555
RegisterLazDeviceAPIsnull556 function RegisterLazDeviceAPIs: Boolean; alias : 'WSRegisterLazDeviceAPIs';
557 begin
558 //RegisterWSLazDeviceAPIs(TCDWSLazDeviceAPIs);
559 Result := False;
560 end;
561
562 procedure Init;
563 begin
564 // Keep a dummy Init to hide compiler messages "unit not used".
565 // The unit is used by the "alias" functions.
566 end;
567
568 initialization
569 Init;
570
571 end.
572
573