ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/design/IBDBReg.pas
Revision: 347
Committed: Mon Sep 20 22:08:20 2021 UTC (3 years, 2 months ago) by tony
Content type: text/x-pascal
File size: 39062 byte(s)
Log Message:
Updated Merged

File Contents

# User Rev Content
1 tony 33 {************************************************************************}
2     { }
3     { Borland Delphi Visual Component Library }
4     { InterBase Express core components }
5     { }
6     { Copyright (c) 1998-2000 Inprise Corporation }
7     { }
8     { InterBase Express is based in part on the product }
9     { Free IB Components, written by Gregory H. Deatz for }
10     { Hoagland, Longo, Moran, Dunst & Doukas Company. }
11     { Free IB Components is used under license. }
12     { }
13     { The contents of this file are subject to the InterBase }
14     { Public License Version 1.0 (the "License"); you may not }
15     { use this file except in compliance with the License. You }
16     { may obtain a copy of the License at http://www.Inprise.com/IPL.html }
17     { Software distributed under the License is distributed on }
18     { an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either }
19     { express or implied. See the License for the specific language }
20     { governing rights and limitations under the License. }
21     { The Original Code was created by InterBase Software Corporation }
22     { and its successors. }
23     { Portions created by Inprise Corporation are Copyright (C) Inprise }
24     { Corporation. All Rights Reserved. }
25     { Contributor(s): Jeff Overcash }
26     { }
27     { IBX For Lazarus (Firebird Express) }
28     { Contributor: Tony Whyman, MWA Software http://www.mwasoftware.co.uk }
29     { Portions created by MWA Software are copyright McCallum Whyman }
30 tony 143 { Associates Ltd 2011 - 2018 }
31 tony 33 {************************************************************************}
32    
33     unit IBDBReg;
34    
35     {$MODE Delphi}
36    
37     (*
38     * Compiler defines
39     *)
40     {$A+} (* Aligned records: On *)
41     {$B-} (* Short circuit boolean expressions: Off *)
42     {$H+} (* Huge Strings: On *)
43     {$J-} (* Modification of Typed Constants: Off *)
44     {$M+} (* Generate run-time type information: On *)
45     {$O+} (* Optimization: On *)
46     {$Q-} (* Overflow checks: Off *)
47     {$R-} (* Range checks: Off *)
48     {$T+} (* Typed address: On *)
49     {$W-} (* Always generate stack frames: Off *)
50     {$X+} (* Extended syntax: On *)
51     {$Z1} (* Minimum Enumeration Size: 1 Byte *)
52    
53     interface
54    
55     uses SysUtils, Classes, Graphics, Dialogs, Controls, Forms, TypInfo,
56     DB, IBTable, IBDatabase, IBEventsEditor, LazarusPackageIntf,
57 tony 80 IBUpdateSQL, IBUpdate, ComponentEditors, PropEdits, DBPropEdits, FieldsEditor,
58 tony 33 dbFieldLinkPropEditor, dbFieldListPropEditor, IBDialogs;
59    
60     type
61    
62     { TIBFileNameProperty
63     Property editor the DataBase Name property. Brings up the Open dialog }
64    
65     TIBFileNameProperty = class(TStringProperty)
66 tony 263 protected
67     function GetFilter: string; virtual;
68 tony 33 public
69     procedure Edit; override;
70     function GetAttributes: TPropertyAttributes; override;
71     end;
72    
73 tony 263 { TIBLibraryNameProperty }
74    
75     TIBLibraryNameProperty = class(TIBFileNameProperty)
76     protected
77     function GetFilter: string; override;
78     end;
79    
80 tony 33 { TIBNameProperty
81     }
82     TIBNameProperty = class(TStringProperty)
83     public
84     function GetAttributes: TPropertyAttributes; override;
85     end;
86    
87     { TIBStoredProcNameProperty
88     Editor for the TIBStoredProc.StoredProcName property. Displays a drop-down list of all
89     the StoredProcedures in the Database.}
90     TIBStoredProcNameProperty = class(TIBNameProperty)
91     public
92     procedure GetValues(Proc: TGetStrProc); override;
93     end;
94    
95 tony 107 { TIBPackageNameProperty
96     Editor for the TIBStoredProc.PackageName property. Displays a drop-down list of all
97     the StoredProcedures in the Database.}
98     TIBPackageNameProperty = class(TIBNameProperty)
99     public
100     procedure GetValues(Proc: TGetStrProc); override;
101     end;
102    
103 tony 33 { TIBTableNameProperty
104     Editor for the TIBTable.TableName property. Displays a drop-down list of all
105     the Tables in the Database.}
106     TIBTableNameProperty = class(TIBNameProperty)
107     public
108     procedure GetValues(Proc: TGetStrProc); override;
109     end;
110    
111     { TDBStringProperty }
112    
113     TDBStringProperty = class(TStringProperty)
114     private
115     function ConnecttoDB: boolean;
116     public
117     function GetAttributes: TPropertyAttributes; override;
118     procedure GetValueList(List: TStrings); virtual;
119     procedure GetValues(Proc: TGetStrProc); override;
120     procedure Edit; override;
121     end;
122    
123     { TIBIndexFieldNamesProperty }
124    
125     TIBIndexFieldNamesProperty = class(TDBStringProperty)
126     public
127     procedure GetValueList(List: TStrings); override;
128     end;
129    
130     TIBIndexNameProperty = class(TDBStringProperty)
131     public
132     procedure GetValueList(List: TStrings); override;
133     end;
134    
135     { TIBDatabaseEditor }
136    
137     TIBDatabaseEditor = class(TComponentEditor)
138     procedure ExecuteVerb(Index: Integer); override;
139     function GetVerb(Index: Integer): string; override;
140     function GetVerbCount: Integer; override;
141     end;
142    
143     { TIBTransactionEditor }
144    
145     TIBTransactionEditor = class(TComponentEditor)
146     public
147     procedure ExecuteVerb(Index: Integer); override;
148     function GetVerb(Index: Integer): string; override;
149     function GetVerbCount: Integer; override;
150     end;
151    
152 tony 45 { TIBArrayGridEditor }
153    
154     TIBArrayGridEditor = class(TComponentEditor)
155     public
156     procedure ExecuteVerb(Index: Integer); override;
157     function GetVerb(Index: Integer): string; override;
158     function GetVerbCount: Integer; override;
159     end;
160    
161 tony 33 { TIBQueryEditor }
162    
163     TIBQueryEditor = class(TFieldsComponentEditor)
164     public
165     procedure ExecuteVerb(Index: Integer); override;
166     function GetVerb(Index: Integer): string; override;
167     function GetVerbCount: Integer; override;
168     end;
169    
170     { TIBStoredProcEditor }
171    
172     TIBStoredProcEditor = class(TFieldsComponentEditor)
173     public
174     procedure ExecuteVerb(Index: Integer); override;
175     function GetVerb(Index: Integer): string; override;
176     function GetVerbCount: Integer; override;
177     end;
178    
179     { TIBDataSetEditor }
180    
181     TIBDataSetEditor = class(TFieldsComponentEditor)
182     public
183     procedure ExecuteVerb(Index: Integer); override;
184     function GetVerb(Index: Integer): string; override;
185     function GetVerbCount: Integer; override;
186     end;
187    
188     { TIBUpdateSQLEditor }
189    
190     TIBUpdateSQLEditor = class(TComponentEditor)
191     public
192     procedure ExecuteVerb(Index: Integer); override;
193     function GetVerb(Index: Integer): string; override;
194     function GetVerbCount: Integer; override;
195     end;
196    
197     { TIBSQLEditor }
198    
199     TIBSQLEditor = class(TComponentEditor)
200     public
201     procedure ExecuteVerb(Index: Integer); override;
202     function GetVerb(Index: Integer): string; override;
203     function GetVerbCount: Integer; override;
204     end;
205    
206     { TIBServiceEditor}
207    
208     TIBServiceEditor = class(TComponentEditor)
209     public
210     procedure ExecuteVerb(Index: Integer); override;
211     function GetVerb(Index: Integer): string; override;
212     function GetVerbCount: Integer; override;
213     end;
214    
215 tony 209 { TIBXServiceEditor }
216    
217     TIBXServiceEditor = class(TComponentEditor)
218     public
219     procedure ExecuteVerb(Index: Integer); override;
220     function GetVerb(Index: Integer): string; override;
221     function GetVerbCount: Integer; override;
222     end;
223    
224 tony 33 TIBStoredProcParamsProperty = class(TCollectionPropertyEditor)
225     end;
226    
227     { TIBTableFieldLinkProperty }
228    
229     TIBTableFieldLinkProperty = class(TFieldLinkProperty)
230     private
231     FTable: TIBTable;
232     protected
233     function GetIndexDefs: TIndexDefs; override;
234     function GetIndexFieldNames: string; override;
235     function GetMasterFields: string; override;
236     procedure SetIndexFieldNames(const Value: string); override;
237     procedure SetMasterFields(const Value: string); override;
238     public
239     procedure Edit; override;
240     end;
241    
242     { TSQLPropertyEditor }
243    
244     TSQLPropertyEditor = class(TStringsPropertyEditor)
245     public
246     function GetAttributes: TPropertyAttributes; override;
247     end;
248    
249     { TIBQuerySQLProperty }
250    
251     TIBQuerySQLProperty = class(TSQLPropertyEditor)
252     public
253     procedure Edit; override;
254     end;
255    
256     {TIBSQLSQLPropertyEditor }
257    
258     TIBSQLSQLPropertyEditor = class(TSQLPropertyEditor)
259     public
260     procedure Edit; override;
261     end;
262    
263     { TIBDatasetSQLProperty }
264    
265     TIBDatasetSQLProperty = class(TSQLPropertyEditor)
266     public
267     procedure Edit; override;
268     end;
269    
270     { TIBSQLProperty }
271    
272     TIBSQLProperty = class(TSQLPropertyEditor)
273     public
274     procedure Edit; override;
275     end;
276    
277     { TUpdateSQLPropertyEditor }
278    
279     TUpdateSQLPropertyEditor = class(TSQLPropertyEditor)
280     protected
281     FIBUpdateSQL: TIBUpdateSQL;
282     FDatabase: TIBDatabase;
283     function GetObjects: boolean;
284     end;
285    
286     { TIBUpdateSQLProperty }
287    
288     TIBUpdateSQLProperty = class(TSQLPropertyEditor)
289     public
290     procedure Edit; override;
291     end;
292    
293     { TIBRefreshSQLProperty }
294    
295     TIBRefreshSQLProperty = class(TSQLPropertyEditor)
296     public
297     procedure Edit; override;
298     end;
299    
300     { TIBInsertSQLProperty }
301    
302     TIBInsertSQLProperty = class(TSQLPropertyEditor)
303     public
304     procedure Edit; override;
305     end;
306    
307     { TIBDeleteSQLProperty }
308    
309     TIBDeleteSQLProperty = class(TSQLPropertyEditor)
310     public
311     procedure Edit; override;
312     end;
313    
314     { TIBUpdateSQLUpdateProperty }
315    
316     TIBUpdateSQLUpdateProperty = class(TUpdateSQLPropertyEditor)
317     public
318     procedure Edit; override;
319     end;
320    
321     { TIBUpdateSQLRefreshSQLProperty }
322    
323     TIBUpdateSQLRefreshSQLProperty = class(TUpdateSQLPropertyEditor)
324     public
325     procedure Edit; override;
326     end;
327    
328     { TIBUpdateSQLInsertSQLProperty }
329    
330     TIBUpdateSQLInsertSQLProperty = class(TUpdateSQLPropertyEditor)
331     public
332     procedure Edit; override;
333     end;
334    
335     { TIBUpdateSQLDeleteProperty }
336    
337     TIBUpdateSQLDeleteProperty = class(TUpdateSQLPropertyEditor)
338     public
339     function GetAttributes: TPropertyAttributes; override;
340     procedure Edit; override;
341     end;
342    
343 tony 126 { TIBUpdateRefreshSQLProperty }
344    
345     TIBUpdateRefreshSQLProperty = class(TSQLPropertyEditor)
346     protected
347     FIBUpdate: TIBUpdate;
348     FDatabase: TIBDatabase;
349     function GetObjects: boolean;
350     public
351     procedure Edit; override;
352     end;
353    
354    
355 tony 33 { TIBEventListProperty }
356    
357     TIBEventListProperty = class(TClassProperty)
358     public
359     function GetAttributes: TPropertyAttributes; override;
360     procedure Edit; override;
361     end;
362    
363     {TIBGeneratorProperty}
364    
365     TIBGeneratorProperty = class(TPersistentPropertyEditor)
366     public
367     function GetAttributes: TPropertyAttributes; override;
368     procedure Edit; override;
369     end;
370    
371     { TDBDynamicGridFieldProperty }
372    
373     TDBDynamicGridFieldProperty = class(TFieldProperty)
374     public
375     procedure FillValues(const Values: TStringList); override;
376     end;
377    
378     { TDBLookupPropertiesGridFieldProperty }
379    
380     TDBLookupPropertiesGridFieldProperty = class(TFieldProperty)
381     public
382     procedure FillValues(const Values: TStringList); override;
383     end;
384    
385     { TIBTreeViewFieldProperty }
386    
387     TIBTreeViewFieldProperty = class(TFieldProperty)
388     public
389     procedure FillValues(const Values: TStringList); override;
390     end;
391    
392     { TIBDynamicGridIndexNamesProperty }
393    
394     TIBDynamicGridIndexNamesProperty = class(TIndexFieldNamesProperty)
395     protected
396     function GetFieldDefs: TFieldDefs; override;
397     function GetIndexFieldNames: string; override;
398     procedure SetIndexFieldNames(const Value: string); override;
399     end;
400    
401 tony 45 { TIBFieldDefsProperty }
402 tony 33
403 tony 45 TIBFieldDefsProperty = class(TCollectionPropertyEditor)
404     public
405     procedure Edit; override;
406     end;
407 tony 33
408 tony 45 { TIBIndexDefsProperty }
409    
410     TIBIndexDefsProperty = class(TCollectionPropertyEditor)
411     public
412     procedure Edit; override;
413     end;
414    
415    
416 tony 33 procedure Register;
417    
418     implementation
419    
420 tony 291 uses IB, IBQuery, IBStoredProc, IBCustomDataSet, IBMessages,
421 tony 315 IBSQL, IBSQLMonitor, IBDatabaseInfo, IBEvents, IBInternals,
422 tony 209 IBServices, IBXServices, IBDatabaseEdit, IBTransactionEdit,
423 tony 33 IBBatchMove, IBExtract,LResources, IBSelectSQLEditor,
424     IBModifySQLEditor,IBDeleteSQLEditor,IBRefreshSQLEditor,
425     IBInsertSQLEditor, IBGeneratorEditor, IBUpdateSQLEditor, IBDataSetEditor,
426     IBSQLEditor, ibserviceeditor, LCLVersion, IBDynamicGrid, IBLookupComboEditBox,
427 tony 45 IBTreeView, DBControlGrid, ibxscript, IBLocalDBSupport, IBDSDialogs,
428 tony 209 IBArrayGrid, IBVersion, IBDataOutput, IBXServiceEditor;
429 tony 33
430 tony 45 const
431     IBPalette1 = 'Firebird'; {do not localize}
432 tony 209 IBPalette2 = 'Firebird Legacy Admin'; {do not localize}
433 tony 45 IBPalette3 = 'Firebird Data Controls'; {do not localize}
434 tony 209 IBPalette4 = 'Firebird Admin'; {do not localize}
435    
436 tony 45 resourcestring
437 tony 47 SInterbaseExpressVersion = 'Firebird Express for Lazarus ' + IBX_VERSION;
438 tony 45 SEditSQL = 'Edit SQL';
439     SIBSQLEditor = 'IBSQL Editor';
440     SIBServiceEditor = 'Edit IB Service';
441     SIBUpdateSQLEditor = '&UpdateSQL Editor...';
442     SIBDataSetEditor = '&Dataset Editor...';
443     SExecute = 'E&xecute';
444     SIBDatabaseEditor = 'Da&tabase Editor...';
445     SIBTransactionEditor = '&Transaction Editor...';
446     SIBUpdateLayout = 'Update Layout';
447 tony 347 SFBLibLoadProblem = 'IBX is unable to locate or otherwise load the Firebird Library - have you remembered to install it?';
448 tony 33
449     procedure Register;
450     begin
451 tony 263 AllowUseOfFBLIB := true;
452 tony 347 try
453     if not TryIBLoad then
454     begin
455     MessageDlg(SFBLibLoadProblem,mtError,[mbOK],0);
456     Exit;
457     end;
458     except on E: Exception do
459     begin
460     MessageDlg(SFBLibLoadProblem + ' - ' + E.Message,mtError,[mbOK],0);
461     Exit;
462     end;
463 tony 33 end;
464    
465 tony 106 RegisterNoIcon([TIBStringField, TIBBCDField, TIBMemoField, TIBArrayField,
466 tony 315 TIBSmallintField, TIBIntegerField, TIBLargeIntField, TIBDateTimeField,
467     TIBTimeField]);
468 tony 33 {$if lcl_fullversion < 01010000}
469     {see http://bugs.freepascal.org/view.php?id=19035 }
470     RegisterNoIcon([TIntegerField]);
471     {$endif}
472     RegisterComponents(IBPalette1, [ TIBQuery, TIBDataSet,
473 tony 80 TIBDatabase, TIBTransaction, TIBUpdateSQL, TIBUpdate, TIBEvents,
474 tony 33 TIBSQL, TIBDatabaseInfo, TIBSQLMonitor,
475 tony 47 TIBStoredProc,TIBBatchMove, TIBTable,TIBExtract, TIBXScript, TIBLocalDBSupport,
476     TIBBlockFormatOut,TIBCSVDataOut,TIBInsertStmtsOut]);
477 tony 45 if FirebirdAPI.HasServiceAPI then
478 tony 209 begin
479     RegisterComponents(IBPalette4, [TIBXServicesConnection, TIBXConfigService,
480     TIBXClientSideBackupService, TIBXServerSideBackupService,
481     TIBXClientSideRestoreService, TIBXServerSideRestoreService,
482     TIBXValidationService, TIBXOnlineValidationService, TIBXStatisticalService,
483     TIBXLogService, TIBXSecurityService, TIBXServerProperties,
484     TIBXLimboTransactionResolutionService,TIBXServicesUserList, TIBXServicesLimboTransactionsList]);
485 tony 33 RegisterComponents(IBPalette2, [TIBConfigService, TIBBackupService,
486 tony 209 TIBRestoreService, TIBValidationService,
487     TIBOnlineValidationService, TIBStatisticalService,
488 tony 33 TIBLogService, TIBSecurityService, TIBServerProperties]);
489 tony 209 end;
490 tony 33
491 tony 209 RegisterComponents(IBPalette3,[TIBLookupComboEditBox,TIBDynamicGrid,TIBTreeView,TDBControlGrid, TIBArrayGrid]);
492 tony 33
493     RegisterPropertyEditor(TypeInfo(TIBFileName), TIBDatabase, 'DatabaseName', TIBFileNameProperty); {do not localize}
494 tony 263 RegisterPropertyEditor(TypeInfo(TIBFileName), TIBDatabase, 'FirebirdLibraryPathName', TIBLibraryNameProperty); {do not localize}
495     RegisterPropertyEditor(TypeInfo(TIBFileName), TIBXServicesConnection, 'FirebirdLibraryPathName', TIBLibraryNameProperty); {do not localize}
496 tony 33 RegisterPropertyEditor(TypeInfo(string), TIBStoredProc, 'StoredProcName', TIBStoredProcNameProperty); {do not localize}
497 tony 107 RegisterPropertyEditor(TypeInfo(string), TIBStoredProc, 'PackageName', TIBPackageNameProperty); {do not localize}
498 tony 33 RegisterPropertyEditor(TypeInfo(TParams), TIBStoredProc, 'Params', TIBStoredProcParamsProperty);
499     RegisterPropertyEditor(TypeInfo(string), TIBTable, 'TableName', TIBTableNameProperty); {do not localize}
500     RegisterPropertyEditor(TypeInfo(string), TIBTable, 'IndexName', TIBIndexNameProperty); {do not localize}
501     RegisterPropertyEditor(TypeInfo(string), TIBTable, 'IndexFieldNames', TIBIndexFieldNamesProperty); {do not localize}
502     RegisterPropertyEditor(TypeInfo(string), TIBTable, 'MasterFields', TIBTableFieldLinkProperty); {do not localize}
503 tony 45 RegisterPropertyEditor(TypeInfo(TFieldDefs), TIBTable, 'FieldDefs', TIBFieldDefsProperty); {do not localize}
504     RegisterPropertyEditor(TypeInfo(TIndexDefs), TIBTable, 'IndexDefs', TIBIndexDefsProperty); {do not localize}
505 tony 33 RegisterPropertyEditor(TypeInfo(TStrings), TIBQuery, 'SQL', TIBQuerySQLProperty); {do not localize}
506     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'SelectSQL', TIBDatasetSQLProperty); {do not localize}
507     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'ModifySQL', TIBUpdateSQLProperty); {do not localize}
508     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'InsertSQL', TIBInsertSQLProperty); {do not localize}
509     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'RefreshSQL', TIBRefreshSQLProperty); {do not localize}
510     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'DeleteSQL', TIBDeleteSQLProperty); {do not localize}
511     RegisterPropertyEditor(TypeInfo(TStrings), TIBSQL, 'SQL', TIBSQLSQLPropertyEditor); {do not localize}
512     RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'RefreshSQL', TIBUpdateSQLRefreshSQLProperty); {do not localize}
513     RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'ModifySQL', TIBUpdateSQLUpdateProperty); {do not localize}
514     RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'InsertSQL', TIBUpdateSQLInsertSQLProperty); {do not localize}
515     RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'DeleteSQL', TIBUpdateSQLDeleteProperty); {do not localize}
516 tony 126 RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdate, 'RefreshSQL', TIBUpdateRefreshSQLProperty); {do not localize}
517 tony 33 RegisterPropertyEditor(TypeInfo(TStrings), TIBEvents, 'Events', TIBEventListProperty); {do not localize}
518     RegisterPropertyEditor(TypeInfo(TPersistent), TIBDataSet, 'GeneratorField', TIBGeneratorProperty); {do not localize}
519     RegisterPropertyEditor(TypeInfo(TPersistent), TIBQuery, 'GeneratorField', TIBGeneratorProperty); {do not localize}
520 tony 107 RegisterPropertyEditor(TypeInfo(TPersistent), TIBTable, 'GeneratorField', TIBGeneratorProperty); {do not localize}
521 tony 33
522     RegisterComponentEditor(TIBDatabase, TIBDatabaseEditor);
523     RegisterComponentEditor(TIBTransaction, TIBTransactionEditor);
524     RegisterComponentEditor(TIBUpdateSQL, TIBUpdateSQLEditor);
525     RegisterComponentEditor(TIBDataSet, TIBDataSetEditor);
526     RegisterComponentEditor(TIBQuery, TIBQueryEditor);
527     RegisterComponentEditor(TIBStoredProc, TIBStoredProcEditor);
528     RegisterComponentEditor(TIBSQL, TIBSQLEditor);
529     RegisterComponentEditor(TIBCustomService, TIBServiceEditor);
530 tony 45 RegisterComponentEditor(TIBArrayGrid, TIBArrayGridEditor);
531 tony 209 RegisterComponentEditor(TIBXServicesConnection, TIBXServiceEditor);
532 tony 33
533    
534     {Firebird Data Access Controls}
535     RegisterPropertyEditor(TypeInfo(string), TDBLookupProperties, 'KeyField', TDBDynamicGridFieldProperty);
536     RegisterPropertyEditor(TypeInfo(string), TDBLookupProperties, 'ListField', TDBDynamicGridFieldProperty);
537     RegisterPropertyEditor(TypeInfo(string), TIBDynamicGrid, 'IndexFieldNames', TIBDynamicGridIndexNamesProperty);
538     RegisterPropertyEditor(TypeInfo(string), TDBLookupProperties, 'DataFieldName', TDBLookupPropertiesGridFieldProperty);
539     RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'KeyField', TIBTreeViewFieldProperty);
540     RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'TextField', TIBTreeViewFieldProperty);
541     RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'ParentField', TIBTreeViewFieldProperty);
542     RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'HasChildField', TIBTreeViewFieldProperty);
543 tony 143 RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'ImageIndexField', TIBTreeViewFieldProperty);
544     RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'SelectedIndexField', TIBTreeViewFieldProperty);
545 tony 33
546 tony 39 IBGUIInterface := TIBDSLCLInterface.Create;
547 tony 33 end;
548    
549     procedure LoadDataSourceFields(DataSource: TDataSource; List: TStrings);
550     var
551     DataSet: TDataSet;
552     i: Integer;
553     begin
554     if Assigned(DataSource) then
555     begin
556     DataSet := DataSource.DataSet;
557     if Assigned(DataSet) then
558     begin
559     if DataSet.Fields.Count > 0 then
560     DataSet.GetFieldNames(List)
561     else
562     begin
563     DataSet.FieldDefs.Update;
564     for i := 0 to DataSet.FieldDefs.Count - 1 do
565     List.Add(DataSet.FieldDefs[i].Name);
566     end;
567     end;
568     end;
569     end;
570    
571 tony 263 { TIBLibraryNameProperty }
572    
573     function TIBLibraryNameProperty.GetFilter: string;
574     begin
575     Result := SLibraryNameFilter; {do not localise}
576     end;
577    
578 tony 209 { TIBXServiceEditor }
579    
580     procedure TIBXServiceEditor.ExecuteVerb(Index: Integer);
581     begin
582     if Index < inherited GetVerbCount then
583     inherited ExecuteVerb(Index) else
584     begin
585     Dec(Index, inherited GetVerbCount);
586     case Index of
587     0 : if IBXServiceEditor.EditIBXService(TIBXServicesConnection(Component)) then Designer.Modified;
588     end;
589     end;
590     end;
591    
592     function TIBXServiceEditor.GetVerb(Index: Integer): string;
593     begin
594     if Index < inherited GetVerbCount then
595     Result := inherited GetVerb(Index) else
596     begin
597     Dec(Index, inherited GetVerbCount);
598     case Index of
599     0: Result := SIBServiceEditor;
600     1 : Result := SInterbaseExpressVersion;
601     end;
602     end;
603     end;
604    
605     function TIBXServiceEditor.GetVerbCount: Integer;
606     begin
607     Result := inherited GetVerbCount + 2;
608     end;
609    
610 tony 126 { TIBUpdateRefreshSQLProperty }
611    
612     function TIBUpdateRefreshSQLProperty.GetObjects: boolean;
613     begin
614     Result := false;
615     FIBUpdate := GetComponent(0) as TIBUpdate;
616     if not assigned(FIBUpdate) or not assigned(FIBUpdate.DataSet) then
617     Exit;
618     FDatabase := nil;
619     if FIBUpdate.DataSet is TIBQuery then
620     begin
621     FDatabase := (FIBUpdate.DataSet as TIBQuery).Database;
622     Result := true
623     end;
624     end;
625    
626     procedure TIBUpdateRefreshSQLProperty.Edit;
627     begin
628     GetObjects;
629     if IBRefreshSQLEditor.EditSQL(FIBUpdate.DataSet,FIBUpdate.RefreshSQL) then Modified;
630     end;
631    
632 tony 107 { TIBPackageNameProperty }
633    
634     procedure TIBPackageNameProperty.GetValues(Proc: TGetStrProc);
635     var
636     StoredProc : TIBStoredProc;
637     i : integer;
638     begin
639     StoredProc := GetComponent(0) as TIBStoredProc;
640     if StoredProc.Database = nil then
641     Exit;
642    
643     with StoredProc do
644     try
645     for I := 0 to PackageNames.Count - 1 do
646     Proc (PackageNames[i]);
647     except on E: Exception do
648     MessageDlg(E.Message,mtError,[mbOK],0)
649     end;
650     end;
651    
652 tony 45 { TIBIndexDefsProperty }
653    
654     procedure TIBIndexDefsProperty.Edit;
655     var IndexDefs: TIndexDefs;
656     begin
657     IndexDefs := TIndexDefs(GetObjectValue);
658     if IndexDefs <> nil then
659     IndexDefs.Update;
660     inherited Edit;
661     end;
662    
663     { TIBFieldDefsProperty }
664    
665     procedure TIBFieldDefsProperty.Edit;
666     var FieldDefs: TFieldDefs;
667     begin
668     FieldDefs := TFieldDefs(GetObjectValue);
669     if FieldDefs <> nil then
670     FieldDefs.Update;
671     inherited Edit;
672     end;
673    
674     { TIBArrayGridEditor }
675    
676     procedure TIBArrayGridEditor.ExecuteVerb(Index: Integer);
677     begin
678     if Index < inherited GetVerbCount then
679     inherited ExecuteVerb(Index)
680     else
681     case Index of
682     0: TIBArrayGrid(Component).UpdateLayout;
683     end;
684     end;
685    
686     function TIBArrayGridEditor.GetVerb(Index: Integer): string;
687     begin
688     if Index < inherited GetVerbCount then
689     Result := inherited GetVerb(Index) else
690     begin
691     Dec(Index, inherited GetVerbCount);
692     case Index of
693     0: Result := SIBUpdateLayout;
694     1 : Result := SInterbaseExpressVersion ;
695     end;
696     end;
697     end;
698    
699     function TIBArrayGridEditor.GetVerbCount: Integer;
700     begin
701     Result := 2;
702     end;
703    
704 tony 33 { TDBLookupPropertiesGridFieldProperty }
705    
706     procedure TDBLookupPropertiesGridFieldProperty.FillValues(
707     const Values: TStringList);
708     var
709     P: TDBLookupProperties;
710     begin
711     P :=TDBLookupProperties(GetComponent(0));
712     if not (P is TDBLookupProperties) then exit;
713     LoadDataSourceFields(TIBDynamicGrid(P.Owner.Grid).DataSource, Values);
714     end;
715    
716     { TIBTreeViewFieldProperty }
717    
718     procedure TIBTreeViewFieldProperty.FillValues(const Values: TStringList);
719     var ListSource: TDataSource;
720     begin
721     ListSource := TIBTreeView(GetComponent(0)).DataSource;
722     LoadDataSourceFields(ListSource, Values);
723     end;
724    
725     { TIBDynamicGridIndexNamesProperty }
726    
727     function TIBDynamicGridIndexNamesProperty.GetFieldDefs: TFieldDefs;
728     var Grid: TIBDynamicGrid;
729     begin
730     Result := nil;
731     Grid := TIBDynamicGrid(GetComponent(0));
732     if assigned(Grid.DataSource) and assigned(Grid.DataSource.DataSet) then
733     Result := Grid.DataSource.DataSet.FieldDefs
734     end;
735    
736     function TIBDynamicGridIndexNamesProperty.GetIndexFieldNames: string;
737     var Grid: TIBDynamicGrid;
738     begin
739     Grid := TIBDynamicGrid(GetComponent(0));
740     Result := Grid.IndexFieldNames
741     end;
742    
743     procedure TIBDynamicGridIndexNamesProperty.SetIndexFieldNames(
744     const Value: string);
745     var Grid: TIBDynamicGrid;
746     begin
747     Grid := TIBDynamicGrid(GetComponent(0));
748     Grid.IndexFieldNames := Value
749     end;
750    
751     { TDBDynamicGridFieldProperty }
752    
753     procedure TDBDynamicGridFieldProperty.FillValues(const Values: TStringList);
754     var
755     P: TDBLookupProperties;
756     begin
757     P :=TDBLookupProperties(GetComponent(0));
758     if not (P is TDBLookupProperties) then exit;
759     LoadDataSourceFields(P.ListSource, Values);
760     end;
761    
762     { TIBServiceEditor }
763    
764     procedure TIBServiceEditor.ExecuteVerb(Index: Integer);
765     begin
766     if Index < inherited GetVerbCount then
767     inherited ExecuteVerb(Index) else
768     begin
769     Dec(Index, inherited GetVerbCount);
770     case Index of
771     0 : if ibserviceeditor.EditIBService(TIBCustomService(Component)) then Designer.Modified;
772     end;
773     end;
774     end;
775    
776     function TIBServiceEditor.GetVerb(Index: Integer): string;
777     begin
778     if Index < inherited GetVerbCount then
779     Result := inherited GetVerb(Index) else
780     begin
781     Dec(Index, inherited GetVerbCount);
782     case Index of
783     0: Result := SIBServiceEditor;
784     1 : Result := SInterbaseExpressVersion;
785     end;
786     end;
787     end;
788    
789     function TIBServiceEditor.GetVerbCount: Integer;
790     begin
791     Result := inherited GetVerbCount + 2;
792     end;
793    
794 tony 263 function TIBFileNameProperty.GetFilter: string;
795     begin
796     Result := SDatabaseFilter; {do not localize}
797     end;
798    
799 tony 33 { TIBFileNameProperty }
800     procedure TIBFileNameProperty.Edit;
801     begin
802     with TOpenDialog.Create(Application) do
803     try
804     InitialDir := ExtractFilePath(GetStrValue);
805 tony 263 Filter := GetFilter;
806 tony 33 if Execute then
807     SetStrValue(FileName);
808     finally
809     Free
810     end;
811     end;
812    
813     function TIBFileNameProperty.GetAttributes: TPropertyAttributes;
814     begin
815     Result := [paDialog];
816     end;
817    
818     { TIBNameProperty }
819    
820     function TIBNameProperty.GetAttributes: TPropertyAttributes;
821     begin
822     Result := [paValueList, paSortList];
823     end;
824    
825     { TIBStoredProcNameProperty }
826    
827     procedure TIBStoredProcNameProperty.GetValues(Proc: TGetStrProc);
828     var
829     StoredProc : TIBStoredProc;
830     i : integer;
831     begin
832     StoredProc := GetComponent(0) as TIBStoredProc;
833     if StoredProc.Database = nil then
834     Exit;
835    
836     with StoredProc do
837     try
838     for I := 0 to StoredProcedureNames.Count - 1 do
839     Proc (StoredProcedureNames[i]);
840     except on E: Exception do
841     MessageDlg(E.Message,mtError,[mbOK],0)
842     end;
843     end;
844    
845     { TIBTableNameProperty }
846    
847     procedure TIBTableNameProperty.GetValues(Proc: TGetStrProc);
848     var
849     Table : TIBTable;
850     i : integer;
851     begin
852     Table := GetComponent(0) as TIBTable;
853     if Table.Database = nil then
854     Exit;
855     with Table do
856     for I := 0 to TableNames.Count - 1 do
857     Proc (TableNames[i]);
858     end;
859    
860     { TDBStringProperty }
861    
862     function TDBStringProperty.ConnecttoDB: boolean;
863     var DataSet: TIBCustomDataSet;
864     begin
865     Result := false;
866     DataSet := (GetComponent(0) as TIBCustomDataSet);
867     if assigned(Dataset.Database) then
868     begin
869     try
870     DataSet.Database.Connected := true;
871     except on E: Exception do
872     ShowMessage(E.Message)
873     end;
874     Result := DataSet.Database.Connected
875     end;
876     end;
877    
878     function TDBStringProperty.GetAttributes: TPropertyAttributes;
879     begin
880     Result := [paValueList, paSortList, paMultiSelect];
881     end;
882    
883     procedure TDBStringProperty.GetValueList(List: TStrings);
884     begin
885     end;
886    
887     procedure TDBStringProperty.GetValues(Proc: TGetStrProc);
888     var
889     I: Integer;
890     Values: TStringList;
891     begin
892     if not ConnecttoDB then Exit;
893     Values := TStringList.Create;
894     try
895     GetValueList(Values);
896     for I := 0 to Values.Count - 1 do Proc(Values[I]);
897     finally
898     Values.Free;
899     end;
900     end;
901    
902     procedure TDBStringProperty.Edit;
903     begin
904     if ConnecttoDB then
905     inherited Edit;
906     end;
907    
908     { Utility Functions }
909    
910     function GetPropertyValue(Instance: TPersistent; const PropName: string): TPersistent;
911     var
912     PropInfo: PPropInfo;
913     begin
914     Result := nil;
915     PropInfo := TypInfo.GetPropInfo(Instance.ClassInfo, PropName);
916     if (PropInfo <> nil) and (PropInfo^.PropType^.Kind = tkClass) then
917     Result := TObject(GetOrdProp(Instance, PropInfo)) as TPersistent;
918     end;
919    
920     function GetIndexDefs(Component: TPersistent): TIndexDefs;
921     var
922     DataSet: TDataSet;
923     begin
924     DataSet := Component as TDataSet;
925     Result := GetPropertyValue(DataSet, 'IndexDefs') as TIndexDefs; {do not localize}
926     if Assigned(Result) then
927     begin
928     Result.Updated := False;
929     Result.Update;
930     end;
931     end;
932    
933     { TIBIndexFieldNamesProperty }
934    
935     procedure TIBIndexFieldNamesProperty.GetValueList(List: TStrings);
936     var
937     I: Integer;
938     IndexDefs: TIndexDefs;
939     begin
940     IndexDefs := GetIndexDefs(GetComponent(0));
941     for I := 0 to IndexDefs.Count - 1 do
942     with IndexDefs[I] do
943     if (Options * [ixExpression, ixDescending] = []) and (Fields <> '') then
944     List.Add(Fields);
945     end;
946    
947    
948     { TIBIndexNameProperty }
949    
950     procedure TIBIndexNameProperty.GetValueList(List: TStrings);
951     begin
952     GetIndexDefs(GetComponent(0)).GetItemNames(List);
953     end;
954    
955     { TSQLPropertyEditor }
956    
957     function TSQLPropertyEditor.GetAttributes: TPropertyAttributes;
958     begin
959     Result := inherited GetAttributes + [paDialog] - [paMultiSelect,paSubProperties];
960     end;
961    
962     { TIBQuerySQLProperty }
963    
964     procedure TIBQuerySQLProperty.Edit;
965     var
966     Query: TIBQuery;
967     begin
968     Query := GetComponent(0) as TIBQuery;
969     if IBSelectSQLEditor.EditSQL(Query,Query.SQL) then Modified;
970     end;
971    
972     { TIBDatasetSQLProperty }
973    
974     procedure TIBDatasetSQLProperty.Edit;
975     var
976     IBDataset: TIBDataset;
977     begin
978     IBDataset := GetComponent(0) as TIBDataset;
979     if IBSelectSQLEditor.EditSQL(IBDataSet,IBDataSet.SelectSQL) then Modified;
980     end;
981    
982     { TIBSQLProperty }
983    
984     procedure TIBSQLProperty.Edit;
985     var
986     IBSQL: TIBSQL;
987     begin
988     IBSQL := GetComponent(0) as TIBSQL;
989 tony 80 if IBSQLEditor.EditSQL(IBSQL) then Modified;
990 tony 33 end;
991    
992     { TIBUpdateSQLEditor }
993    
994     procedure TIBUpdateSQLEditor.ExecuteVerb(Index: Integer);
995     begin
996     if IBUpdateSQLEditor.EditIBUpdateSQL(TIBUpdateSQL(Component)) then Modified;
997     end;
998    
999     function TIBUpdateSQLEditor.GetVerb(Index: Integer): string;
1000     begin
1001     case Index of
1002     0 : Result := SIBUpdateSQLEditor;
1003 tony 45 1: Result := SInterbaseExpressVersion ;
1004 tony 33 end;
1005     end;
1006    
1007     function TIBUpdateSQLEditor.GetVerbCount: Integer;
1008     begin
1009     Result := 2;
1010     end;
1011    
1012     { TIBDataSetEditor }
1013    
1014     procedure TIBDataSetEditor.ExecuteVerb(Index: Integer);
1015     begin
1016     if Index < inherited GetVerbCount then
1017     inherited ExecuteVerb(Index) else
1018     begin
1019     Dec(Index, inherited GetVerbCount);
1020     case Index of
1021     0:
1022     if IBDataSetEditor.EditIBDataSet(TIBDataSet(Component)) then
1023     Designer.Modified;
1024     1: (Component as TIBDataSet).ExecSQL;
1025     end;
1026     end;
1027     end;
1028    
1029     function TIBDataSetEditor.GetVerb(Index: Integer): string;
1030     begin
1031     if Index < inherited GetVerbCount then
1032     Result := inherited GetVerb(Index) else
1033     begin
1034     Dec(Index, inherited GetVerbCount);
1035     case Index of
1036     0: Result := SIBDataSetEditor;
1037     1: Result := SExecute;
1038 tony 45 2: Result := SInterbaseExpressVersion ;
1039 tony 33 end;
1040     end;
1041     end;
1042    
1043     function TIBDataSetEditor.GetVerbCount: Integer;
1044     begin
1045     Result := inherited GetVerbCount + 3;
1046     end;
1047    
1048     { TIBEventListProperty }
1049    
1050     function TIBEventListProperty.GetAttributes: TPropertyAttributes;
1051     begin
1052     Result := inherited GetAttributes + [paDialog] - [paMultiSelect,paSubProperties];
1053     end;
1054    
1055     procedure TIBEventListProperty.Edit;
1056     var
1057     Events: TStrings;
1058     IBEvents: TIBEvents;
1059     begin
1060     IBEvents := GetComponent(0) as TIBEvents;
1061     Events := TStringList.Create;
1062     try
1063     Events.Assign( IBEvents.Events);
1064     if EditAlerterEvents( Events) then
1065     begin
1066     IBEvents.Events.Assign(Events);
1067     Modified
1068     end;
1069     finally
1070     Events.Free;
1071     end;
1072     end;
1073    
1074     { TIBDatabaseEditor }
1075     procedure TIBDatabaseEditor.ExecuteVerb(Index: Integer);
1076     begin
1077     if Index < inherited GetVerbCount then
1078     inherited ExecuteVerb(Index) else
1079     begin
1080     Dec(Index, inherited GetVerbCount);
1081     case Index of
1082     0 : if EditIBDatabase(TIBDatabase(Component)) then Designer.Modified;
1083     end;
1084     end;
1085     end;
1086    
1087     function TIBDatabaseEditor.GetVerb(Index: Integer): string;
1088     begin
1089     if Index < inherited GetVerbCount then
1090     Result := inherited GetVerb(Index) else
1091     begin
1092     Dec(Index, inherited GetVerbCount);
1093     case Index of
1094     0: Result := SIBDatabaseEditor;
1095 tony 45 1 : Result := SInterbaseExpressVersion ;
1096 tony 33 end;
1097     end;
1098     end;
1099    
1100     function TIBDatabaseEditor.GetVerbCount: Integer;
1101     begin
1102     Result := inherited GetVerbCount + 2;
1103     end;
1104    
1105     { TIBTransactionEditor }
1106    
1107     procedure TIBTransactionEditor.ExecuteVerb(Index: Integer);
1108     begin
1109     case Index of
1110     0: if EditIBTransaction(TIBTransaction(Component)) then Designer.Modified;
1111     end;
1112     end;
1113    
1114     function TIBTransactionEditor.GetVerb(Index: Integer): string;
1115     begin
1116     case Index of
1117     0: Result := SIBTransactionEditor;
1118 tony 45 1: Result := SInterbaseExpressVersion ;
1119 tony 33 end;
1120     end;
1121    
1122     function TIBTransactionEditor.GetVerbCount: Integer;
1123     begin
1124     Result := 2;
1125     end;
1126    
1127     { TIBQueryEditor }
1128    
1129     procedure TIBQueryEditor.ExecuteVerb(Index: Integer);
1130     var
1131     Query: TIBQuery;
1132     begin
1133     if Index < inherited GetVerbCount then
1134     inherited ExecuteVerb(Index) else
1135     begin
1136     Query := Component as TIBQuery;
1137     Dec(Index, inherited GetVerbCount);
1138     case Index of
1139     0: Query.ExecSQL;
1140     1: if ibselectsqleditor.EditSQL(Query,Query.SQL) then Designer.Modified;
1141     end;
1142     end;
1143     end;
1144    
1145     function TIBQueryEditor.GetVerb(Index: Integer): string;
1146     begin
1147     if Index < inherited GetVerbCount then
1148     Result := inherited GetVerb(Index) else
1149     begin
1150     Dec(Index, inherited GetVerbCount);
1151     case Index of
1152     0: Result := SExecute;
1153     1: Result := SEditSQL;
1154 tony 45 2: Result := SInterbaseExpressVersion ;
1155 tony 33 end;
1156     end;
1157     end;
1158    
1159     function TIBQueryEditor.GetVerbCount: Integer;
1160     begin
1161     Result := inherited GetVerbCount + 3;
1162     end;
1163    
1164     { TIBStoredProcEditor }
1165    
1166     procedure TIBStoredProcEditor.ExecuteVerb(Index: Integer);
1167     begin
1168     if Index < inherited GetVerbCount then
1169     inherited ExecuteVerb(Index) else
1170     begin
1171     Dec(Index, inherited GetVerbCount);
1172     if Index = 0 then (Component as TIBStoredProc).ExecProc;
1173     end;
1174     end;
1175    
1176     function TIBStoredProcEditor.GetVerb(Index: Integer): string;
1177     begin
1178     if Index < inherited GetVerbCount then
1179     Result := inherited GetVerb(Index) else
1180     begin
1181     Dec(Index, inherited GetVerbCount);
1182     case Index of
1183     0: Result := SExecute;
1184 tony 45 1: Result := SInterbaseExpressVersion ;
1185 tony 33 end;
1186     end;
1187     end;
1188    
1189     function TIBStoredProcEditor.GetVerbCount: Integer;
1190     begin
1191     Result := inherited GetVerbCount + 2;
1192     end;
1193    
1194     { TIBTableFieldLinkProperty }
1195    
1196     procedure TIBTableFieldLinkProperty.Edit;
1197     begin
1198     FTable := DataSet as TIBTable;
1199     if assigned(FTable.Database) then
1200     FTable.Database.Connected := true;
1201     inherited Edit;
1202     end;
1203    
1204     function TIBTableFieldLinkProperty.GetIndexDefs: TIndexDefs;
1205     begin
1206     Result := FTable.IndexDefs
1207     end;
1208    
1209     function TIBTableFieldLinkProperty.GetIndexFieldNames: string;
1210     begin
1211     Result := FTable.IndexFieldNames;
1212     end;
1213    
1214     function TIBTableFieldLinkProperty.GetMasterFields: string;
1215     begin
1216     Result := FTable.MasterFields;
1217     end;
1218    
1219     procedure TIBTableFieldLinkProperty.SetIndexFieldNames(const Value: string);
1220     begin
1221     FTable.IndexFieldNames := Value;
1222     end;
1223    
1224     procedure TIBTableFieldLinkProperty.SetMasterFields(const Value: string);
1225     begin
1226     FTable.MasterFields := Value;
1227     end;
1228    
1229     { TIBUpdateSQLProperty }
1230    
1231     procedure TIBUpdateSQLProperty.Edit;
1232     var
1233     IBDataset: TIBDataset;
1234     begin
1235     IBDataset := GetComponent(0) as TIBDataset;
1236     if IBModifySQLEditor.EditSQL(IBDataSet,IBDataSet.ModifySQL) then Modified;
1237     end;
1238    
1239     { TIBUpdateSQLUpdateProperty }
1240    
1241     procedure TIBUpdateSQLUpdateProperty.Edit;
1242     begin
1243     GetObjects;
1244     if IBModifySQLEditor.EditSQL(FIBUpdateSQL.DataSet,FIBUpdateSQL.ModifySQL) then Modified;
1245     end;
1246    
1247     { TIBRefreshSQLProperty }
1248    
1249     procedure TIBRefreshSQLProperty.Edit;
1250     var
1251     IBDataset: TIBDataset;
1252     begin
1253     IBDataset := GetComponent(0) as TIBDataset;
1254     if IBRefreshSQLEditor.EditSQL(IBDataSet,IBDataSet.RefreshSQL) then Modified;
1255     end;
1256    
1257     { TIBUpdateSQLRefreshSQLProperty }
1258    
1259     procedure TIBUpdateSQLRefreshSQLProperty.Edit;
1260     begin
1261     GetObjects;
1262     if IBRefreshSQLEditor.EditSQL(FIBUpdateSQL.DataSet,FIBUpdateSQL.RefreshSQL) then Modified;
1263     end;
1264    
1265     { TIBDeleteSQLProperty }
1266    
1267     procedure TIBDeleteSQLProperty.Edit;
1268     var
1269     IBDataset: TIBDataSet;
1270     begin
1271     IBDataset := GetComponent(0) as TIBDataSet;
1272     if IBDeleteSQLEditor.EditSQL(IBDataSet,IBDataSet.DeleteSQL) then Modified;
1273     end;
1274    
1275     { TIBUpdateSQLDeleteProperty }
1276    
1277     function TIBUpdateSQLDeleteProperty.GetAttributes: TPropertyAttributes;
1278     begin
1279     Result:=inherited GetAttributes;
1280     end;
1281    
1282     procedure TIBUpdateSQLDeleteProperty.Edit;
1283     begin
1284     GetObjects;
1285     if IBDeleteSQLEditor.EditSQL(FIBUpdateSQL.DataSet,FIBUpdateSQL.DeleteSQL) then Modified;
1286     end;
1287    
1288     { TUpdateSQLPropertyEditor }
1289    
1290     function TUpdateSQLPropertyEditor.GetObjects: boolean;
1291     begin
1292     Result := false;
1293     FIBUpdateSQL := GetComponent(0) as TIBUpdateSQL;
1294     if not assigned(FIBUpdateSQL) or not assigned(FIBUpdateSQL.DataSet) then
1295     Exit;
1296     FDatabase := nil;
1297     if FIBUpdateSQL.DataSet is TIBQuery then
1298     begin
1299     FDatabase := (FIBUpdateSQL.DataSet as TIBQuery).Database;
1300     Result := true
1301     end;
1302     end;
1303    
1304     { TIBInsertSQLProperty }
1305    
1306     procedure TIBInsertSQLProperty.Edit;
1307     var
1308     IBDataset: TIBDataSet;
1309     begin
1310     IBDataset := GetComponent(0) as TIBDataSet;
1311     if IBInsertSQLEditor.EditSQL(IBDataSet,IBDataSet.InsertSQL) then Modified;
1312     end;
1313    
1314     { TIBUpdateSQLInsertSQLProperty }
1315    
1316     procedure TIBUpdateSQLInsertSQLProperty.Edit;
1317     begin
1318     GetObjects;
1319     if IBInsertSQLEditor.EditSQL(FIBUpdateSQL.Dataset,FIBUpdateSQL.InsertSQL) then Modified;
1320     end;
1321    
1322     { TIBGeneratorProperty }
1323    
1324     function TIBGeneratorProperty.GetAttributes: TPropertyAttributes;
1325     begin
1326     Result:= inherited GetAttributes + [paDialog] - [paMultiSelect,paValueList];
1327     end;
1328    
1329     procedure TIBGeneratorProperty.Edit;
1330     begin
1331     if IBGeneratorEditor.EditGenerator(GetPersistentReference as TIBGenerator) then Modified;
1332     end;
1333    
1334     { TIBSQLEditor }
1335    
1336     procedure TIBSQLEditor.ExecuteVerb(Index: Integer);
1337     begin
1338 tony 80 if IBSQLEditor.EditSQL(TIBSQL(Component)) then Modified;
1339 tony 33 end;
1340    
1341     function TIBSQLEditor.GetVerb(Index: Integer): string;
1342     begin
1343     case Index of
1344     0 : Result := SIBSQLEditor;
1345 tony 45 1: Result := SInterbaseExpressVersion ;
1346 tony 33 end;
1347     end;
1348    
1349     function TIBSQLEditor.GetVerbCount: Integer;
1350     begin
1351     Result:= 2
1352     end;
1353    
1354     { TIBSQLSQLPropertyEditor }
1355    
1356     procedure TIBSQLSQLPropertyEditor.Edit;
1357     var
1358     IBSQL: TIBSQL;
1359     begin
1360     IBSQL := GetComponent(0) as TIBSQL;
1361 tony 80 if IBSQLEditor.EditSQL(IBSQL) then Modified;
1362 tony 33 end;
1363    
1364     initialization
1365     {$I IBDBReg.lrs}
1366     end.