IDE, enhance DBGrid columns editor with three buttons: add fields, delete all and fetch labels, modified/adapted patch from Zdravko Gabrovski, issue #25219

git-svn-id: trunk@46395 -
This commit is contained in:
jesus 2014-10-01 21:03:04 +00:00
parent 4f735c239c
commit 368121fe76
28 changed files with 1253 additions and 38 deletions

2
.gitattributes vendored
View File

@ -1610,6 +1610,8 @@ components/ideintf/componenteditors.pas svneol=native#text/pascal
components/ideintf/componentreg.pas svneol=native#text/pascal
components/ideintf/componenttreeview.pas svneol=native#text/pascal
components/ideintf/compoptsintf.pas svneol=native#text/plain
components/ideintf/dbgridcolumnspropeditform.lfm svneol=native#text/plain
components/ideintf/dbgridcolumnspropeditform.pas svneol=native#text/pascal
components/ideintf/dbpropedits.pas svneol=native#text/pascal
components/ideintf/docs/baseideintf.xml svneol=native#text/plain
components/ideintf/docs/compoptsintf.xml svneol=native#text/plain

View File

@ -0,0 +1,151 @@
object DBGridColumnsPropertyEditorForm: TDBGridColumnsPropertyEditorForm
Left = 637
Height = 300
Top = 48
Width = 379
HorzScrollBar.Page = 189
VertScrollBar.Page = 299
BorderStyle = bsSizeToolWin
Caption = 'DBGridColumnsPropertyEditorForm'
ClientHeight = 300
ClientWidth = 379
Constraints.MinHeight = 100
Constraints.MinWidth = 190
OnCreate = FormCreate
OnDestroy = FormDestroy
Position = poDefaultPosOnly
LCLVersion = '1.3'
object ToolBar1: TToolBar
Left = 0
Height = 82
Top = 0
Width = 379
AutoSize = True
ButtonHeight = 40
ButtonWidth = 44
Caption = 'ToolBar1'
ShowCaptions = True
TabOrder = 0
object AddButton: TToolButton
Left = 1
Top = 2
Action = actAdd
ParentShowHint = False
ShowHint = True
end
object DeleteButton: TToolButton
Left = 45
Top = 2
Action = actDel
ParentShowHint = False
ShowHint = True
end
object DividerToolButton: TToolButton
Left = 89
Top = 2
Width = 5
Caption = 'DividerToolButton'
Style = tbsDivider
end
object MoveUpButton: TToolButton
Left = 94
Top = 2
Action = actMoveUp
ParentShowHint = False
ShowHint = True
end
object MoveDownButton: TToolButton
Left = 138
Top = 2
Action = actMoveDown
ParentShowHint = False
ShowHint = True
end
object btAddFlds: TToolButton
Left = 187
Top = 2
Action = actAddFields
end
object DividerToolButton1: TToolButton
Left = 182
Top = 2
Width = 5
Caption = 'DividerToolButton1'
Style = tbsDivider
Visible = False
end
object DividerToolButton2: TToolButton
Left = 256
Top = 2
Width = 5
Caption = 'DividerToolButton2'
Style = tbsDivider
Visible = False
end
object ToolButton1: TToolButton
Left = 261
Top = 2
Action = actDeleteAll
end
object DividerToolButton3: TToolButton
Left = 324
Top = 2
Width = 5
Caption = 'DividerToolButton3'
Style = tbsDivider
Visible = False
end
object ToolButton2: TToolButton
Left = 1
Top = 42
Action = actFetchLabels
end
end
object CollectionListBox: TListBox
Left = 0
Height = 218
Top = 82
Width = 379
Align = alClient
ItemHeight = 0
OnClick = CollectionListBoxClick
ScrollWidth = 377
TabOrder = 1
TopIndex = -1
end
object ActionList1: TActionList
left = 61
top = 109
object actAdd: TAction
Caption = 'Add'
OnExecute = actAddExecute
ShortCut = 45
end
object actDel: TAction
Caption = 'Del'
OnExecute = actDelExecute
ShortCut = 46
end
object actMoveUp: TAction
Caption = 'Up'
OnExecute = actMoveUpExecute
end
object actMoveDown: TAction
Caption = 'Down'
OnExecute = actMoveDownExecute
end
object actAddFields: TAction
Caption = 'Add Fields'
OnExecute = actAddFieldsExecute
ShortCut = 16449
end
object actDeleteAll: TAction
Caption = 'Delete all'
OnExecute = actDeleteAllExecute
end
object actFetchLabels: TAction
Caption = 'Fetch Labels'
OnExecute = actFetchLabelsExecute
end
end
end

View File

@ -0,0 +1,526 @@
unit DBGridColumnsPropEditForm;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, ComCtrls, StdCtrls, ActnList, LCLType, typinfo, DBGrids;
type
{ TDBGridColumnsPropertyEditorForm }
TDBGridColumnsPropertyEditorForm = class(TForm)
actAdd: TAction;
actDel: TAction;
actAddFields: TAction;
actDeleteAll: TAction;
actFetchLabels: TAction;
actMoveUp: TAction;
actMoveDown: TAction;
ActionList1: TActionList;
CollectionListBox: TListBox;
DividerToolButton1: TToolButton;
DividerToolButton2: TToolButton;
DividerToolButton3: TToolButton;
ToolBar1: TToolBar;
AddButton: TToolButton;
DeleteButton: TToolButton;
DividerToolButton: TToolButton;
MoveUpButton: TToolButton;
MoveDownButton: TToolButton;
btAddFlds: TToolButton;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
procedure actAddExecute(Sender: TObject);
procedure actAddFieldsExecute(Sender: TObject);
procedure actDeleteAllExecute(Sender: TObject);
procedure actDelExecute(Sender: TObject);
procedure actFetchLabelsExecute(Sender: TObject);
procedure actMoveDownExecute(Sender: TObject);
procedure actMoveUpExecute(Sender: TObject);
procedure CollectionListBoxClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
FCollection: TCollection;
FOwnerComponent: TPersistent;
FOwnerPersistent: TPersistent;
FPropertyName: String;
protected
procedure UpdateCaption;
procedure UpdateButtons;
procedure PersistentAdded(APersistent: TPersistent; Select: boolean);
procedure ComponentRenamed(AComponent: TComponent);
procedure PersistentDeleting(APersistent: TPersistent);
procedure RefreshPropertyValues;
public
procedure FillCollectionListBox;
procedure SelectInObjectInspector(ForceUpdate, UnselectAll: Boolean);
procedure SetCollection(NewCollection: TCollection;
NewOwnerPersistent: TPersistent; const NewPropName: String);
procedure Modified;
public
property Collection: TCollection read FCollection;
property OwnerComponent: TPersistent read FOwnerComponent;
property OwnerPersistent: TPersistent read FOwnerPersistent;
property PropertyName: String read FPropertyName;
end;
implementation
{$R *.lfm}
uses
Controls, Dialogs, LCLProc, IDEImagesIntf, ObjInspStrConsts, PropEdits,
PropEditUtils;
type
TPersistentAccess = class(TPersistent)
end;
procedure TDBGridColumnsPropertyEditorForm.FormCreate(Sender: TObject);
var
s: string;
begin
ToolBar1.Images := IDEImages.Images_16;
actAdd.Caption := oiColEditAdd;
actAddFields.Caption := dceAddFields;
actAddFields.ImageIndex := IDEImages.LoadImage(16, 'laz_add');
actFetchLabels.Caption := dceFetchLabels;
actFetchLabels.ImageIndex := IDEImages.LoadImage(16, 'laz_add');
actDel.Caption := oiColEditDelete;
actMoveUp.Caption := oiColEditUp;
actMoveDown.Caption := oiColEditDown;
actAdd.ImageIndex := IDEImages.LoadImage(16, 'laz_add');
actDel.ImageIndex := IDEImages.LoadImage(16, 'laz_delete');
actDeleteAll.Caption := dceDeleteAll;
actDeleteAll.ImageIndex := IDEImages.LoadImage(16, 'laz_delete');
actMoveUp.ImageIndex := IDEImages.LoadImage(16, 'arrow_up');
actMoveDown.ImageIndex := IDEImages.LoadImage(16, 'arrow_down');
actMoveUp.ShortCut := scCtrl or VK_UP;
actMoveDown.ShortCut := scCtrl or VK_DOWN;
actAdd.Hint := oiColEditAdd;
actDel.Hint := oiColEditDelete;
actMoveUp.Hint := oiColEditUp;
actMoveDown.Hint := oiColEditDown;
end;
procedure TDBGridColumnsPropertyEditorForm.FormDestroy(Sender: TObject);
begin
if GlobalDesignHook <> nil then
GlobalDesignHook.RemoveAllHandlersForObject(Self);
end;
procedure TDBGridColumnsPropertyEditorForm.CollectionListBoxClick(Sender: TObject);
begin
UpdateButtons;
UpdateCaption;
SelectInObjectInspector(False, False);
end;
procedure TDBGridColumnsPropertyEditorForm.actAddExecute(Sender: TObject);
begin
if Collection = nil then Exit;
Collection.Add;
FillCollectionListBox;
if CollectionListBox.Items.Count > 0 then
CollectionListBox.ItemIndex := CollectionListBox.Items.Count - 1;
SelectInObjectInspector(True, False);
UpdateButtons;
UpdateCaption;
Modified;
end;
procedure TDBGridColumnsPropertyEditorForm.actAddFieldsExecute(Sender: TObject);
var It : TCollectionItem;
flChanged : Boolean;
flEmpty : Boolean;
i : Integer;
begin
//
if Collection = nil then Exit;
if not ( Collection is TDBGridColumns ) then Exit;
flChanged := False;
flEmpty := False;
//Collection.Add;
//
//FillCollectionListBox;
//if CollectionListBox.Items.Count > 0 then
// CollectionListBox.ItemIndex := CollectionListBox.Items.Count - 1;
//SelectInObjectInspector(True, False);
//UpdateButtons;
//UpdateCaption;
//Modified;
if Collection.Count > 0 then
It := Collection.Items[ 0 ]
else begin
It := Collection.Add;
flEmpty:=True;
end;
if flEmpty or ( MessageDlg( dceColumnEditor, dceOkToDelete,
mtConfirmation, [mbYes, mbNo], 0) = mrYes ) then begin
try
if (It is TColumn) and ( Assigned( TDBGrid( TColumn( It ).Grid).DataSource ) ) and
Assigned ( TDBGrid( TColumn( It ).Grid).DataSource.DataSet ) then begin
flChanged:=True;
BeginFormUpdate;
Collection.Clear;
It := Collection.Add;
// TDBGrid( TColumn( It ).Grid).DataSource.DataSet.Open;
if TDBGrid( TColumn( It ).Grid).DataSource.DataSet.Fields.Count > 0 then begin
for i := 0 to TDBGrid( TColumn( It ).Grid).DataSource.DataSet.Fields.Count - 1 do begin
if i > 0 then begin
It := Collection.Add;
end;
TColumn( It ).Field:=TDBGrid( TColumn( It ).Grid).DataSource.DataSet.Fields[ i ];
TColumn( It ).Title.Caption:=TDBGrid( TColumn( It ).Grid).DataSource.DataSet.Fields[ i ].DisplayLabel;
end;
end;
end;
finally
if flChanged then begin
RefreshPropertyValues;
UpdateButtons;
UpdateCaption;
Modified;
EndFormUpdate;
end
else
if flEmpty then begin
Collection.Clear;
RefreshPropertyValues;
UpdateButtons;
UpdateCaption;
Modified;
EndFormUpdate;
end;
end;
end;
end;
procedure TDBGridColumnsPropertyEditorForm.actDeleteAllExecute(Sender: TObject);
begin
//
if Collection = nil then Exit;
if ( MessageDlg( dceColumnEditor, dceOkToDelete,
mtConfirmation, [mbYes, mbNo], 0) = mrYes ) then begin
try
BeginFormUpdate;
Collection.Clear;
finally
RefreshPropertyValues;
UpdateButtons;
UpdateCaption;
Modified;
EndFormUpdate;
end;
end;
end;
procedure TDBGridColumnsPropertyEditorForm.actDelExecute(Sender: TObject);
var
I : Integer;
NewItemIndex: Integer;
begin
if Collection = nil then Exit;
I := CollectionListBox.ItemIndex;
if (I >= 0) and (I < Collection.Count) then
begin
if MessageDlg(oisConfirmDelete,
Format(oisDeleteItem, ['"', Collection.Items[I].DisplayName, '"']),
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
// select other item, or unselect
NewItemIndex := I + 1;
while (NewItemIndex < CollectionListBox.Items.Count)
and (CollectionListBox.Selected[NewItemIndex]) do Inc(NewItemIndex);
if NewItemIndex = CollectionListBox.Items.Count then
begin
NewItemIndex := 0;
while (NewItemIndex < Pred(I))
and not (CollectionListBox.Selected[NewItemIndex]) do Inc(NewItemIndex);
if NewItemIndex = I then NewItemIndex := -1;
end;
CollectionListBox.ItemIndex := -1;
if NewItemIndex > I then Dec(NewItemIndex);
//debugln('TDBGridColumnsPropertyEditorForm.DeleteClick A NewItemIndex=',dbgs(NewItemIndex),' ItemIndex=',dbgs(CollectionListBox.ItemIndex),' CollectionListBox.Items.Count=',dbgs(CollectionListBox.Items.Count),' Collection.Count=',dbgs(Collection.Count));
// unselect all items in OI (collections can act strange on delete)
SelectInObjectInspector(True, True);
// now delete
Collection.Items[I].Free;
// update listbox after whatever happened
FillCollectionListBox;
// set NewItemIndex
if NewItemIndex < CollectionListBox.Items.Count then
begin
CollectionListBox.ItemIndex := NewItemIndex;
SelectInObjectInspector(False, False);
end;
//debugln('TDBGridColumnsPropertyEditorForm.DeleteClick B');
Modified;
end;
end;
UpdateButtons;
UpdateCaption;
end;
procedure TDBGridColumnsPropertyEditorForm.actFetchLabelsExecute(Sender: TObject
);
var It : TColumn;
i : Integer;
begin
//
if (Collection.Count > 0) and ( MessageDlg( dceColumnEditor, dceWillReplaceContinue,
mtConfirmation, [mbYes, mbNo], 0) = mrYes ) then begin
It := TColumn (Collection.Items[ 0 ]);
if Assigned ( It.Grid ) and Assigned (TDBGrid(It.Grid).DataSource) and Assigned (TDBGrid(It.Grid).DataSource.DataSet) then begin
for i := 0 to Collection.Count - 1 do
TColumn(Collection.Items[ i ]).Title.Caption:=TDBGrid(TColumn(Collection.Items[I]).Grid).DataSource.DataSet.FieldByName( TColumn(Collection.Items[I]).FieldName ).DisplayLabel;
end;
end;
end;
procedure TDBGridColumnsPropertyEditorForm.actMoveDownExecute(Sender: TObject);
var
I: Integer;
begin
if Collection = nil then Exit;
I := CollectionListBox.ItemIndex;
if I >= Collection.Count - 1 then Exit;
Collection.Items[I].Index := I + 1;
CollectionListBox.ItemIndex := I + 1;
FillCollectionListBox;
SelectInObjectInspector(True, False);
Modified;
end;
procedure TDBGridColumnsPropertyEditorForm.actMoveUpExecute(Sender: TObject);
var
I: Integer;
begin
if Collection = nil then Exit;
I := CollectionListBox.ItemIndex;
if I < 0 then Exit;
Collection.Items[I].Index := I - 1;
CollectionListBox.ItemIndex := I - 1;
FillCollectionListBox;
SelectInObjectInspector(True, False);
Modified;
end;
procedure TDBGridColumnsPropertyEditorForm.UpdateCaption;
var
NewCaption: String;
begin
//I think to match Delphi this should be formatted like
//"Editing ComponentName.PropertyName[Index]"
if OwnerPersistent is TComponent then
NewCaption := TComponent(OwnerPersistent).Name
else
if OwnerPersistent <> nil then
NewCaption := OwnerPersistent.GetNamePath
else
NewCaption := '';
if NewCaption <> '' then NewCaption := NewCaption + '.';
NewCaption := oiColEditEditing + ' ' + NewCaption + PropertyName;
if CollectionListBox.ItemIndex > -1 then
NewCaption := NewCaption + '[' + IntToStr(CollectionListBox.ItemIndex) + ']';
Caption := NewCaption;
end;
procedure TDBGridColumnsPropertyEditorForm.UpdateButtons;
var
I: Integer;
begin
I := CollectionListBox.ItemIndex;
actAdd.Enabled := Collection <> nil;
actFetchLabels.Enabled:=actAdd.Enabled and (CollectionListBox.Items.Count > 0);
actDel.Enabled := I > -1;
actMoveUp.Enabled := I > 0;
actMoveDown.Enabled := (I >= 0) and (I < CollectionListBox.Items.Count - 1);
end;
procedure TDBGridColumnsPropertyEditorForm.PersistentAdded(APersistent: TPersistent; Select: boolean);
begin
//DebugLn('*** TDBGridColumnsPropertyEditorForm.PersistentAdded called ***');
FillCollectionListBox;
end;
procedure TDBGridColumnsPropertyEditorForm.ComponentRenamed(AComponent: TComponent);
begin
//DebugLn('*** TDBGridColumnsPropertyEditorForm.ComponentRenamed called ***');
if AComponent = OwnerPersistent then
UpdateCaption;
end;
procedure TDBGridColumnsPropertyEditorForm.PersistentDeleting(APersistent: TPersistent);
var
AIndex, I: Integer;
begin
if (APersistent = OwnerPersistent) or (APersistent = OwnerComponent) then
begin
SetCollection(nil, nil, '');
Hide;
end
else
if Assigned(Collection) and (APersistent is TCollectionItem) and
(TCollectionItem(APersistent).Collection = Collection) then
begin
// persistent is still alive
AIndex := CollectionListBox.ItemIndex;
CollectionListBox.Items.BeginUpdate;
CollectionListBox.Items.Delete(TCollectionItem(APersistent).Index);
for I := TCollectionItem(APersistent).Index to CollectionListBox.Items.Count - 1 do
CollectionListBox.Items[I] := IntToStr(I) + ' - ' + Collection.Items[I + 1].DisplayName;
CollectionListBox.Items.EndUpdate;
if AIndex < CollectionListBox.Items.Count then
CollectionListBox.ItemIndex := AIndex
else
CollectionListBox.ItemIndex := CollectionListBox.Items.Count - 1;
end;
UpdateButtons;
UpdateCaption;
//DebugLn('*** TDBGridColumnsPropertyEditorForm.PersistentDeleting called ***');
end;
procedure TDBGridColumnsPropertyEditorForm.RefreshPropertyValues;
begin
FillCollectionListBox;
//DebugLn('*** TDBGridColumnsPropertyEditorForm.RefreshPropertyValues called ***');
end;
procedure TDBGridColumnsPropertyEditorForm.FillCollectionListBox;
var
I: Integer;
CurItem: String;
Cnt: Integer;
begin
CollectionListBox.Items.BeginUpdate;
try
if Collection <> nil then Cnt := Collection.Count
else Cnt := 0;
// add or replace list items
for I := 0 to Cnt - 1 do
begin
CurItem := IntToStr(I) + ' - ' + Collection.Items[I].DisplayName;// +' '+ TDBGrid(TColumn(Collection.Items[I]).Grid).DataSource.DataSet.FieldByName( TColumn(Collection.Items[I]).FieldName ).DisplayLabel ;// + ' - '+Collection.Items[I].ClassName +' - ' + Collection.ClassName;
DividerToolButton1.Visible := (Collection is TDBGridColumns);
btAddFlds.Visible := DividerToolButton1.Visible;
actAddFields.Enabled := DividerToolButton1.Visible;
if I >= CollectionListBox.Items.Count then
CollectionListBox.Items.Add(CurItem)
else
CollectionListBox.Items[I] := CurItem;
end;
// delete unneeded list items
if Cnt > 0 then
begin
while CollectionListBox.Items.Count > Cnt do
begin
CollectionListBox.Items.Delete(CollectionListBox.Items.Count - 1);
end;
end
else
begin
CollectionListBox.Items.Clear;
end;
finally
CollectionListBox.Items.EndUpdate;
UpdateButtons;
UpdateCaption;
end;
end;
procedure TDBGridColumnsPropertyEditorForm.SelectInObjectInspector(ForceUpdate, UnselectAll: Boolean);
var
I: Integer;
NewSelection: TPersistentSelectionList;
begin
if Collection = nil then Exit;
// select in OI
NewSelection := TPersistentSelectionList.Create;
NewSelection.ForceUpdate := ForceUpdate;
try
if not UnselectAll then
begin
for I := 0 to CollectionListBox.Items.Count - 1 do
if CollectionListBox.Selected[I] then
NewSelection.Add(Collection.Items[I]);
end;
GlobalDesignHook.SetSelection(NewSelection);
GlobalDesignHook.LookupRoot := GetLookupRootForComponent(OwnerPersistent);
finally
NewSelection.Free;
end;
end;
procedure TDBGridColumnsPropertyEditorForm.SetCollection(NewCollection: TCollection;
NewOwnerPersistent: TPersistent; const NewPropName: String);
begin
if (FCollection = NewCollection) and (FOwnerPersistent = NewOwnerPersistent)
and (FPropertyName = NewPropName) then Exit;
FCollection := NewCollection;
FOwnerPersistent := NewOwnerPersistent;
FPropertyName := NewPropName;
//find the component that owns the collection
FOwnerComponent := NewOwnerPersistent;
while FOwnerComponent <> nil do
begin
if FOwnerComponent is TComponent then
break;
FOwnerComponent := TPersistentAccess(FOwnerComponent).GetOwner;
end;
//debugln('TDBGridColumnsPropertyEditorForm.SetCollection A Collection=',dbgsName(FCollection),' OwnerPersistent=',dbgsName(OwnerPersistent),' PropName=',PropertyName);
if GlobalDesignHook <> nil then
begin
GlobalDesignHook.RemoveAllHandlersForObject(Self);
if FOwnerPersistent <> nil then
begin
GlobalDesignHook.AddHandlerPersistentAdded(@PersistentAdded);
GlobalDesignHook.AddHandlerComponentRenamed(@ComponentRenamed);
GlobalDesignHook.AddHandlerPersistentDeleting(@PersistentDeleting);
GlobalDesignHook.AddHandlerRefreshPropertyValues(@RefreshPropertyValues);
end;
end;
FillCollectionListBox;
UpdateCaption;
end;
procedure TDBGridColumnsPropertyEditorForm.Modified;
begin
GlobalDesignHook.Modified(Self);
end;
end.

View File

@ -1,4 +1,4 @@
{ Copyright (C) 2004
{ Copyright (C) 2004-2013
*****************************************************************************
See the file COPYING.modifiedLGPL.txt, included in this distribution,
@ -19,7 +19,7 @@ interface
uses
Classes, SysUtils, ObjInspStrConsts, PropEdits, PropEditUtils,
ComponentEditors,
TypInfo, DB, DbCtrls, DBGrids;
TypInfo, DB, DbCtrls, DBGrids, Forms, DBGridColumnsPropEditForm;
type
TFieldProperty = class(TStringPropertyEditor)
@ -29,6 +29,14 @@ type
procedure FillValues(const Values: TStringList); virtual;
end;
{ TDBGridColumnsPropertyEditor }
TDBGridColumnsPropertyEditor = class (TCollectionPropertyEditor)
public
class function ShowCollectionEditor(ACollection: TCollection;
OwnerPersistent: TPersistent; const PropName: String): TCustomForm; override;
end;
{ TLookupFieldProperty }
TLookupFieldProperty = class(TFieldProperty)
@ -52,6 +60,7 @@ type
function GetFieldDefsLookupRoot(APersistent: TPersistent): TPersistent;
procedure ListDataSourceFields(DataSource: TDataSource; List: TStrings);
procedure EditDBGridColumns(AComponent: TComponent; ACollection: TCollection; APropertyName: String);
implementation
@ -89,6 +98,28 @@ begin
Result:=GetLookupRootForComponent(Result);
end;
procedure EditDBGridColumns(AComponent: TComponent; ACollection: TCollection;
APropertyName: String);
begin
TDBGridColumnsPropertyEditor.ShowCollectionEditor(ACollection, AComponent, APropertyName);
end;
{ TDBGridColumnsPropertyEditor }
const
DBGridColumnsForm: TDBGridColumnsPropertyEditorForm = nil;
class function TDBGridColumnsPropertyEditor.ShowCollectionEditor(
ACollection: TCollection; OwnerPersistent: TPersistent; const PropName: String
): TCustomForm;
begin
if DBGridColumnsForm = nil then
DBGridColumnsForm := TDBGridColumnsPropertyEditorForm.Create(Application);
DBGridColumnsForm.SetCollection(ACollection, OwnerPersistent, PropName);
DBGridColumnsForm.EnsureVisible;
Result:=DBGridColumnsForm;
// Result:=inherited ShowCollectionEditor(ACollection, OwnerPersistent, PropName );
end;
{ TFieldProperty }
function TFieldProperty.GetAttributes: TPropertyAttributes;
@ -151,7 +182,7 @@ var
begin
DBGrid := GetComponent as TDBGrid;
GetHook(Hook);
EditCollection(DBGrid, DBGrid.Columns, 'Columns');
EditDBGridColumns( DBGrid, DBGrid.Columns, 'Columns' );
if Assigned(Hook) then Hook.Modified(Self);
end;
@ -174,6 +205,6 @@ initialization
RegisterPropertyEditor(TypeInfo(string), TColumn, 'FieldName', TDBGridFieldProperty);
RegisterComponentEditor(TDBGrid,TDBGridComponentEditor);
RegisterGetLookupRoot(@GetFieldDefsLookupRoot);
RegisterPropertyEditor(TypeInfo(TDBGridColumns), nil, '', TDBGridColumnsPropertyEditor);
end.

View File

@ -19,7 +19,7 @@
<Description Value="IDEIntf - the interface units for the Lazarus IDE"/>
<License Value="Modified LPGL2"/>
<Version Major="1"/>
<Files Count="76">
<Files Count="77">
<Item1>
<Filename Value="actionseditor.pas"/>
<UnitName Value="ActionsEditor"/>
@ -325,6 +325,10 @@
<Filename Value="projpackintf.pas"/>
<UnitName Value="projpackintf"/>
</Item76>
<Item77>
<Filename Value="dbgridcolumnspropeditform.pas"/>
<UnitName Value="DBGridColumnsPropEditForm"/>
</Item77>
</Files>
<LazDoc Paths="docs"/>
<i18n>

View File

@ -19,7 +19,8 @@ uses
NewItemIntf, ObjectInspector, ObjInspStrConsts, OIFavoriteProperties,
PackageIntf, ProjectIntf, ProjectResourcesIntf, PropEdits, PropEditUtils,
SrcEditorIntf, StatusBarPropEdit, StringsPropEditDlg, TextTools,
TreeViewPropEdit, UnitResources, ProjPackIntf, LazarusPackageIntf;
TreeViewPropEdit, UnitResources, ProjPackIntf, DBGridColumnsPropEditForm,
LazarusPackageIntf;
implementation

View File

@ -129,6 +129,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "Dalt"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr ""

View File

@ -131,6 +131,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "Nahoru"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr "&Spočítáno"

View File

@ -132,6 +132,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "Hoch"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr ""

View File

@ -3,11 +3,13 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Project-Id-Version: ideintf\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2013-05-12 21:00+0100\n"
"Last-Translator: Lucas Martin <codedeep@hotmail.com>\n"
"PO-Revision-Date: 2014-10-01 15:56-0600\n"
"Last-Translator: Jesus Reyes Aguilar <jesusrmx@yahoo.com.mx>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.5.4\n"
"Language: es\n"
#: objinspstrconsts.cactionlisteditorallcategory
msgid "(All)"
@ -129,6 +131,32 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "Arriba"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr "Añadir Campos"
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr "Editor de columnas de DBGrid"
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr "Borrar Todas"
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr "Obtener Títulos"
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr "Esto borrará todas las columnas. ¿Desea continuar?"
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
"Esto reemplazará los títulos de columna actuales por los originales del "
"dataset. ¿Desea continuar?"
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr "&Calculados"
@ -151,7 +179,6 @@ msgid "&Dataset:"
msgstr "&Dataset:"
#: objinspstrconsts.fesfetitle
#, fuzzy
#| msgid "Edit Fields..."
msgid "Edit Fields ..."
msgstr "Editar campos..."
@ -262,43 +289,37 @@ msgstr "Establecer valor"
#: objinspstrconsts.lisunabletofindparserfortool
msgid "Unable to find parser for tool \"%s\""
msgstr ""
msgstr "No se encontró analizador para la herramienta \"%s\""
#: objinspstrconsts.nbcesaddpage
#, fuzzy
#| msgid "Add page"
msgid "Add Page"
msgstr "Añadir página"
#: objinspstrconsts.nbcesdeletepage
#, fuzzy
#| msgid "Delete page"
msgid "Delete Page"
msgstr "Borrar página"
#: objinspstrconsts.nbcesinsertpage
#, fuzzy
#| msgid "Insert page"
msgid "Insert Page"
msgstr "Insertar página"
#: objinspstrconsts.nbcesmovepageleft
#, fuzzy
#| msgid "Move page left"
msgid "Move Page Left"
msgstr "Mover página a la izquierda"
#: objinspstrconsts.nbcesmovepageright
#, fuzzy
#| msgid "Move page right"
msgid "Move Page Right"
msgstr "Mover página a la derecha"
#: objinspstrconsts.nbcesshowpage
#, fuzzy
#| msgid "Show page ..."
msgid "Show Page"
msgstr "Mostrar página ..."
msgstr "Mostrar página"
#: objinspstrconsts.oicoleditadd
msgctxt "objinspstrconsts.oicoleditadd"
@ -337,10 +358,9 @@ msgid "Action"
msgstr "Acción"
#: objinspstrconsts.oisactionlistcomponenteditor
#, fuzzy
#| msgid "Action&List Editor..."
msgid "Action&List Editor ..."
msgstr "Editor de Action&List..."
msgstr "Editor de la ~Lista de Acciones"
#: objinspstrconsts.oisactionlisteditor
#| msgid "Action List Editor"
@ -422,10 +442,9 @@ msgid "Clear picture"
msgstr "Limpiar imagen"
#: objinspstrconsts.oiscomponentnameisnotavalididentifier
#, fuzzy
#| msgid "Component name %s%s%s is not a valid identifier"
msgid "Component name \"%s\" is not a valid identifier"
msgstr "El nombre de componente %s%s%s no es un identificador válido"
msgstr "El nombre de componente \"%s\" no es un identificador válido"
#: objinspstrconsts.oiscomponentrestrictions
msgid "Component restrictions: "
@ -471,10 +490,9 @@ msgid "&Delete"
msgstr "&Borrar"
#: objinspstrconsts.oisdeleteitem
#, fuzzy
#| msgid "Delete item %s%s%s?"
msgid "Delete item \"%s\"?"
msgstr "¿Borrar elemento %s%s%s?"
msgstr "¿Borrar elemento \"%s\"?"
#: objinspstrconsts.oisdeleteselectedfields
msgid "Delete selected field(s)"
@ -501,10 +519,9 @@ msgid "Error loading image"
msgstr "Error cargando imagen"
#: objinspstrconsts.oiserrorloadingimage2
#, fuzzy
#| msgid "Error loading image %s%s%s:%s%s"
msgid "Error loading image \"%s\":%s%s"
msgstr "Error cargando imagen %s%s%s:%s%s"
msgstr "Error cargando imagen \"%s\":%s%s"
#: objinspstrconsts.oiserrorwhiledeletingaction
msgid "Error while deleting action:%s%s"
@ -777,11 +794,11 @@ msgstr "Mostrar Descripciones"
#: objinspstrconsts.oisshowinfobox
msgid "Show Information Box"
msgstr ""
msgstr "Mostrar recuadro de información"
#: objinspstrconsts.oisshowstatusbar
msgid "Show Status Bar"
msgstr ""
msgstr "Mostrar barra de estado"
#: objinspstrconsts.oissort
msgid "Sort"
@ -1110,27 +1127,46 @@ msgstr "Probar entrada"
#: objinspstrconsts.oistheidentifierisnotamethodpresscanceltoundopressign
#, fuzzy
#| msgid "The identifier %s%s%s is not a method.%sPress Cancel to undo,%spress Ignore to force it."
msgid "The identifier \"%s\" is not a method.%sPress Cancel to undo,%spress Ignore to force it."
msgstr "El identificador %s%s%s no es un método.%sPresiona Cancelar para deshacer,%spresiona Ignorar para forzar."
#| msgid ""
#| "The identifier %s%s%s is not a method.%sPress Cancel to undo,%spress "
#| "Ignore to force it."
msgid ""
"The identifier \"%s\" is not a method.%sPress Cancel to undo,%spress Ignore "
"to force it."
msgstr ""
"El identificador %s%s%s no es un método.%sPresiona Cancelar para deshacer,"
"%spresiona Ignorar para forzar."
#: objinspstrconsts.oisthemethodisincompatibletothiseventpresscanceltound
#, fuzzy
#| msgid "The method %s%s%s is incompatible to this event (%s).%sPress Cancel to undo,%spress Ignore to force it."
msgid "The method \"%s\" is incompatible to this event (%s).%sPress Cancel to undo,%spress Ignore to force it."
msgstr "El método %s%s%s no es compatible con este evento (%s).%sPresiona Cancelar para deshacer,%spresiona Ignorar para forzar."
#| msgid ""
#| "The method %s%s%s is incompatible to this event (%s).%sPress Cancel to "
#| "undo,%spress Ignore to force it."
msgid ""
"The method \"%s\" is incompatible to this event (%s).%sPress Cancel to undo,"
"%spress Ignore to force it."
msgstr ""
"El método %s%s%s no es compatible con este evento (%s).%sPresiona Cancelar "
"para deshacer,%spresiona Ignorar para forzar."
#: objinspstrconsts.oisthemethodisnotpublishedpresscanceltoundopressignor
#, fuzzy
#| msgid "The method %s%s%s is not published.%sPress Cancel to undo,%spress Ignore to force it."
msgid "The method \"%s\" is not published.%sPress Cancel to undo,%spress Ignore to force it."
msgstr "El método %s%s%s no es de tipo publicado.%sPresiona Cancelar para deshacer,%spresiona Ignorar para forzar."
#| msgid ""
#| "The method %s%s%s is not published.%sPress Cancel to undo,%spress Ignore "
#| "to force it."
msgid ""
"The method \"%s\" is not published.%sPress Cancel to undo,%spress Ignore to "
"force it."
msgstr ""
"El método %s%s%s no es de tipo publicado.%sPresiona Cancelar para deshacer,"
"%spresiona Ignorar para forzar."
#: objinspstrconsts.oisunabletochangeparentofcontroltonewparent
#, fuzzy
#| msgid "Unable to change parent of control %s%s%s to new parent %s%s%s.%s%s"
msgid "Unable to change parent of control \"%s\" to new parent \"%s\".%s%s"
msgstr "No se puede cambiar el padre del control %s%s%s al nuevo padre %s%s%s.%s%s"
msgstr ""
"No se puede cambiar el padre del control %s%s%s al nuevo padre %s%s%s.%s%s"
#: objinspstrconsts.oisundo
msgctxt "objinspstrconsts.oisundo"
@ -1602,4 +1638,3 @@ msgstr "Mover pestaña a la izquierda"
#: objinspstrconsts.tccesmovetabright
msgid "Move tab right"
msgstr "Mover pestaña a la derecha"

View File

@ -124,6 +124,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "Ylös"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr "&Laskettu"

View File

@ -132,6 +132,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "Haut"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr ""

View File

@ -128,6 +128,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "למעלה "
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr "מחושב"

View File

@ -131,6 +131,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "Fel"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr "Számított"

View File

@ -129,6 +129,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "Naik"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr ""

View File

@ -132,6 +132,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "Su"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr "&Calcolato"

View File

@ -129,6 +129,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "上へ"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr "計算済み(&C)"

View File

@ -131,6 +131,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "Viršun"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr "Ap&skaičiuota"

View File

@ -124,6 +124,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "Omhoog"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr ""

View File

@ -132,6 +132,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "W górę"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr ""

View File

@ -124,6 +124,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr ""
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr ""

View File

@ -130,6 +130,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "Acima"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr "&Calculado"

View File

@ -129,6 +129,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "Вверх"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr "&Вычисляемое"

View File

@ -131,6 +131,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "Vyššie"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr ""

View File

@ -132,6 +132,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "Вверх"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr "Об&числено"

View File

@ -132,6 +132,30 @@ msgctxt "objinspstrconsts.clbup"
msgid "Up"
msgstr "上移"
#: objinspstrconsts.dceaddfields
msgid "Add Fields"
msgstr ""
#: objinspstrconsts.dcecolumneditor
msgid "DBGrid Columns Editor"
msgstr ""
#: objinspstrconsts.dcedeleteall
msgid "Delete All"
msgstr ""
#: objinspstrconsts.dcefetchlabels
msgid "Fetch Labels"
msgstr ""
#: objinspstrconsts.dceoktodelete
msgid "This will delete all columns. Continue?"
msgstr ""
#: objinspstrconsts.dcewillreplacecontinue
msgid "This will replace all captions from dataset. Continue?"
msgstr ""
#: objinspstrconsts.fescalculated
msgid "&Calculated"
msgstr ""

View File

@ -433,6 +433,14 @@ resourcestring
oisAddCollectionItem = '&Add Item';
lisUnableToFindParserForTool = 'Unable to find parser for tool "%s"';
// Dbgrid Columns editor
dceAddFields = 'Add Fields';
dceDeleteAll = 'Delete All';
dceFetchLabels = 'Fetch Labels';
dceWillReplaceContinue = 'This will replace all captions from dataset. Continue?';
dceColumnEditor = 'DBGrid Columns Editor';
dceOkToDelete = 'This will delete all columns. Continue?';
implementation
end.

View File

@ -210,6 +210,7 @@ Yuriy Yeroshkin
Yury Sidorov
Zaenal Mutaqin
Zaher Dirkey
Zdravko Gabrovski
Zeljan Rikalo
Zilvinas Ledas