Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 1557 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá pessoal,

No Lazarus, no evento OnKeyPress de um form coloquei o seguinte comando:

Key := AnsiUpperCase(Key)[1];

Porém quando uso acento ou "ç" a letra não retorna maiúscula como acontece no delphi:

Erro.png.07b1f34a2237befc08d5f96f0b3dcc6e.png

Alguém já passou por isso? Help!

  • Solution
Postado

porque utf8 não é apenas 8bits (note que você usa [1] para limitar ao primeiro byte).
não use OnKeyPress, caso queira colocar no evento apropriado, coloque em OnUTF8KeyPress e não limite à um byte a alteração com Uppercase
Mas ainda acredito que apenas setar corretamente  a propriedade Charcase deve resolver no seu caso.

  • Curtir 4
Postado

Daniel Simoesjá tentei também, mas dá erro de conversão, usei também o UTF8UpperString e também retorna os caracteres minúsculos  bylaardt  infelizmente o TForm não tem o evento OnUTF8KeyPress e nem a propriedade CharCase, não quero me limitar apenas ao componente TEdit. Enfim vou procurar uma forma, obrigado!

Postado
procedure SetControlUpperCase(MyComponent:TWinControl);
Var
  i:Integer;
begin
  if MyComponent is TCustomComboBox then
    TCustomComboBox(MyComponent).CharCase:=ecUppercase
  else if MyComponent is TCustomEdit then
    TCustomEdit(MyComponent).CharCase:=ecUppercase;
  for i:=0 to MyComponent.ControlCount-1 do
    if MyComponent.Controls[i] is TWinControl then
      SetControlUpperCase(TWinControl(MyComponent.Controls[i]));
end;

depois é só chamar a procedure uma vez, exemplo:

procedure TForm1.FormCreate(Sender: TObject);
begin
  SetControlUpperCase(Self);
end;  

com a vantagem de poder controlar por Tform, por Tpanel, ou qualquer outro TWinControl ou seus descendentes

  • Curtir 1
  • Este tópico foi criado há 1557 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.