mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-04 13:37:22 +01:00
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:
parent
4f735c239c
commit
368121fe76
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -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
|
||||
|
||||
151
components/ideintf/dbgridcolumnspropeditform.lfm
Normal file
151
components/ideintf/dbgridcolumnspropeditform.lfm
Normal 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
|
||||
526
components/ideintf/dbgridcolumnspropeditform.pas
Normal file
526
components/ideintf/dbgridcolumnspropeditform.pas
Normal 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.
|
||||
|
||||
@ -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.
|
||||
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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 ""
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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 ""
|
||||
|
||||
@ -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"
|
||||
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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 ""
|
||||
|
||||
@ -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 "מחושב"
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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 ""
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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)"
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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 ""
|
||||
|
||||
@ -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 ""
|
||||
|
||||
@ -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 ""
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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 "&Вычисляемое"
|
||||
|
||||
@ -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 ""
|
||||
|
||||
@ -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 "Об&числено"
|
||||
|
||||
@ -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 ""
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -210,6 +210,7 @@ Yuriy Yeroshkin
|
||||
Yury Sidorov
|
||||
Zaenal Mutaqin
|
||||
Zaher Dirkey
|
||||
Zdravko Gabrovski
|
||||
Zeljan Rikalo
|
||||
Zilvinas Ledas
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user