Delphi - No puedo rellenar el picklist de un dbgrid

 
Vista:

No puedo rellenar el picklist de un dbgrid

Publicado por Madrigal (5 intervenciones) el 03/04/2006 03:54:55
Antes que nada muchas gracias por atender mi pregunta. Estoy programando una aplicación de control de ventas e inventarios, cada producto tiene opción a 3 precios de venta diferentes. En el módulo de facturación ocupo una DBGrid en la cual la columna corespondiente al campo de "Precio Unitario" (el precio de venta del producto) maneja el modo cbsAuto, el picklist lo trato de rellenar en tiempo de ejecución con los 3 precios de venta que vienen en el registro del producto a vender. El problema es que cuando quiere comenzar a limpiar el picklist, con el solo hecho de hacer mención a el, inmediatamente provoca un error y ya no deja hacer nada. Este es el error:

"access violation at address 004D7C5F in module 'refac.exe'. Read of address 0000033C"

El código que empleo para rellenar la picklist es el siguiente:

procedure TModDatos.TRenglonesFacturasCodigoChange(Sender: TField);
begin
if TProductos.FindKey ([TRenglonesFacturasCodigo.Value]) then
begin
TRenglonesFacturasDescripcion.Value := TProductosDescripcion.Value;
MDIVentas.DBGrid1.Columns[3].PickList.Clear;
MDIVentas.DBGrid1.Columns.Items[3].PickList.Add (TProductosVenta1.AsString);
MDIVentas.DBGrid1.Columns.Items[3].PickList.Add (TProductosVenta2.AsString);
MDIVentas.DBGrid1.Columns.Items[3].PickList.Add (TProductosVenta3.AsString);
end
else
ShowMessage ('Producto no encontrado');
end;

Los campos "TProductosVenta1" hasta "TProductosVenta3" son del tipo moneda (currency), cabe señalar que ya he empleado el método de conversión "CurrToStr", lo cambié precisamente por estar probando cual me funcionaba.

El valor "Columns[3]" es el correspondiente a la columna que debe desplegar los precios de venta en el picklist, pero no se puede, ya probé todo lo habido y por haber y no hallo la explicación, si alguien sabe que ocurre por favor digamelo porque ya me urge terminar este proyecto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:No puedo rellenar el picklist de un dbgrid

Publicado por rob3030 (23 intervenciones) el 03/04/2006 18:12:48
Primero tienes que revisar que tu columna sea la correcta, recuerda que el index de las columnas comienzan en 0, o sea que tu primer columna es columns[0].

Por otro lado tus lineas

MDIVentas.DBGrid1.Columns.Items[3].PickList.Add (TProductosVenta1.AsString);
MDIVentas.DBGrid1.Columns.Items[3].PickList.Add (TProductosVenta2.AsString);
MDIVentas.DBGrid1.Columns.Items[3].PickList.Add (TProductosVenta3.AsString);

deben de decir

MDIVentas.DBGrid1.Columns[3].PickList.Add (TProductosVenta1.AsString);
MDIVentas.DBGrid1.Columns[3].PickList.Add (TProductosVenta2.AsString);
MDIVentas.DBGrid1.Columns[3].PickList.Add (TProductosVenta3.AsString);

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Asi tambien ya lo hice

Publicado por Madrigal (5 intervenciones) el 03/04/2006 19:17:01
Ya chequé el número de columna y si, si es la correcta. Igualmente ya tenía el código así como me lo plantea usted pero tambien presenta la falla. Con el solo hecho de que quiera accesar a esa propiedad, manda el error. No se que hacer y me superurge terminarlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como ago un software de control de ventas

Publicado por patty (1 intervención) el 12/04/2006 20:29:36
hola quisiera saber como ago un software para un control de ventas como lo modelo que ventanas necesito,etc
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar