InputBox com texto apenas em caixa alta.

 

Declare a unit Messages, e a constante abaixo logo após a seção uses de sua unit.

Const
  InputBoxMsg = WM_USER + 123;

 

Vamos agora declarar a procedure responsável pela conversão dos caracteres minúsculos em maiúsculos.

  private
    { Private declarations }
    procedure InputBoxSet(var Msg: TMessage); message InputBoxMsg;

 

Contruindo a procedure que fará a transformção:

procedure TFormXX.InputBoxSet(var Msg: TMessage);
var
  i: integer;
begin
  for i:=0 to Screen.Forms[0].ComponentCount-1 do
  begin
    if Screen.Forms[0].Components[i] is TEdit then
    begin
      With TEdit( Screen.Forms[0].Components[i] ) do
      begin
        CharCase := ecUpperCase;
      end;
    end;
  end;
end; 

 

Exemplo de uso da InputBox

 

var
  Pega: string;
begin
// Usaremos PostMessage para enviar a mensagem em caixa alta

  PostMessage(Handle, InputBoxMsg, 0, 0);
  Pega := InputBox('Pergunta', 'Qual a sua profissão?', '');
  if Pega <> '' then
    ShowMessage('Sua profissão é : ' + Pega);
end;

 

Em uma próxima oportunidade, mostrarei como fazer para o inputbox aceitar outros tipos e colocarei um arquivo para download dos exemplos.