c'est un peut bête mais je n'arrive pas a enlever la ligne vide dans la dbgrid quand la table et vide ?
c'est un peut bête mais je n'arrive pas a enlever la ligne vide dans la dbgrid quand la table et vide ?
Tout bêtement je dirais un delete sans clause where
Ou encore truncate
Code : Sélectionner tout - Visualiser dans une fenêtre à part DELETE FROM matable
En passant, je suis persuadé que ce sujet à déjà été abordé dans ce même forum et que google de donne la solution avec les mots "SQL + Vider Table"
Code : Sélectionner tout - Visualiser dans une fenêtre à part TRUNCATE TABLE matable
Mes tutoriels
Avant de poster :
- F1
- FAQ
- Tutoriels
- Guide du développeur Delphi devant un problème
mais c'est justement après un delete from matable que j'ai cette ligne vide dans le dbgrid ,c'est pas comment vidé une table mais comment enlever la ligne vide dans le dbgrid après avoir vidé la table ,,
et oui j'ai cherche dans google et ici peut être j'ai pas utilisé les bons arguments mais j'ai pas trouver
Peut être parce que la table affichée n'est pas en readonly ?
a vrai dire je n'ai jamais fait attention a ça , utilisé smdbgrid pourrait être aussi une alternative (elle affiche <pas de données> si la table est vide)
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Peut pas, Na !!
Plus sérieusement, quand l'ensemble de données est ouvert est vide, la ligne vide est toujours affichée.
Tentes de déconnecter la datasource du dbgrid ou de fermer l'ensemble de données, mais cela j'en suis plus trop sûr.
@+
M E N S . A G I T A T . M O L E M
Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal
"La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."
L'explication vient sans doute de la possibilité d'auto-édition (propriété AutoEdit de la DataSource), en effet dans ce cas si tu veux insérer un nouvel enregistrement il faut bien avoir une ligne pour saisir.
Ceci dit je n'encourage pas la saisie directe dans un DBGrid, c'est aps pratique pour contrôler les données.
@++
M E N S . A G I T A T . M O L E M
Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal
"La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."
non le DBGrid et on lecture seul dans mon application ,, et je crois quand ne peut pas enlevé cette ligne vide car même sans table juste on pause un DBGrid sur une forme i l y a cette ligne vide
j'ai essayé avec les option de la DBGrid j'ai mis les dgRowline et dgCollines a false quand la table et vide elle a bien disparue mais celle du titre aussi !!
Le DBGrid est plus fort que toi
Je pense que tu vas devoir te résigner...
M E N S . A G I T A T . M O L E M
Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal
"La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."
mais DBgrid est 'hackable' donc rien n'empêche de dessiner sur son canvas
j'ai fais un test rapide et pas beau , reste a :définir le Rectangle[Edit] j'ai initialisé le rectangle reste à calculé la position du texte
pour faire réapparaitre : DBGrid1.repaint
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 ... type THackDBGrid = class(TDBGrid); var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); var Arect : TRect; TopCentre,LeftCentre : Integer; begin if DBGrid1.DataSource=nil then /// remplacable par un recordcount=0 ;) begin ARect.Top:=THackDbGrid(DBGrid1).DefaultRowHeight+THackDbGrid(DBGrid1).GridLineWidth; ARect.Left:=THackDbGrid(DBGrid1).ColWidths[0]+THackDbGrid(DBGrid1).GridLineWidth; // ARect.Right:=DBgrid1.Width; ARect.Bottom:=DBGrid1.Height; TopCentre:=20; LeftCentre:=40; THackDBGrid(DBGrid1).canvas.TextRect(ARect,TopCentre,leftCentre,'Vide'); end; end;
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Petite question : ton type THackDBGrid est juste là pour donner accès à des membres protégés, c'est ça ?
M E N S . A G I T A T . M O L E M
Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal
"La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager