ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/design/IBDBReg.pas
Revision: 263
Committed: Thu Dec 6 15:55:01 2018 UTC (6 years ago) by tony
Content type: text/x-pascal
File size: 38806 byte(s)
Log Message:
Release 2.3.2 committed

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 45 uses IB, IBQuery, IBStoredProc, IBCustomDataSet, FBMessages,
421     IBSQL, IBSQLMonitor, IBDatabaseInfo, IBEvents, IBTypes,
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 33
448     procedure Register;
449     begin
450 tony 263 AllowUseOfFBLIB := true;
451 tony 33 if not TryIBLoad then
452     begin
453     MessageDlg('IBX is unable to locate the Firebird Library - have you remembered to install it?',mtError,[mbOK],0);
454     Exit;
455     end;
456    
457 tony 106 RegisterNoIcon([TIBStringField, TIBBCDField, TIBMemoField, TIBArrayField,
458     TIBSmallintField, TIBIntegerField, TIBLargeIntField]);
459 tony 33 {$if lcl_fullversion < 01010000}
460     {see http://bugs.freepascal.org/view.php?id=19035 }
461     RegisterNoIcon([TIntegerField]);
462     {$endif}
463     RegisterComponents(IBPalette1, [ TIBQuery, TIBDataSet,
464 tony 80 TIBDatabase, TIBTransaction, TIBUpdateSQL, TIBUpdate, TIBEvents,
465 tony 33 TIBSQL, TIBDatabaseInfo, TIBSQLMonitor,
466 tony 47 TIBStoredProc,TIBBatchMove, TIBTable,TIBExtract, TIBXScript, TIBLocalDBSupport,
467     TIBBlockFormatOut,TIBCSVDataOut,TIBInsertStmtsOut]);
468 tony 45 if FirebirdAPI.HasServiceAPI then
469 tony 209 begin
470     RegisterComponents(IBPalette4, [TIBXServicesConnection, TIBXConfigService,
471     TIBXClientSideBackupService, TIBXServerSideBackupService,
472     TIBXClientSideRestoreService, TIBXServerSideRestoreService,
473     TIBXValidationService, TIBXOnlineValidationService, TIBXStatisticalService,
474     TIBXLogService, TIBXSecurityService, TIBXServerProperties,
475     TIBXLimboTransactionResolutionService,TIBXServicesUserList, TIBXServicesLimboTransactionsList]);
476 tony 33 RegisterComponents(IBPalette2, [TIBConfigService, TIBBackupService,
477 tony 209 TIBRestoreService, TIBValidationService,
478     TIBOnlineValidationService, TIBStatisticalService,
479 tony 33 TIBLogService, TIBSecurityService, TIBServerProperties]);
480 tony 209 end;
481 tony 33
482 tony 209 RegisterComponents(IBPalette3,[TIBLookupComboEditBox,TIBDynamicGrid,TIBTreeView,TDBControlGrid, TIBArrayGrid]);
483 tony 33
484     RegisterPropertyEditor(TypeInfo(TIBFileName), TIBDatabase, 'DatabaseName', TIBFileNameProperty); {do not localize}
485 tony 263 RegisterPropertyEditor(TypeInfo(TIBFileName), TIBDatabase, 'FirebirdLibraryPathName', TIBLibraryNameProperty); {do not localize}
486     RegisterPropertyEditor(TypeInfo(TIBFileName), TIBXServicesConnection, 'FirebirdLibraryPathName', TIBLibraryNameProperty); {do not localize}
487 tony 33 RegisterPropertyEditor(TypeInfo(string), TIBStoredProc, 'StoredProcName', TIBStoredProcNameProperty); {do not localize}
488 tony 107 RegisterPropertyEditor(TypeInfo(string), TIBStoredProc, 'PackageName', TIBPackageNameProperty); {do not localize}
489 tony 33 RegisterPropertyEditor(TypeInfo(TParams), TIBStoredProc, 'Params', TIBStoredProcParamsProperty);
490     RegisterPropertyEditor(TypeInfo(string), TIBTable, 'TableName', TIBTableNameProperty); {do not localize}
491     RegisterPropertyEditor(TypeInfo(string), TIBTable, 'IndexName', TIBIndexNameProperty); {do not localize}
492     RegisterPropertyEditor(TypeInfo(string), TIBTable, 'IndexFieldNames', TIBIndexFieldNamesProperty); {do not localize}
493     RegisterPropertyEditor(TypeInfo(string), TIBTable, 'MasterFields', TIBTableFieldLinkProperty); {do not localize}
494 tony 45 RegisterPropertyEditor(TypeInfo(TFieldDefs), TIBTable, 'FieldDefs', TIBFieldDefsProperty); {do not localize}
495     RegisterPropertyEditor(TypeInfo(TIndexDefs), TIBTable, 'IndexDefs', TIBIndexDefsProperty); {do not localize}
496 tony 33 RegisterPropertyEditor(TypeInfo(TStrings), TIBQuery, 'SQL', TIBQuerySQLProperty); {do not localize}
497     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'SelectSQL', TIBDatasetSQLProperty); {do not localize}
498     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'ModifySQL', TIBUpdateSQLProperty); {do not localize}
499     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'InsertSQL', TIBInsertSQLProperty); {do not localize}
500     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'RefreshSQL', TIBRefreshSQLProperty); {do not localize}
501     RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'DeleteSQL', TIBDeleteSQLProperty); {do not localize}
502     RegisterPropertyEditor(TypeInfo(TStrings), TIBSQL, 'SQL', TIBSQLSQLPropertyEditor); {do not localize}
503     RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'RefreshSQL', TIBUpdateSQLRefreshSQLProperty); {do not localize}
504     RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'ModifySQL', TIBUpdateSQLUpdateProperty); {do not localize}
505     RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'InsertSQL', TIBUpdateSQLInsertSQLProperty); {do not localize}
506     RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'DeleteSQL', TIBUpdateSQLDeleteProperty); {do not localize}
507 tony 126 RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdate, 'RefreshSQL', TIBUpdateRefreshSQLProperty); {do not localize}
508 tony 33 RegisterPropertyEditor(TypeInfo(TStrings), TIBEvents, 'Events', TIBEventListProperty); {do not localize}
509     RegisterPropertyEditor(TypeInfo(TPersistent), TIBDataSet, 'GeneratorField', TIBGeneratorProperty); {do not localize}
510     RegisterPropertyEditor(TypeInfo(TPersistent), TIBQuery, 'GeneratorField', TIBGeneratorProperty); {do not localize}
511 tony 107 RegisterPropertyEditor(TypeInfo(TPersistent), TIBTable, 'GeneratorField', TIBGeneratorProperty); {do not localize}
512 tony 33
513     RegisterComponentEditor(TIBDatabase, TIBDatabaseEditor);
514     RegisterComponentEditor(TIBTransaction, TIBTransactionEditor);
515     RegisterComponentEditor(TIBUpdateSQL, TIBUpdateSQLEditor);
516     RegisterComponentEditor(TIBDataSet, TIBDataSetEditor);
517     RegisterComponentEditor(TIBQuery, TIBQueryEditor);
518     RegisterComponentEditor(TIBStoredProc, TIBStoredProcEditor);
519     RegisterComponentEditor(TIBSQL, TIBSQLEditor);
520     RegisterComponentEditor(TIBCustomService, TIBServiceEditor);
521 tony 45 RegisterComponentEditor(TIBArrayGrid, TIBArrayGridEditor);
522 tony 209 RegisterComponentEditor(TIBXServicesConnection, TIBXServiceEditor);
523 tony 33
524    
525     {Firebird Data Access Controls}
526     RegisterPropertyEditor(TypeInfo(string), TDBLookupProperties, 'KeyField', TDBDynamicGridFieldProperty);
527     RegisterPropertyEditor(TypeInfo(string), TDBLookupProperties, 'ListField', TDBDynamicGridFieldProperty);
528     RegisterPropertyEditor(TypeInfo(string), TIBDynamicGrid, 'IndexFieldNames', TIBDynamicGridIndexNamesProperty);
529     RegisterPropertyEditor(TypeInfo(string), TDBLookupProperties, 'DataFieldName', TDBLookupPropertiesGridFieldProperty);
530     RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'KeyField', TIBTreeViewFieldProperty);
531     RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'TextField', TIBTreeViewFieldProperty);
532     RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'ParentField', TIBTreeViewFieldProperty);
533     RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'HasChildField', TIBTreeViewFieldProperty);
534 tony 143 RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'ImageIndexField', TIBTreeViewFieldProperty);
535     RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'SelectedIndexField', TIBTreeViewFieldProperty);
536 tony 33
537 tony 39 IBGUIInterface := TIBDSLCLInterface.Create;
538 tony 33 end;
539    
540     procedure LoadDataSourceFields(DataSource: TDataSource; List: TStrings);
541     var
542     DataSet: TDataSet;
543     i: Integer;
544     begin
545     if Assigned(DataSource) then
546     begin
547     DataSet := DataSource.DataSet;
548     if Assigned(DataSet) then
549     begin
550     if DataSet.Fields.Count > 0 then
551     DataSet.GetFieldNames(List)
552     else
553     begin
554     DataSet.FieldDefs.Update;
555     for i := 0 to DataSet.FieldDefs.Count - 1 do
556     List.Add(DataSet.FieldDefs[i].Name);
557     end;
558     end;
559     end;
560     end;
561    
562 tony 263 { TIBLibraryNameProperty }
563    
564     function TIBLibraryNameProperty.GetFilter: string;
565     begin
566     Result := SLibraryNameFilter; {do not localise}
567     end;
568    
569 tony 209 { TIBXServiceEditor }
570    
571     procedure TIBXServiceEditor.ExecuteVerb(Index: Integer);
572     begin
573     if Index < inherited GetVerbCount then
574     inherited ExecuteVerb(Index) else
575     begin
576     Dec(Index, inherited GetVerbCount);
577     case Index of
578     0 : if IBXServiceEditor.EditIBXService(TIBXServicesConnection(Component)) then Designer.Modified;
579     end;
580     end;
581     end;
582    
583     function TIBXServiceEditor.GetVerb(Index: Integer): string;
584     begin
585     if Index < inherited GetVerbCount then
586     Result := inherited GetVerb(Index) else
587     begin
588     Dec(Index, inherited GetVerbCount);
589     case Index of
590     0: Result := SIBServiceEditor;
591     1 : Result := SInterbaseExpressVersion;
592     end;
593     end;
594     end;
595    
596     function TIBXServiceEditor.GetVerbCount: Integer;
597     begin
598     Result := inherited GetVerbCount + 2;
599     end;
600    
601 tony 126 { TIBUpdateRefreshSQLProperty }
602    
603     function TIBUpdateRefreshSQLProperty.GetObjects: boolean;
604     begin
605     Result := false;
606     FIBUpdate := GetComponent(0) as TIBUpdate;
607     if not assigned(FIBUpdate) or not assigned(FIBUpdate.DataSet) then
608     Exit;
609     FDatabase := nil;
610     if FIBUpdate.DataSet is TIBQuery then
611     begin
612     FDatabase := (FIBUpdate.DataSet as TIBQuery).Database;
613     Result := true
614     end;
615     end;
616    
617     procedure TIBUpdateRefreshSQLProperty.Edit;
618     begin
619     GetObjects;
620     if IBRefreshSQLEditor.EditSQL(FIBUpdate.DataSet,FIBUpdate.RefreshSQL) then Modified;
621     end;
622    
623 tony 107 { TIBPackageNameProperty }
624    
625     procedure TIBPackageNameProperty.GetValues(Proc: TGetStrProc);
626     var
627     StoredProc : TIBStoredProc;
628     i : integer;
629     begin
630     StoredProc := GetComponent(0) as TIBStoredProc;
631     if StoredProc.Database = nil then
632     Exit;
633    
634     with StoredProc do
635     try
636     for I := 0 to PackageNames.Count - 1 do
637     Proc (PackageNames[i]);
638     except on E: Exception do
639     MessageDlg(E.Message,mtError,[mbOK],0)
640     end;
641     end;
642    
643 tony 45 { TIBIndexDefsProperty }
644    
645     procedure TIBIndexDefsProperty.Edit;
646     var IndexDefs: TIndexDefs;
647     begin
648     IndexDefs := TIndexDefs(GetObjectValue);
649     if IndexDefs <> nil then
650     IndexDefs.Update;
651     inherited Edit;
652     end;
653    
654     { TIBFieldDefsProperty }
655    
656     procedure TIBFieldDefsProperty.Edit;
657     var FieldDefs: TFieldDefs;
658     begin
659     FieldDefs := TFieldDefs(GetObjectValue);
660     if FieldDefs <> nil then
661     FieldDefs.Update;
662     inherited Edit;
663     end;
664    
665     { TIBArrayGridEditor }
666    
667     procedure TIBArrayGridEditor.ExecuteVerb(Index: Integer);
668     begin
669     if Index < inherited GetVerbCount then
670     inherited ExecuteVerb(Index)
671     else
672     case Index of
673     0: TIBArrayGrid(Component).UpdateLayout;
674     end;
675     end;
676    
677     function TIBArrayGridEditor.GetVerb(Index: Integer): string;
678     begin
679     if Index < inherited GetVerbCount then
680     Result := inherited GetVerb(Index) else
681     begin
682     Dec(Index, inherited GetVerbCount);
683     case Index of
684     0: Result := SIBUpdateLayout;
685     1 : Result := SInterbaseExpressVersion ;
686     end;
687     end;
688     end;
689    
690     function TIBArrayGridEditor.GetVerbCount: Integer;
691     begin
692     Result := 2;
693     end;
694    
695 tony 33 { TDBLookupPropertiesGridFieldProperty }
696    
697     procedure TDBLookupPropertiesGridFieldProperty.FillValues(
698     const Values: TStringList);
699     var
700     P: TDBLookupProperties;
701     begin
702     P :=TDBLookupProperties(GetComponent(0));
703     if not (P is TDBLookupProperties) then exit;
704     LoadDataSourceFields(TIBDynamicGrid(P.Owner.Grid).DataSource, Values);
705     end;
706    
707     { TIBTreeViewFieldProperty }
708    
709     procedure TIBTreeViewFieldProperty.FillValues(const Values: TStringList);
710     var ListSource: TDataSource;
711     begin
712     ListSource := TIBTreeView(GetComponent(0)).DataSource;
713     LoadDataSourceFields(ListSource, Values);
714     end;
715    
716     { TIBDynamicGridIndexNamesProperty }
717    
718     function TIBDynamicGridIndexNamesProperty.GetFieldDefs: TFieldDefs;
719     var Grid: TIBDynamicGrid;
720     begin
721     Result := nil;
722     Grid := TIBDynamicGrid(GetComponent(0));
723     if assigned(Grid.DataSource) and assigned(Grid.DataSource.DataSet) then
724     Result := Grid.DataSource.DataSet.FieldDefs
725     end;
726    
727     function TIBDynamicGridIndexNamesProperty.GetIndexFieldNames: string;
728     var Grid: TIBDynamicGrid;
729     begin
730     Grid := TIBDynamicGrid(GetComponent(0));
731     Result := Grid.IndexFieldNames
732     end;
733    
734     procedure TIBDynamicGridIndexNamesProperty.SetIndexFieldNames(
735     const Value: string);
736     var Grid: TIBDynamicGrid;
737     begin
738     Grid := TIBDynamicGrid(GetComponent(0));
739     Grid.IndexFieldNames := Value
740     end;
741    
742     { TDBDynamicGridFieldProperty }
743    
744     procedure TDBDynamicGridFieldProperty.FillValues(const Values: TStringList);
745     var
746     P: TDBLookupProperties;
747     begin
748     P :=TDBLookupProperties(GetComponent(0));
749     if not (P is TDBLookupProperties) then exit;
750     LoadDataSourceFields(P.ListSource, Values);
751     end;
752    
753     { TIBServiceEditor }
754    
755     procedure TIBServiceEditor.ExecuteVerb(Index: Integer);
756     begin
757     if Index < inherited GetVerbCount then
758     inherited ExecuteVerb(Index) else
759     begin
760     Dec(Index, inherited GetVerbCount);
761     case Index of
762     0 : if ibserviceeditor.EditIBService(TIBCustomService(Component)) then Designer.Modified;
763     end;
764     end;
765     end;
766    
767     function TIBServiceEditor.GetVerb(Index: Integer): string;
768     begin
769     if Index < inherited GetVerbCount then
770     Result := inherited GetVerb(Index) else
771     begin
772     Dec(Index, inherited GetVerbCount);
773     case Index of
774     0: Result := SIBServiceEditor;
775     1 : Result := SInterbaseExpressVersion;
776     end;
777     end;
778     end;
779    
780     function TIBServiceEditor.GetVerbCount: Integer;
781     begin
782     Result := inherited GetVerbCount + 2;
783     end;
784    
785 tony 263 function TIBFileNameProperty.GetFilter: string;
786     begin
787     Result := SDatabaseFilter; {do not localize}
788     end;
789    
790 tony 33 { TIBFileNameProperty }
791     procedure TIBFileNameProperty.Edit;
792     begin
793     with TOpenDialog.Create(Application) do
794     try
795     InitialDir := ExtractFilePath(GetStrValue);
796 tony 263 Filter := GetFilter;
797 tony 33 if Execute then
798     SetStrValue(FileName);
799     finally
800     Free
801     end;
802     end;
803    
804     function TIBFileNameProperty.GetAttributes: TPropertyAttributes;
805     begin
806     Result := [paDialog];
807     end;
808    
809     { TIBNameProperty }
810    
811     function TIBNameProperty.GetAttributes: TPropertyAttributes;
812     begin
813     Result := [paValueList, paSortList];
814     end;
815    
816     { TIBStoredProcNameProperty }
817    
818     procedure TIBStoredProcNameProperty.GetValues(Proc: TGetStrProc);
819     var
820     StoredProc : TIBStoredProc;
821     i : integer;
822     begin
823     StoredProc := GetComponent(0) as TIBStoredProc;
824     if StoredProc.Database = nil then
825     Exit;
826    
827     with StoredProc do
828     try
829     for I := 0 to StoredProcedureNames.Count - 1 do
830     Proc (StoredProcedureNames[i]);
831     except on E: Exception do
832     MessageDlg(E.Message,mtError,[mbOK],0)
833     end;
834     end;
835    
836     { TIBTableNameProperty }
837    
838     procedure TIBTableNameProperty.GetValues(Proc: TGetStrProc);
839     var
840     Table : TIBTable;
841     i : integer;
842     begin
843     Table := GetComponent(0) as TIBTable;
844     if Table.Database = nil then
845     Exit;
846     with Table do
847     for I := 0 to TableNames.Count - 1 do
848     Proc (TableNames[i]);
849     end;
850    
851     { TDBStringProperty }
852    
853     function TDBStringProperty.ConnecttoDB: boolean;
854     var DataSet: TIBCustomDataSet;
855     begin
856     Result := false;
857     DataSet := (GetComponent(0) as TIBCustomDataSet);
858     if assigned(Dataset.Database) then
859     begin
860     try
861     DataSet.Database.Connected := true;
862     except on E: Exception do
863     ShowMessage(E.Message)
864     end;
865     Result := DataSet.Database.Connected
866     end;
867     end;
868    
869     function TDBStringProperty.GetAttributes: TPropertyAttributes;
870     begin
871     Result := [paValueList, paSortList, paMultiSelect];
872     end;
873    
874     procedure TDBStringProperty.GetValueList(List: TStrings);
875     begin
876     end;
877    
878     procedure TDBStringProperty.GetValues(Proc: TGetStrProc);
879     var
880     I: Integer;
881     Values: TStringList;
882     begin
883     if not ConnecttoDB then Exit;
884     Values := TStringList.Create;
885     try
886     GetValueList(Values);
887     for I := 0 to Values.Count - 1 do Proc(Values[I]);
888     finally
889     Values.Free;
890     end;
891     end;
892    
893     procedure TDBStringProperty.Edit;
894     begin
895     if ConnecttoDB then
896     inherited Edit;
897     end;
898    
899     { Utility Functions }
900    
901     function GetPropertyValue(Instance: TPersistent; const PropName: string): TPersistent;
902     var
903     PropInfo: PPropInfo;
904     begin
905     Result := nil;
906     PropInfo := TypInfo.GetPropInfo(Instance.ClassInfo, PropName);
907     if (PropInfo <> nil) and (PropInfo^.PropType^.Kind = tkClass) then
908     Result := TObject(GetOrdProp(Instance, PropInfo)) as TPersistent;
909     end;
910    
911     function GetIndexDefs(Component: TPersistent): TIndexDefs;
912     var
913     DataSet: TDataSet;
914     begin
915     DataSet := Component as TDataSet;
916     Result := GetPropertyValue(DataSet, 'IndexDefs') as TIndexDefs; {do not localize}
917     if Assigned(Result) then
918     begin
919     Result.Updated := False;
920     Result.Update;
921     end;
922     end;
923    
924     { TIBIndexFieldNamesProperty }
925    
926     procedure TIBIndexFieldNamesProperty.GetValueList(List: TStrings);
927     var
928     I: Integer;
929     IndexDefs: TIndexDefs;
930     begin
931     IndexDefs := GetIndexDefs(GetComponent(0));
932     for I := 0 to IndexDefs.Count - 1 do
933     with IndexDefs[I] do
934     if (Options * [ixExpression, ixDescending] = []) and (Fields <> '') then
935     List.Add(Fields);
936     end;
937    
938    
939     { TIBIndexNameProperty }
940    
941     procedure TIBIndexNameProperty.GetValueList(List: TStrings);
942     begin
943     GetIndexDefs(GetComponent(0)).GetItemNames(List);
944     end;
945    
946     { TSQLPropertyEditor }
947    
948     function TSQLPropertyEditor.GetAttributes: TPropertyAttributes;
949     begin
950     Result := inherited GetAttributes + [paDialog] - [paMultiSelect,paSubProperties];
951     end;
952    
953     { TIBQuerySQLProperty }
954    
955     procedure TIBQuerySQLProperty.Edit;
956     var
957     Query: TIBQuery;
958     begin
959     Query := GetComponent(0) as TIBQuery;
960     if IBSelectSQLEditor.EditSQL(Query,Query.SQL) then Modified;
961     end;
962    
963     { TIBDatasetSQLProperty }
964    
965     procedure TIBDatasetSQLProperty.Edit;
966     var
967     IBDataset: TIBDataset;
968     begin
969     IBDataset := GetComponent(0) as TIBDataset;
970     if IBSelectSQLEditor.EditSQL(IBDataSet,IBDataSet.SelectSQL) then Modified;
971     end;
972    
973     { TIBSQLProperty }
974    
975     procedure TIBSQLProperty.Edit;
976     var
977     IBSQL: TIBSQL;
978     begin
979     IBSQL := GetComponent(0) as TIBSQL;
980 tony 80 if IBSQLEditor.EditSQL(IBSQL) then Modified;
981 tony 33 end;
982    
983     { TIBUpdateSQLEditor }
984    
985     procedure TIBUpdateSQLEditor.ExecuteVerb(Index: Integer);
986     begin
987     if IBUpdateSQLEditor.EditIBUpdateSQL(TIBUpdateSQL(Component)) then Modified;
988     end;
989    
990     function TIBUpdateSQLEditor.GetVerb(Index: Integer): string;
991     begin
992     case Index of
993     0 : Result := SIBUpdateSQLEditor;
994 tony 45 1: Result := SInterbaseExpressVersion ;
995 tony 33 end;
996     end;
997    
998     function TIBUpdateSQLEditor.GetVerbCount: Integer;
999     begin
1000     Result := 2;
1001     end;
1002    
1003     { TIBDataSetEditor }
1004    
1005     procedure TIBDataSetEditor.ExecuteVerb(Index: Integer);
1006     begin
1007     if Index < inherited GetVerbCount then
1008     inherited ExecuteVerb(Index) else
1009     begin
1010     Dec(Index, inherited GetVerbCount);
1011     case Index of
1012     0:
1013     if IBDataSetEditor.EditIBDataSet(TIBDataSet(Component)) then
1014     Designer.Modified;
1015     1: (Component as TIBDataSet).ExecSQL;
1016     end;
1017     end;
1018     end;
1019    
1020     function TIBDataSetEditor.GetVerb(Index: Integer): string;
1021     begin
1022     if Index < inherited GetVerbCount then
1023     Result := inherited GetVerb(Index) else
1024     begin
1025     Dec(Index, inherited GetVerbCount);
1026     case Index of
1027     0: Result := SIBDataSetEditor;
1028     1: Result := SExecute;
1029 tony 45 2: Result := SInterbaseExpressVersion ;
1030 tony 33 end;
1031     end;
1032     end;
1033    
1034     function TIBDataSetEditor.GetVerbCount: Integer;
1035     begin
1036     Result := inherited GetVerbCount + 3;
1037     end;
1038    
1039     { TIBEventListProperty }
1040    
1041     function TIBEventListProperty.GetAttributes: TPropertyAttributes;
1042     begin
1043     Result := inherited GetAttributes + [paDialog] - [paMultiSelect,paSubProperties];
1044     end;
1045    
1046     procedure TIBEventListProperty.Edit;
1047     var
1048     Events: TStrings;
1049     IBEvents: TIBEvents;
1050     begin
1051     IBEvents := GetComponent(0) as TIBEvents;
1052     Events := TStringList.Create;
1053     try
1054     Events.Assign( IBEvents.Events);
1055     if EditAlerterEvents( Events) then
1056     begin
1057     IBEvents.Events.Assign(Events);
1058     Modified
1059     end;
1060     finally
1061     Events.Free;
1062     end;
1063     end;
1064    
1065     { TIBDatabaseEditor }
1066     procedure TIBDatabaseEditor.ExecuteVerb(Index: Integer);
1067     begin
1068     if Index < inherited GetVerbCount then
1069     inherited ExecuteVerb(Index) else
1070     begin
1071     Dec(Index, inherited GetVerbCount);
1072     case Index of
1073     0 : if EditIBDatabase(TIBDatabase(Component)) then Designer.Modified;
1074     end;
1075     end;
1076     end;
1077    
1078     function TIBDatabaseEditor.GetVerb(Index: Integer): string;
1079     begin
1080     if Index < inherited GetVerbCount then
1081     Result := inherited GetVerb(Index) else
1082     begin
1083     Dec(Index, inherited GetVerbCount);
1084     case Index of
1085     0: Result := SIBDatabaseEditor;
1086 tony 45 1 : Result := SInterbaseExpressVersion ;
1087 tony 33 end;
1088     end;
1089     end;
1090    
1091     function TIBDatabaseEditor.GetVerbCount: Integer;
1092     begin
1093     Result := inherited GetVerbCount + 2;
1094     end;
1095    
1096     { TIBTransactionEditor }
1097    
1098     procedure TIBTransactionEditor.ExecuteVerb(Index: Integer);
1099     begin
1100     case Index of
1101     0: if EditIBTransaction(TIBTransaction(Component)) then Designer.Modified;
1102     end;
1103     end;
1104    
1105     function TIBTransactionEditor.GetVerb(Index: Integer): string;
1106     begin
1107     case Index of
1108     0: Result := SIBTransactionEditor;
1109 tony 45 1: Result := SInterbaseExpressVersion ;
1110 tony 33 end;
1111     end;
1112    
1113     function TIBTransactionEditor.GetVerbCount: Integer;
1114     begin
1115     Result := 2;
1116     end;
1117    
1118     { TIBQueryEditor }
1119    
1120     procedure TIBQueryEditor.ExecuteVerb(Index: Integer);
1121     var
1122     Query: TIBQuery;
1123     begin
1124     if Index < inherited GetVerbCount then
1125     inherited ExecuteVerb(Index) else
1126     begin
1127     Query := Component as TIBQuery;
1128     Dec(Index, inherited GetVerbCount);
1129     case Index of
1130     0: Query.ExecSQL;
1131     1: if ibselectsqleditor.EditSQL(Query,Query.SQL) then Designer.Modified;
1132     end;
1133     end;
1134     end;
1135    
1136     function TIBQueryEditor.GetVerb(Index: Integer): string;
1137     begin
1138     if Index < inherited GetVerbCount then
1139     Result := inherited GetVerb(Index) else
1140     begin
1141     Dec(Index, inherited GetVerbCount);
1142     case Index of
1143     0: Result := SExecute;
1144     1: Result := SEditSQL;
1145 tony 45 2: Result := SInterbaseExpressVersion ;
1146 tony 33 end;
1147     end;
1148     end;
1149    
1150     function TIBQueryEditor.GetVerbCount: Integer;
1151     begin
1152     Result := inherited GetVerbCount + 3;
1153     end;
1154    
1155     { TIBStoredProcEditor }
1156    
1157     procedure TIBStoredProcEditor.ExecuteVerb(Index: Integer);
1158     begin
1159     if Index < inherited GetVerbCount then
1160     inherited ExecuteVerb(Index) else
1161     begin
1162     Dec(Index, inherited GetVerbCount);
1163     if Index = 0 then (Component as TIBStoredProc).ExecProc;
1164     end;
1165     end;
1166    
1167     function TIBStoredProcEditor.GetVerb(Index: Integer): string;
1168     begin
1169     if Index < inherited GetVerbCount then
1170     Result := inherited GetVerb(Index) else
1171     begin
1172     Dec(Index, inherited GetVerbCount);
1173     case Index of
1174     0: Result := SExecute;
1175 tony 45 1: Result := SInterbaseExpressVersion ;
1176 tony 33 end;
1177     end;
1178     end;
1179    
1180     function TIBStoredProcEditor.GetVerbCount: Integer;
1181     begin
1182     Result := inherited GetVerbCount + 2;
1183     end;
1184    
1185     { TIBTableFieldLinkProperty }
1186    
1187     procedure TIBTableFieldLinkProperty.Edit;
1188     begin
1189     FTable := DataSet as TIBTable;
1190     if assigned(FTable.Database) then
1191     FTable.Database.Connected := true;
1192     inherited Edit;
1193     end;
1194    
1195     function TIBTableFieldLinkProperty.GetIndexDefs: TIndexDefs;
1196     begin
1197     Result := FTable.IndexDefs
1198     end;
1199    
1200     function TIBTableFieldLinkProperty.GetIndexFieldNames: string;
1201     begin
1202     Result := FTable.IndexFieldNames;
1203     end;
1204    
1205     function TIBTableFieldLinkProperty.GetMasterFields: string;
1206     begin
1207     Result := FTable.MasterFields;
1208     end;
1209    
1210     procedure TIBTableFieldLinkProperty.SetIndexFieldNames(const Value: string);
1211     begin
1212     FTable.IndexFieldNames := Value;
1213     end;
1214    
1215     procedure TIBTableFieldLinkProperty.SetMasterFields(const Value: string);
1216     begin
1217     FTable.MasterFields := Value;
1218     end;
1219    
1220     { TIBUpdateSQLProperty }
1221    
1222     procedure TIBUpdateSQLProperty.Edit;
1223     var
1224     IBDataset: TIBDataset;
1225     begin
1226     IBDataset := GetComponent(0) as TIBDataset;
1227     if IBModifySQLEditor.EditSQL(IBDataSet,IBDataSet.ModifySQL) then Modified;
1228     end;
1229    
1230     { TIBUpdateSQLUpdateProperty }
1231    
1232     procedure TIBUpdateSQLUpdateProperty.Edit;
1233     begin
1234     GetObjects;
1235     if IBModifySQLEditor.EditSQL(FIBUpdateSQL.DataSet,FIBUpdateSQL.ModifySQL) then Modified;
1236     end;
1237    
1238     { TIBRefreshSQLProperty }
1239    
1240     procedure TIBRefreshSQLProperty.Edit;
1241     var
1242     IBDataset: TIBDataset;
1243     begin
1244     IBDataset := GetComponent(0) as TIBDataset;
1245     if IBRefreshSQLEditor.EditSQL(IBDataSet,IBDataSet.RefreshSQL) then Modified;
1246     end;
1247    
1248     { TIBUpdateSQLRefreshSQLProperty }
1249    
1250     procedure TIBUpdateSQLRefreshSQLProperty.Edit;
1251     begin
1252     GetObjects;
1253     if IBRefreshSQLEditor.EditSQL(FIBUpdateSQL.DataSet,FIBUpdateSQL.RefreshSQL) then Modified;
1254     end;
1255    
1256     { TIBDeleteSQLProperty }
1257    
1258     procedure TIBDeleteSQLProperty.Edit;
1259     var
1260     IBDataset: TIBDataSet;
1261     begin
1262     IBDataset := GetComponent(0) as TIBDataSet;
1263     if IBDeleteSQLEditor.EditSQL(IBDataSet,IBDataSet.DeleteSQL) then Modified;
1264     end;
1265    
1266     { TIBUpdateSQLDeleteProperty }
1267    
1268     function TIBUpdateSQLDeleteProperty.GetAttributes: TPropertyAttributes;
1269     begin
1270     Result:=inherited GetAttributes;
1271     end;
1272    
1273     procedure TIBUpdateSQLDeleteProperty.Edit;
1274     begin
1275     GetObjects;
1276     if IBDeleteSQLEditor.EditSQL(FIBUpdateSQL.DataSet,FIBUpdateSQL.DeleteSQL) then Modified;
1277     end;
1278    
1279     { TUpdateSQLPropertyEditor }
1280    
1281     function TUpdateSQLPropertyEditor.GetObjects: boolean;
1282     begin
1283     Result := false;
1284     FIBUpdateSQL := GetComponent(0) as TIBUpdateSQL;
1285     if not assigned(FIBUpdateSQL) or not assigned(FIBUpdateSQL.DataSet) then
1286     Exit;
1287     FDatabase := nil;
1288     if FIBUpdateSQL.DataSet is TIBQuery then
1289     begin
1290     FDatabase := (FIBUpdateSQL.DataSet as TIBQuery).Database;
1291     Result := true
1292     end;
1293     end;
1294    
1295     { TIBInsertSQLProperty }
1296    
1297     procedure TIBInsertSQLProperty.Edit;
1298     var
1299     IBDataset: TIBDataSet;
1300     begin
1301     IBDataset := GetComponent(0) as TIBDataSet;
1302     if IBInsertSQLEditor.EditSQL(IBDataSet,IBDataSet.InsertSQL) then Modified;
1303     end;
1304    
1305     { TIBUpdateSQLInsertSQLProperty }
1306    
1307     procedure TIBUpdateSQLInsertSQLProperty.Edit;
1308     begin
1309     GetObjects;
1310     if IBInsertSQLEditor.EditSQL(FIBUpdateSQL.Dataset,FIBUpdateSQL.InsertSQL) then Modified;
1311     end;
1312    
1313     { TIBGeneratorProperty }
1314    
1315     function TIBGeneratorProperty.GetAttributes: TPropertyAttributes;
1316     begin
1317     Result:= inherited GetAttributes + [paDialog] - [paMultiSelect,paValueList];
1318     end;
1319    
1320     procedure TIBGeneratorProperty.Edit;
1321     begin
1322     if IBGeneratorEditor.EditGenerator(GetPersistentReference as TIBGenerator) then Modified;
1323     end;
1324    
1325     { TIBSQLEditor }
1326    
1327     procedure TIBSQLEditor.ExecuteVerb(Index: Integer);
1328     begin
1329 tony 80 if IBSQLEditor.EditSQL(TIBSQL(Component)) then Modified;
1330 tony 33 end;
1331    
1332     function TIBSQLEditor.GetVerb(Index: Integer): string;
1333     begin
1334     case Index of
1335     0 : Result := SIBSQLEditor;
1336 tony 45 1: Result := SInterbaseExpressVersion ;
1337 tony 33 end;
1338     end;
1339    
1340     function TIBSQLEditor.GetVerbCount: Integer;
1341     begin
1342     Result:= 2
1343     end;
1344    
1345     { TIBSQLSQLPropertyEditor }
1346    
1347     procedure TIBSQLSQLPropertyEditor.Edit;
1348     var
1349     IBSQL: TIBSQL;
1350     begin
1351     IBSQL := GetComponent(0) as TIBSQL;
1352 tony 80 if IBSQLEditor.EditSQL(IBSQL) then Modified;
1353 tony 33 end;
1354    
1355     initialization
1356     {$I IBDBReg.lrs}
1357     end.