IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

SQLite3 et rafraîchissement de la forme


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 33
    Points
    33
    Par défaut SQLite3 et rafraîchissement de la forme
    Bonjour à tous,

    Je suis très novice avec Delphi. Je me suis créé une base de données avec SQlite3 sur le modèle suivant :

    Form1 avec un TListView.
    Je remplis le TListView avec Form1.FormShow et une requête SQL.
    Quand je double clique sur une ligne, j'ai la Form2 qui s'ouvre avec ListView1DblClick, Form2.ShowModal

    Dans ma Form2 j'ai un petit formulaire avec des TEdit et un bouton Valider.

    Quand je clique sur Valider, les infos du formulaire sont ajoutées à la base de données, et la Form2 se ferme avec Form2.Close

    Mon problème : Le TlistView situé sur la Form1 ne se met pas à jour. La ligne ajoutée à la base SQL dans la Form2 ne s'affiche pas. Il faut que je ferme le programme et que je le relance pour voir la ligne.

    J'ai essayé d'ajouter un bouton refresh sur la Form1 : Button1Click... Form1.Refresh ou Form1.Update ou Form1.Repaint mais ça ne marche pas...

    Quelqu'un peut m'aider? Est-ce que FormShow est la bonne solution? J'aimerai que le TListView se mette à jour automatiquement à la fermeture de la Form2

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    plusieurs pistes :
    Utiliser une DBGrid au lieu d'une ListView.
    Utiliser les LiveBindings pour remplir la liste si vous avez une version XE et plus (un tutoriel sera bientôt mis en ligne)
    Utiliser l'évènement AfterOpen de la TQuery pour mettre votre code de remplissage dans cet évènement. Il suffira alors de faire un simple Close/Open pour pouvoir avoir ce fameux "Rafraichir".

    Tout dépend de :
    1. De la version de Delphi
    2. Du set de composants DB utilisé
    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

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    Merci pour les infos, j'utilise XE8.
    Le composant est TSQLite3Database avec une DLL.

    Je vais essayer avec DBGrid

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Re,

    En FMX ou VCL pour ce qui est de l'interface ?
    En tout cas avec XE8 VCL ou FMX l'approche Livebindings est assez facile (OUI, à mes détracteurs, je vend ma salade )
    Comme je l'écrivais un tutoriel sera bientôt mis sur le site à ce sujet (je suis toutefois prêt à fournir un lien par MP sur l'article non encore fini : relecture technique et surtout orthographique et grammaticale, une avant première en quelque sorte)
    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

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    C'est tout bête.

    1- Tu déplaces d'abord le code correspondant à ta requête SQL de ton FormShow vers une nouvelle procédure, nommée par ex. "PopulateList".
    2- Tu affiches la Form2 avec un code du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if Form2.ShowModal = mrOK then
      // ...
      PopulateList;
    end;
    Et voilà.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    Super merci beaucoup, ca fonctionne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 87
    Dernier message: 06/07/2011, 15h33
  2. Héritage entre Forms
    Par BarBal dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 17h44
  3. [Kylix] SIGSEGV 11 - creation form
    Par pram dans le forum EDI
    Réponses: 1
    Dernier message: 29/08/2002, 15h24
  4. [FORMS] Chemin des icones (intégré FAQ 150 QR)
    Par jerome62 dans le forum Forms
    Réponses: 2
    Dernier message: 30/07/2002, 08h32
  5. Form principale non visible au demarrage!!!!
    Par toufou dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/07/2002, 21h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo