Bonjour,
j'ai besoin de conseils pour obtenir un bon résultat dans mes petits développements d'applications de gestion de données avec Sqlite sous Lazarus en base sous Linux mais transposable sous Windows par recompilation de l'appli sous Windows.
Par habitude ancienne, je crée une fiche principale et au lieu d'utiliser une barre de menu j'utilise un panel avec des boutons dont "le click" ouvre une autre fiche par une commande Fnouvellefiche.show. Quand je quitte cette fiche, je reviens à la fiche principale.
Jusque là pas de problème.
Les problèmes viennent que pour utiliser des données sous Sqlite, j'utilise un data.module qui comprend les sqlite3dataset et les datasource pour chaque table de ma base.
Toujours pas de problème si je définis à la création de mon appli les Filename Name sql etc pour chaque table.
Le problème vient de plusieurs points :
le premier est que le chemin de l'installation de l'appli dépend de l'utilisateur et de son système d'exploitation : chemin du fameux FileName.
Avec de l'aide sur un autre post, j'ai résolu une partie de mon problème en créant à l'éxecution une base et un fichier contenant les informations : chemin de l'application, chemin du Filename, séparateur etc ...
Information que j'utilise après pour déclarer les infos nécessaire à l'ouverture des tables du datamodule.
J'espère être clair.
Le premier problème vient qu'au début de chaque fiche j'ouvre mes tables avec un ordre différent avec un order by ... que je mets dans un événement à l'affichage de la fiche par FormActivate ou FormShow (Windows ne semble pas aimer l'utilisation du FormActivate).
Le FormActive fonctionne bien sous Linux mais pas sous Windows. Cet événement semble rechercher des infos sur le datamodule qui ne sont pas encore disponibles pour la fiche et me renvoie un message d'erreur Sqlite.
Si j'ouvre la fiche simplement et que l'action sur la manipulation de la table se réalise via un bouton ou un click sur la fiche ouverte, pas de problème.
Mes questions pour lancer cette manipulation sur une table dès le début de l'affichage de cette fiche sans avoir le message d'erreur comment faire, j'ai bien essayé l'événement FormPaint mais c'est très lent.
Et pourquoi cette différence du résultat du FormActivate entre Linux et Windows ; comment éviter une réécriture pour chaque système ?
Merci d'avance pour vos précieux conseils et mode opératoire si ma façon d'organiser mes développement n'est pas conseillée.
A+