db (can be merged):

- move hints constants to resourcestrings
  - simplified default hints assigning
  - don't set enabled state of buttons directly, use a more correct way which depends on current DataLink state (as result in runtime only correct buttons are enabled, not every)

git-svn-id: trunk@16736 -
This commit is contained in:
paul 2008-09-26 01:27:04 +00:00
parent 5d3611d298
commit c911e73e25
3 changed files with 49 additions and 38 deletions

View File

@ -844,10 +844,29 @@ const
DefaultDBNavigatorButtons = [nbFirst, nbPrior, nbNext, nbLast,
nbInsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh];
DBNavButtonResourceName: array[TDBNavButtonType] of string = (
'DBNavFirst', 'DBNavPrior', 'DBNavNext', 'DBNavLast',
'DBNavInsert', 'DBNavDelete', 'DBNavEdit', 'DBNavPost',
'DBNavCancel', 'DBNavRefresh'
{ nbFirst } 'DBNavFirst',
{ nbPrior } 'DBNavPrior',
{ nbNext } 'DBNavNext',
{ nbLast } 'DBNavLast',
{ nbInsert } 'DBNavInsert',
{ nbDelete } 'DBNavDelete',
{ nbEdit } 'DBNavEdit',
{ nbPost } 'DBNavPost',
{ nbCancel } 'DBNavCancel',
{ nbRefresh } 'DBNavRefresh'
);
DBNavButtonDefaultHint: array[TDBNavButtonType] of string = (
{ nbFirst } rsFirstRecordHint,
{ nbPrior } rsPriorRecordHint,
{ nbNext } rsNextRecordHint,
{ nbLast } rsLastRecordHint,
{ nbInsert } rsInsertRecordHint,
{ nbDelete } rsDeleteRecordHint,
{ nbEdit } rsEditRecordHint,
{ nbPost } rsPostRecordHint,
{ nbCancel } rsCancelRecordHint,
{ nbRefresh } rsRefreshRecordsHint
);
type

View File

@ -268,60 +268,40 @@ begin
// update button properties
CurButton.Flat:=Flat;
CurButton.Enabled:=Enabled;
CurButton.Index:=CurButtonType;
CurButton.SetBounds(X,Y,W,H);
CurButton.Visible:=CurButtonType in FVisibleButtons;
CurButton.OnClick:=@ButtonClickHandler;
CurButton.Parent:=Self;
CurButton.ControlStyle := CurButton.ControlStyle + [csNoDesignSelectable];
if CurButton.Visible then begin
if CurButton.Visible then
begin
inc(ButtonNumber);
ButtonStartPos:=ButtonEndPos;
end;
end;
ActiveChanged;
end;
procedure TDBCustomNavigator.UpdateHints;
function GetDBNavButtonHint(CurButton: TDBNavButtonType): string;
begin
case CurButton of
// ToDo: convert to resourcestrings
nbFirst: Result:='First';
nbPrior: Result:='Prior';
nbNext: Result:='Next';
nbLast: Result:='Last';
nbInsert: Result:='Insert';
nbDelete: Result:='Delete';
nbEdit: Result:='Edit';
nbPost: Result:='Post';
nbCancel: Result:='Cancel';
nbRefresh: Result:='Refresh';
else
RaiseGDBException('TDBCustomNavigator.InitHints');
end;
end;
var
CurButton: TDBNavButtonType;
i: Integer;
begin
if (FDefaultHints.Count=0) then begin
TStringList(FDefaultHints).OnChange:=nil;
for CurButton:=Low(Buttons) to High(Buttons) do
FDefaultHints.Add(GetDBNavButtonHint(CurButton));
if (FDefaultHints.Count = 0) then
begin
TStringList(FDefaultHints).OnChange := nil;
for CurButton := Low(Buttons) to High(Buttons) do
FDefaultHints.Add(DBNavButtonDefaultHint[CurButton]);
FOriginalHints := FDefaultHints.Text;
TStringList(FDefaultHints).OnChange:=@DefaultHintsChanged;
TStringList(FDefaultHints).OnChange := @DefaultHintsChanged;
end;
i:=0;
for CurButton:=Low(Buttons) to High(Buttons) do begin
if FHints.Count>i then
Buttons[CurButton].Hint:=FHints[i]
for CurButton := Low(Buttons) to High(Buttons) do
begin
if FHints.Count > Ord(CurButton) then
Buttons[CurButton].Hint := FHints[Ord(CurButton)]
else
Buttons[CurButton].Hint:=FDefaultHints[i];
Buttons[CurButton].ShowHint:=ShowButtonHints;
inc(i);
Buttons[CurButton].Hint := FDefaultHints[Ord(CurButton)];
Buttons[CurButton].ShowHint := ShowButtonHints;
end;
end;

View File

@ -80,6 +80,18 @@ resourceString
// DBGrid
rsDeleteRecord = 'Delete record?';
// DBCtrls
rsFirstRecordHint = 'First';
rsPriorRecordHint = 'Prior';
rsNextRecordHint = 'Next';
rsLastRecordHint = 'Last';
rsInsertRecordHint = 'Insert';
rsDeleteRecordHint = 'Delete';
rsEditRecordHint = 'Edit';
rsPostRecordHint = 'Post';
rsCancelRecordHint = 'Cancel';
rsRefreshRecordsHint = 'Refresh';
// gtk interface
rsWarningUnremovedPaintMessages = ' WARNING: There are %s unremoved LM_'