Buenas a todos.
A ver si me podeis aclarar un poco una duda que tengo de como posicionar un evento que se lanza desde un dbRadioGroup.
Al iniciar el formulario, con cada nuevo registro el DBRG coge el valor C (esta limitado a C y F).
Necesito hacer lo siguiente:
Al cambiar este valor a F, me debe mostrar un mensaje diciendome si quiero hacer un proceso.
Una vez guardado el proceso, si le vuelvo a poner valor C me debe avisar de si quiero hacer el proceso inverso.
No quiero que a cada cambio de registro o al cargar la tabla me salga el mensaje de si quiero realizar el cambio.
Donde es mejor que situe los eventos?, en el onchange del DBRG o en el del campo persistente?
Lo hecho hasata ahora pero no cumple mis expectativas:
Código Delphi
[-]procedure TF_Rebut.DBRadioGroup2Click(Sender: TObject);
begin
if F_ModulDades.Rebut.State in [dsEdit, dsInsert] then
begin
if F_ModulDades.RebutPAGADOR.Value ='C' then
begin
if MessageDlg('Vols borrar despeses extres?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
F_ModulDades.Borra_Extres.Close;
F_ModulDades.Borra_Extres.Open;
end;
end;
end;
end;
Código Delphi
[-]procedure TF_ModulDades.RebutPAGADORChange(Sender: TField);
begin
if Rebut.State in [dsEdit, dsInsert] then
begin
if RebutPAGADOR.Value ='F' then
begin
if MessageDlg('Vols entrar despeses extres?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
F_ExtresFCC:=TF_ExtresFCC.Create(Self);
F_ExtresFCC.ShowModal;
Extres_FCC.Close;
Extres_FCC.Open;
Contar_ID.Close;
Contar_ID.Open;
if Contar_ID.RecordCount = 0 then
begin
Extres_FCC.Append;
end
else
begin
Extres_FCC.Edit;
end;
end
else
begin
Extres_FCC.Close;
Extres_FCC.Open;
Contar_ID.Close;
Contar_ID.Open;
if Contar_ID.RecordCount = 0 then
begin
Extres_FCC.Append;
Extres_FCCALLOTJAMENT.Value:=0;
Extres_FCCQUILOMETRES.Value:=0;
Extres_FCCPEATGE.Value:=0;
Extres_FCCMATERIAL.Value:=0;
Extres_FCCVARIS.Value:=0;
Extres_FCC.Post;
end;
end;
end;
end;
end;
Lo que hace este onchange esta correcto, pero no me muestra el mensaje hasta que hago post por eso mi duda, no se si debe ir en un before post de la tabla on exit del componente o algo más.
Gracias por adelantado
Saludos
Josep