Verificar quando selecionar data diferente de terça ou quart
Como pegar uma data de um componente TDateTimePicker e quando eu clicar numa data diferente de terça e quinta, ele me informe com um [b:f45fe4d6d4]MessageDlg(´Você selecionou uma data diferente de terça e quinta´, mtinformation, [mbok], 0)[/b:f45fe4d6d4]
Rlcdo
Curtidas 0
Respostas
Help
15/09/2008
Utilize a função ´DayOfWeek´ da unit ´SysUtils´ no evento ´OnChange´ do componente.
Se o resultado for igual a 3 (terça) ou 5 (quinta), exiba a mensagem.
Acho que isso resolve sua questão.
Se o resultado for igual a 3 (terça) ou 5 (quinta), exiba a mensagem.
Acho que isso resolve sua questão.
GOSTEI 0
Rlcdo
15/09/2008
Beleza... funcionou direitinho, porém tem como além de mandar a mensagem, eu colocar algum controle que impeça a pessoa de selecionar uma data diferente de terça ou quinta após a exibição da mensagem?
Porque da maneira que eu to fazendo, eu seleciono uma data, por exemplo: quarta, a mensagem é exibida, mas após eu clicar em ´ok´ fica selecionado na quarta
O código é esse:
Obs: o Dta_Sessão é um componente TDateTimePicker[/code]
Porque da maneira que eu to fazendo, eu seleciono uma data, por exemplo: quarta, a mensagem é exibida, mas após eu clicar em ´ok´ fica selecionado na quarta
O código é esse:
procedure TFRM_Movimento.Dta_SessaoChange(Sender: TObject); begin inherited; if (dayofweek(Dta_Sessao.date)<>3) and (dayofweek(Dta_sessao.Date)<>5) then MessageDlg(´Você selecionou uma data diferente de terça e quinta´, mtinformation, [mbok], 0); end;
Obs: o Dta_Sessão é um componente TDateTimePicker[/code]
GOSTEI 0
Marco Salles
15/09/2008
pode ser que tenha uma propriedade , um evento mais direto.
Porém vc obtem o que deseja processando mensagem
mais ou menos assim:
//declarando Variáveis e métodos
//inicializando Variáveis
//Processando o Valor da Data Atribuida
//Corrigindo a Data caso necessário
Boa sorte. Espero ter sido Útil
Porém vc obtem o que deseja processando mensagem
mais ou menos assim:
//declarando Variáveis e métodos
private Fdata:TDate; procedure OnChage(var message:TMessage);message Wm_User;
//inicializando Variáveis
procedure TForm1.FormCreate(Sender: TObject); begin Fdata:=Dta_Sessao.Date; end;
//Processando o Valor da Data Atribuida
procedure TForm1.Dta_SessaoChange(Sender: TObject); begin case dayofweek(Dta_Sessao.date) of 1,2,4,6,7: begin Dta_Sessao.onChange:=nil; Showmessage(´Você selecionou uma data diferente de terça e quinta´); postMessage(handle,wm_user,0,0); end else Fdata:=Dta_Sessao.date; end; end;
//Corrigindo a Data caso necessário
procedure TForm1.OnChage(var message: TMessage); begin Dta_Sessao.Date:=Fdata; Dta_Sessao.onChange:=Dta_SessaoChange; end;
Boa sorte. Espero ter sido Útil
GOSTEI 0