Je suis en utilisant le code suivant ajouté à mon DBGrid - événement OnCellClickDBGrid - OnCellClick & OnDblClick, renvoient une forme/TBMemo contenant la valeur cellules/colonne/s
procedure TForm2.DBGrid1CellClick(Column: TColumn);
begin
if dbmodule.comenziDataSet.Active then
begin
if not Assigned(dbgridCelulaForm) then
begin
dbgridCelulaForm := TdbgridCelulaForm.Create(Self);
dbgridCelulaForm.DBMemoCelula.DataSource := dbmodule.comenziSource;
end;
dbgridCelulaForm.Visible := False;
dbgridCelulaForm.Visible := True;
dbgridCelulaForm.DBMemoCelula.DataField := Column.FieldName;
dbgridCelulaForm.Caption := Format('%s/randul: %d',[Column.FieldName, DBGrid1.DataSource.DataSet.RecNo]);
end;
end;
de dbgridCelulaForm = nom du formulaire contenant le TDBMemo
DBMemoCelula = nom du TDBMemo
dbmodule.comenziDataSet = comenziDataSet est le nom de la DataSet
et dbmodule est le nom d'un data module
(unité, comme formes) - le DataSet
est sur la data module
, de sorte que, dbmodule.comenziDataSet dbmodule. comenziSource = Identique ensemble de données, une source de données sur un module de données, la source est nommé comenziSource
Ok, donc ce que fait ce code:
Une fois que je clique sur une cellule sur mon DBGrid
il apparaît un form
(nommé dbgridCelulaForm) qui contient un TBMemo
(nommé DBMemoCelula) et il me montre les informations contenues dans cette cellule (comme, un nom de client par exemple, ou quelle que soit la cellule tient, dans ma db)
Cela est bien, mon problème est que je ne peut pas sélectionner des lignes maintenant DBGrid
, bien, je peux mais une fois que je fais la 1ère place, je clique (une cellule, tout) sur la ligne particulière que je veux sélectionner avec ma souris, puis la cellule s'active et le form
apparaît.
Est-il possible d'utiliser ce code dans l'événement DBGrid
- OnDblClick
au lieu du OnCellClick
? Signification une fois que je double-cliquez sur une ligne/cellule le form
devrait apparaître et me montrer l'information, mais double-cliquez sur - pas un seul clic.
De cette façon, je peux toujours sélectionner la ligne et toujours afficher les informations dans la cellule si nécessaire.
Ou tout autre moyen/lieu d'utiliser/recevoir cette fonctionnalité. Des pensées?
Je peux poster une vidéo rapide de tout si mon explication est ambiguë et que vous pensez que cela aiderait, dites-moi simplement dans le commentaire/réponse.
En outre, j'utilise les composants RAD Studio 10 Seattle et dbexpress pour la base de données - si cela peut vous aider.
Merci!
Pas d'ambiguïté du tout ... La façon dont je mis en œuvre des fonctionnalités similaires est par le bouton d'édition des colonnes de la grille - déclenche un événement OnEditButtonClick sur la grille. Définissez le style du bouton sur cbsEllipsis afin qu'il soit évident qu'une boîte de dialogue s'affiche lorsque vous cliquez dessus. Peut également être déclenché avec Alt + Bas. –
Bonjour, merci pour votre réponse. J'utilise déjà OnEditButtonClick pour quelque chose d'autre, donc je ne peux pas l'utiliser. La réponse de Martyn aide, même pour votre commentaire SelectedField, merci! – Petzy