Jump to content

Como Traduzir o Caption do UniDBNavigator e o Delete Record


belo

Recommended Posts

Segue dica de como traduzir os botões do UniDBNavigator e da mensagem de exclusão (Delete Record). Adaptado do Post Caption to the buttons of dbnavigator

 

com essa dica, também é possível traduzir outras mensagens.

 

Para esse exemplo, tem que declarar a Unit VdbConsts e Windows.

unit ServerModule;

interface

uses
  Classes, SysUtils, uniGUIServer, uniGUIMainModule, uniGUIApplication,
  uIdCustomHTTPServer, uniGUITypes, FireDAC.Phys.FBDef, FireDAC.UI.Intf,
  FireDAC.VCLUI.Wait, FireDAC.Comp.UI, FireDAC.Stan.Intf, FireDAC.Phys,
  FireDAC.Phys.IBBase, FireDAC.Phys.FB, Vcl.VdbConsts, Windows;

type
  TUniServerModule = class(TUniGUIServerModule)
    FDPhysFBDriverLink1: TFDPhysFBDriverLink;
    FDGUIxWaitCursor1: TFDGUIxWaitCursor;
  private
    { Private declarations }
  protected
    procedure FirstInit; override;
  public
    { Public declarations }
  end;

function UniServerModule: TUniServerModule;

implementation

{$R *.dfm}

uses
  UniGUIVars;

function UniServerModule: TUniServerModule;
begin
  Result := TUniServerModule(UniGUIServerInstance);
end;

procedure HookResourceString(rs: PResStringRec; newStr: PChar);
var
  oldprotect: DWORD;
begin
  VirtualProtect(rs, SizeOf(rs^), PAGE_EXECUTE_READWRITE, @oldprotect);
  rs^.Identifier := Integer(newStr);
  VirtualProtect(rs, SizeOf(rs^), oldprotect, @oldprotect);
end;

procedure TUniServerModule.FirstInit;
begin
  InitServerModule(Self);
end;

initialization

RegisterServerModuleClass(TUniServerModule);

RegisterServerModuleClass(TUniServerModule);

// Translate Messages in Vcl.VdbConsts.pas Unit ( English to Portuguese Br )
// resourcestring { DBCtrls }

// UniDBNavigator
HookResourceString(@SFirstRecord, PChar('Primeiro Registro'));
HookResourceString(@SPriorRecord, PChar('Registro Anterior'));
HookResourceString(@SNextRecord, PChar('Próximo Registro'));
HookResourceString(@SLastRecord, PChar('Último Registro'));
HookResourceString(@SInsertRecord, PChar('Inserir'));
HookResourceString(@SDeleteRecord, PChar('Excluir'));
HookResourceString(@SEditRecord, PChar('Editar'));
HookResourceString(@SPostEdit, PChar('Confirmar'));
HookResourceString(@SCancelEdit, PChar('Cancelar'));
HookResourceString(@SRefreshRecord, PChar('Atualizar Dados'));
HookResourceString(@SApplyUpdates, PChar('Aplicar Atualizações'));
HookResourceString(@SCancelUpdates, PChar('Cancelar Atualizações'));

HookResourceString(@SDeleteRecordQuestion, PChar('Excluir Registro?'));

end.

sds

 

Eduardo Belo

 

Link to comment
Share on other sites

Muito bom Eduardo!

 

Hack no próprio Delphi  :) também tem mais esses:

// Translate  Messages in  Consts.pas  Unit  ( English to Portuguese Br) 
 
  HookResourceString(@SMsgDlgWarning,pchar('Atenção')) ;
  HookResourceString(@SMsgDlgInformation,pchar('Informação')) ;
  HookResourceString(@SMsgDlgConfirm,pchar('Confirma')) ;
  HookResourceString(@SMsgDlgError,pchar('Erro')) ;
Link to comment
Share on other sites

  • 2 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...