RE:tremenda duda--uff ahora me explique bien-...
veo que si usaste un query para seleccionar los datos, por que si hubieras usado una tabla (componente) hubieras modificado directamente sin problemas, pero si usaste un query fue por algo. en fin
usando esa misma consulta, de tu query, carga los datos en edits normales (yo lo haria), luego, si los cambias, haces un query, pero en vez de ser un select, que sea un update.
imaginemos que tienes en tu tabla, 3 campos, id, nombre, detalles
seria algo asi:
update la_tabla set nombre = :nombre, detalles = :detalles where id = :id
digamos que tu edit1 es donde cargaste el nombre, y ya lo modificaste, si tu nombre era "Juan" y lo cambiaste por "Jose"
la sintaxis es algo asi:
Query1.ParamByName('Nombre').AsString := Edit1.Text;
Query1.ParamByName('Detalles').AsString := Edit2.Text;
y asi sucesivamente hasta que cumplas con el numero de campos que tienes en tu tabla, segun el tipo de datos que uses, puedes remplazar el .AsString por Value, como muchos lo hacen.
ya una vez llenados los parametros de la consulta, das lo siguiente:
Query1.ExecSQL;
y para que actualices, cierras el Query que usaste para hacer la selección y despues lo vuelves a abrir
quizas te explique algo que ya sabes, pero no me culpes por tratar de ayudarte :P
para que muestres los datos en edits normales, puedes hacerlo de esta manera, tomando el ejemplo anterior.
//ya que abriste el query de seleccion
Edit1.Text := Query1.FieldByName('Nombre').AsString;
Edit2.Text := Query1.FieldByNamre('Detalles').AsString;
//si el id es entero
Edit3.Text := IntToStr(Query1.FieldByName('Id').AsInteger);
y asi segun lo requieras