Jump to content
Notícias do ACBr

click.png

click.png

click.png

click.png

click.png

click.png

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


Saiba mais

beneficios.png

click.png

click.png

click.png

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

Recommended Posts

*    Olá, procurei muito por essa solução e como não encontrei decidi disponibilizar aqui a forma que eu pensei para o ComboBox do lázaros aceitar mais dígitos quando a propriedade Style = csDropDownList

*    Como a função em uma classe criei o Timer em tempo de exeção...

* uses para criar o timer

 ExtCtrls

var

MemKey: string;

//================================ CREATE ====================================\\
constructor TRiba.Create;
begin
  TimerMemKey := TTimer.Create(nil);
  TimerMemKey.Interval := 1000;
  TimerMemKey.Enabled := False;
  TimerMemKey.OnTimer := @TimerMemKeyOnTimer;
  MemKey := '';
end;

//================================= DESTRUCTOR ===============================\\
destructor TRiba.Destroy;
begin
  TimerMemKey.Free;
  inherited Destroy;
end; 

//================================ TIMER =====================================\\
procedure TRiba.TimerMemKeyOnTimer(Sender: TObject);
begin
  MemKey := '';
  TimerMemKey.Enabled := False;
end;  

* Dai a função  ficou assim...

//========================== COMBO BOX KEY ===================================\\
function TRiba.ComboBoxKey(const Key: char): string;
begin
  MemKey := MemKey + Key;
  Result := MemKey;
  TimerMemKey.Enabled := True;
end;

 * E no evento on key press do combobox ficou assim...

//============================= CB UF KEY PRESS ==============================\\
procedure TFormClientes2.cbUFKeyPress(Sender: TObject; var Key: char);
begin

//to usando o sender para poder anexar todos os combobox do form ao mesmo evento
  (Sender as TComboBox).Text := Riba.ComboBoxKey(Key);
  Key := #0;
end; 

//===========================================================================\\

Se essa solução não for apropriada peço desculpa aos moderadores e peço que exclua essa portagem por favor.

DEUS abençoe a todos! 🙏

Link to comment
Share on other sites

  • Consultores

Movi para um subforum adequado pois não tem relação com o ACBrNFe

  • Like 1
Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to comment
Share on other sites

* Olá

* Corrigi a função pois ela estava funcionado apenas com dois dígitos.

* Na UF funcionou de boa, mas quando fui usar nos municípios que vi a caca que eu tinha feito.

* Dai a função ficou assim...

//========================== COMBO BOX KEY ===================================\\
function TRiba.ComboBoxKey(const AKey: char; AItens: TPersistent): integer;
var
  auxItens: TStringList;
  I: integer;
  auxItem: string;
begin
  MemKey := MemKey + FormataTexto(AKey);

  try
    auxItens := TStringList.Create;
    auxItens.Assign(AItens);

    for I := 0 to Pred(auxItens.Count) do
    begin
      auxItem := UpperCase(Copy(auxItens[I], 1, Length(MemKey)));

      if(auxItem = MemKey)then
        Result := I;
    end;
  finally
    auxItens.Free;
  end;
  TimerMemKey.Enabled := True;
end;                   

* E pra chamar ela ficou assim...

//============================= CB UF KEY PRESS ==============================\\
procedure TFormClientes2.cbUFKeyPress(Sender: TObject; var Key: char);
begin
  if (key = #13) then
    Exit;

  (Sender as TComboBox).ItemIndex := Riba.ComboBoxKey(Key, (Sender as TComboBox).Items);
  Key := #0;
end;

* Desculpa a falha!

Link to comment
Share on other sites

* Ajustei com um Break no for pra ele pegar o primeiro item

for I := 0 to Pred(auxItens.Count) do
begin
    auxItem := UpperCase(Copy(auxItens[I], 1, Length(MemKey)));

    if(auxItem = MemKey)then
    begin
        Result := I;
        Break;
    end;
end;  

Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.