Hola amigos del club,estoy un poco atorado en un sistema que estoy implemetando, pues resulta que necesito un evento parecido al
OnSetEditText del StringGrid, pero que sea en un DBGrid, el asunto es que tengo un DBGrid conectadoa a un ClientDataSet atraves de un DataSource,en el ClientDataSet tengo 5 campos(columnas) de las cuales una de ellas es para colocar el
precio de compra de materiales en moneda Nacional(osea de mi pais) y otro campo(que esta al lado del anterior)es para poner el equivalente de ese monto pero en moneda extranjera, osea
dólares;desde luego que para convertir la moneda nacional a extranjera se utiliza la siguiente formula:
Código Delphi
[-]Dólares:=Moneda_Nacional /Tipo_De_Cambio_Actual;
El
tipo_de_cambio_actual se refiere a el precio que cuesta
1 dolar en moneda nacional de mi pais; que desde luego no es constante sino que puede cambiar o variar diariamente.Este dato es registrado por el usuario al mometo de ingresar al sistema, osea que internamente lo tengo almacenado en una variable, digamos
TC(tipo de cambio
)
.
Bueno el asunto es que para automatizar la
insersion o edicion de los datos en el DBGrid ,deseo que cuando el usuario este poniendo el monto en moneda nacional,automaticamente se vaya tambien convirtiendo a moneda extranjera en la siguiente columna o tambien que cuando ponga los datos en la columna de moneda extranjera haga lo mismo en la columna anterior;claro que en este caso la formula debe ser invertida. osea:
Código Delphi
[-]Moneda_Nacional:=Dólares * Tipo_De_Cambio_Actual;
En algun sitema anterior yo ya habia hecho algo parecido pero en un StringGrid en el cual utilizaba el evento
OnSetEditText y ponia algo como esto:
Código Delphi
[-]procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
ARow: Integer; const Value: String);
begin
if ACol=3 then StringGrid1.Cells[4,ARow]:=FloatToStr(StrToFloat(Value)/TC); if ACol=4 then StringGrid1.Cells[3,ARow]:=FloatToStr(StrToFloat(Value)*TC);end;
Ahora lo que deseo es hacer lo mismo pero en un DBGrid ,pero en realidad no se en que evento poder hacerlo,o como podria solucionar esto?

Muchas gracias de antemano por su sugerencias.
Saludos..
