Buscar

Autonumeração em letras

Código

var
  letra:char;
  caracter{ultima letra do campo},variavel{armazena letra}:string;
  quantidade:byte;//quantidade de caracteres
  result{caracter tranformado em numero},valida{autoriza mudar caracter}:integer;

begin

// edit7 é valor "letras"
// edit8 resposta da sequencia

  edit8.Text:='';//limpa editis antes de adicionar

  caracter:=edit7.Text;//caracteres digitado
  variavel:=edit8.Text;//variavel de armazenamento
  quantidade:=length(edit7.Text);//quantidade de caracter para calculo
  valida:=0;//execução de processo

  while (quantidade>0) do //repetir varias vezes até quantidade ser igual a zero
    begin
      letra:= caracter[quantidade]; //importar caracter para campo letra

      case letra of //converte letra em número
        'A': variavel:= '1';
        'B': variavel:= '2';
        'C': variavel:= '3';
        'D': variavel:= '4';
        'E': variavel:= '5';
        'F': variavel:= '6';
        'G': variavel:= '7';
        'H': variavel:= '8';
        'I': variavel:= '9';
        'J': variavel:= '10';
        'K': variavel:= '11';
        'L': variavel:= '12';
        'M': variavel:= '13';
        'N': variavel:= '14';
        'O': variavel:= '15';
        'P': variavel:= '16';
        'Q': variavel:= '17';
        'R': variavel:= '18';
        'S': variavel:= '19';
        'T': variavel:= '20';
        'U': variavel:= '21';
        'V': variavel:= '22';
        'W': variavel:= '23';
        'X': variavel:= '24';
        'Y': variavel:= '25';
        'Z': variavel:= '26';
      end;// case letra

      if (strtoint(variavel)<27) and (valida=0) then
        begin
          variavel:=inttostr(strtoint(variavel)+1);
          valida:=-1;
        end;//end do variavel<27 e valida=0

       if (strtoint(variavel)<27) and (valida=1) then
         begin
            variavel:=inttostr(strtoint(variavel)+1);
              if (strtoint(variavel)<27) then
                valida:=0
              else
                valida:=1;
          end;//end do variavel<27 e valida=1

      if (strtoint(variavel)>26) then
        begin
          variavel:='1';
          valida:=1;
        end;//end do variavel>26

        result:=strtoint(variavel);//retornar Letra no lugar do número

      case result of //convertendo e recopiando caracteres anterior
        1: Edit8.Text:= 'A'+edit8.Text;
        2: Edit8.Text:= 'B'+edit8.Text;
        3: Edit8.Text:= 'C'+edit8.Text;
        4: Edit8.Text:= 'D'+edit8.Text;
        5: Edit8.Text:= 'E'+edit8.Text;
        6: Edit8.Text:= 'F'+edit8.Text;
        7: Edit8.Text:= 'G'+edit8.Text;
        8: Edit8.Text:= 'H'+edit8.Text;
        9: Edit8.Text:= 'I'+edit8.Text;
        10: Edit8.Text:= 'J'+edit8.Text;
        11: Edit8.Text:= 'K'+edit8.Text;
        12: Edit8.Text:= 'L'+edit8.Text;
        13: Edit8.Text:= 'M'+edit8.Text;
        14: Edit8.Text:= 'N'+edit8.Text;
        15: Edit8.Text:= 'O'+edit8.Text;
        16: Edit8.Text:= 'P'+edit8.Text;
        17: Edit8.Text:= 'Q'+edit8.Text;
        18: Edit8.Text:= 'R'+edit8.Text;
        19: Edit8.Text:= 'S'+edit8.Text;
        20: Edit8.Text:= 'T'+edit8.Text;
        21: Edit8.text:= 'U'+edit8.Text;
        22: Edit8.text:= 'V'+edit8.Text;
        23: Edit8.text:= 'W'+edit8.Text;
        24: Edit8.text:= 'X'+edit8.Text;
        25: Edit8.Text:= 'Y'+edit8.Text;
        26: Edit8.Text:= 'Z'+edit8.Text;
    end;//case result

      quantidade:=quantidade-1; //subtrai quantidade até chegar a zero

    if (quantidade=0)and(valida=1) then//adiciona 'A' se sequencia chegar ao fim
      Edit8.Text:= 'A'+edit8.Text;

  end;//end do while

   

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Object pascal
Adicionada dia: 29/07/09
Por: João
Visualizada: 3859 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009