Ver Mensaje Individual
  #4  
Antiguo 12-12-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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
  // Rango turno mañana
  m1:= StrToTime('08:00');
  m2:= StrToTime('12:00');
  // Rango turno tarde
  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.

Última edición por ecfisa fecha: 12-12-2010 a las 10:21:45.
Responder Con Cita