Mascara em um ComboBox

Delphi

03/09/2006

Gostaria de saber... se posso atribuir uma máscara a um ComboBox... preciso colocara uma máscara de hora ( __:__:__ ) ou ( 00:00:00 )

Isso é possível ?

Antecipadamente Agradeço a Atenção...


Adelor Silva

Adelor Silva

Curtidas 0

Respostas

Marco Salles

Marco Salles

03/09/2006

tente:

procedure TForm1.Button1Click(Sender: TObject);
const
mascar=´(99:99:99);0;_´;
begin
combobox1.Items.Add(MaskDoFormatText(mascar,edit1.Text,#48));
end;



GOSTEI 0
Night_man

Night_man

03/09/2006

na hora q voce atribui os valores para os items nova jah com a mascara certa... ou senao faca o seu propri desenho do combo


GOSTEI 0
Adelor Silva

Adelor Silva

03/09/2006

lamento pessoal... mas não consegui fazer nada com as dicas...

Quando eu preciono o TAB e o ComboBox recebe o Foco... eu preciso que a Máscara seja criada...

Marco Salles... a sua dica da erro no final do [b:b1c2fa6141]´const´[/b:b1c2fa6141], e não compila... mesmo assim obrigado...


GOSTEI 0
Adelor Silva

Adelor Silva

03/09/2006

sobe


GOSTEI 0
Night_man

Night_man

03/09/2006

desculpa cara, acho q nao estou te entendendo direito, tu pode ser mais claro na descricao do teu problema?!

como assim mascara??

seria uma mistura de maskedit com combo?!


GOSTEI 0
Adelor Silva

Adelor Silva

03/09/2006

Sem problemas NiGHT_MaN... o que eu preciso é mais ou menos assim...
eu programei o ComboBox para ter alguns valores de horas, do tipo
08:00:00
08:15:00
08:30:00
08:45:00
09:00:00

mas eu gostaria de colocar uma máscara, caso o meu usuário queira coloca uma hora que não está na lista que eu disponibilizo para ele... digamos que ele queira colocar: 08:10:00, ele vai ter que digitar tudo...

o que eu gostaria era de facilitar a a vida do usuário... com a máscara de horário

__:__:__ dai ele não precisa digitar os dois pontos (:), e sím somente os dígitos correspondentes ao horário...

mas esta máscara eu gostaria de atribuir, quando o componente recebesse o foco, se ele quiser digitar a máscara estaria pronta... caso contrário ele optaria por um valor previamente programado que iria escolher na lista de opções...

Espero ter tirado sua dúvida... Obrigado pela sua disposição de ajudar...


GOSTEI 0
Marco Salles

Marco Salles

03/09/2006

o que voce quer talves seje isto..

uses MaskUtils;


{$R *.dfm}

procedure TForm1.Cb1Change(Sender: TObject);
const
mascar=´99:99:99;0;_´;
var
formato:String;
posicao:integer;
begin
if cb1.Text = ´´ Then
  begin
    cb1.OnChange:=nil;
    cb1.Text:=´  :  :  ´;
    cb1.OnChange:=Cb1Change;
  end
else
 begin
   formato:=cb1.Text;
   formato:=StringReplace(cb1.Text,´:´,´´,[rfReplaceAll, rfIgnoreCase]);
   formato:=trim(formato);
   cb1.Text:=MaskDoFormatText(mascar,formato,´ ´);
   case length(formato) of
    1: cb1.SelStart:=1;
    2: cb1.SelStart:=3;
    3: cb1.SelStart:=4;
    4: cb1.SelStart:=6;
    5: cb1.SelStart:=7;
    6: cb1.SelStart:=8;
   end;
 end;
end;


procedure TForm1.Cb1Enter(Sender: TObject);
const
mascar=´99:99:99;0;_´;
var
formato:String;
begin
 formato:=cb1.Text;
 formato:=StringReplace(cb1.Text,´:´,´´,[rfReplaceAll, rfIgnoreCase]);
 formato:=trim(formato);
 cb1.Text:=MaskDoFormatText(mascar,formato,´ ´);
end;


apimente a gosto.. Por exemplo programar o Keypress para receber so numeros , ou definir um tamanho para o combobox , para evitar valors maiores do que o formato.. Emfim ...


GOSTEI 0
Adelor Silva

Adelor Silva

03/09/2006

Marco Salles... Mais uma vez... muito obrigado... a você NiGHT_MaN... obrigado também...

Agradeço por disponibilizar tempo para ajudar a outros, desta forma colaborar com meu aprendizado... fico grato... valew


GOSTEI 0
POSTAR