DBGrid de Delphi es uno de los componentes de DB más utilizados en aplicaciones relacionadas con bases de datos. Su objetivo principal es permitir que los usuarios de su aplicación manipulen registros de un conjunto de datos en una cuadrícula tabular.
Una de las características menos conocidas del componente DBGrid es que se puede configurar para permitir la selección de varias filas. Lo que esto significa es que sus usuarios pueden tener la capacidad de seleccionar múltiples registros (filas) del conjunto de datos conectado a la cuadrícula.
Para habilitar la selección múltiple, solo necesita configurar dgMultiSelect elemento a "Verdadero" en el Opciones propiedad. Cuando dgMultiSelect es "Verdadero", los usuarios pueden seleccionar varias filas en una cuadrícula utilizando las siguientes técnicas:
Las filas / registros seleccionados se representan como marcadores y se almacenan en la cuadrícula Filas seleccionadas propiedad.
Tenga en cuenta que Filas seleccionadas solo es útil cuando el Opciones la propiedad se establece en "Verdadero" para ambos dgMultiSelect y dgRowSelect. Por otro lado, cuando se usa dgRowSelect (cuando no se pueden seleccionar celdas individuales) el usuario no podrá editar registros directamente a través de la cuadrícula y, y dgEditing se establece automáticamente en "Falso".
los Filas seleccionadas la propiedad es un objeto de tipo TBookmarkList. Podemos usar el Filas seleccionadas propiedad de, por ejemplo:
Para establecer dgMultiSelect a "Verdadero", puede usar el Inspector de objetos en tiempo de diseño o use un comando como este en tiempo de ejecución:
DBGrid1.Options: = DBGrid1.Options + [dgMultiSelect];
Una buena situación para usar dgMultiSelect podría ser cuando necesite una opción para seleccionar registros aleatorios o si necesita la suma de los valores de los campos seleccionados.
El siguiente ejemplo utiliza componentes ADO (AdoQuery conectado a ADOConnection y DBGrid conectado a AdoQuery terminado Fuente de datos) para mostrar los registros de una tabla de base de datos en un componente DBGrid.
El código usa la selección múltiple para obtener la suma de los valores en el campo "Tamaño". Use este código de muestra si desea seleccionar todo el DBGrid:
procedimiento TForm1.btnDoSumClick (remitente: TObject);
var
i: entero;
suma: soltero;
comenzar DBGrid1.SelectedRows.Count> 0 entonces comenzar
suma: = 0;
con DBGrid1.DataSource.DataSet dobeginfor i: = 0 a DBGrid1.SelectedRows.Count-1 dobegin
GotoBookmark (Puntero (DBGrid1.SelectedRows.Items [i]));
sum: = sum + AdoQuery1.FieldByName ('Tamaño'). AsFloat;
final;
final;
edSizeSum.Text: = FloatToStr (sum);
final
final;