Hola Gonza.
El DBEdit es la representación visual de un campo de un DataSet, asi que es lo mismo asignar la máscara con la línea:
DataSet1.FieldByName('HORA').EditMask:= '!90:00:00;1;_'; que desde el editor de máscaras del campo. Puse el código
por que se presta menos a confuciones que explicar el proceso visual.
La variable aux me quedó de una prueba, perdón.
En la línea:
DataSet1.Edit; estoy poniendo el
DataSet en modo edición. Te agrego el mismo ejemplo con algunos cambios
que creo te van a aclarar como se hace lo mismo pero referenciando el
DataSet desde el parámetro
Sender de tipo
TField.
Código Delphi
[-]
procedure TForm1.DataSet1HORASetText(Sender: TField; const Text: String);
var
Hora,m1,m2,
t1,t2: TTime;
begin
m1:= StrToTime('08:00');
m2:= StrToTime('12:00');
t1:= StrToTime('16:00');
t2:= StrToTime('20:00');
Hora:= StrToTime(Text);
(Sender as TField).DataSet.Edit;
if ((ComboBox1.Text = 'MAÑANA') and
((Hora < m1) or ( Hora > m2))) or
((ComboBox1.Text = 'TARDE') and
((Hora < t1) or (Hora > t2))) then
begin
ShowMessage('Horario no permitido en el turno elegido');
(Sender as TField).DataSet.Cancel;
end
else
(Sender as TField).AsDateTime:= Hora;
end;
Un saludo.