Comment faire pour afficher un ecran de progression de l'ouverture d'une base
de données FIREBIRD en Delphi7
Comment faire pour afficher un ecran de progression de l'ouverture d'une base
de données FIREBIRD en Delphi7
Comme c'est un traitement bloquant, à la base je dirais que ne peux pas y faire grand chose !
La solution étant d'avoir un Thread dans lequel tu lance le Connection.Open()
La connection est si longue que cela ?
C'est étrange !
Ce n'est pas plutôt une Query qui prend du temps ?
Idem, à par un thread (ce qui peut-être complexe à gérer, perso, je l'ai fait pour MySQL)
Tu peux très bien mettre une fenêtre de patience et un curseur sablier, c'est déjà ça !
Rares sont les library qui indique la progression d'un traitement.
Perso, je ne l'ai vu que pour des Script multi-requêtes ...
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Bonjour
J'ai aussi quelques procedures longues utilisant des requetes.
comme l'indique ShaiLeTroll, je les ai "tranferees" dant un thread et j'utilise la procedure synchronise du thread pour indiquer le niveau de progression. Attention cela suppose de faire un "count" du nombre d'operation a faire, ce qui peut etre contre-productif.
Dans ce cas, le "synchronise" permet juste d'indiquer que le thread est actif
par contre, je ne trouve pas que la simple connexion a la base prenne un temps justifiant un message d'attente !
pourquoi ton temps de connexion est il si long ?
olivier
Merci d'ajouter un sur les tags qui vous ont aidé
Je crois que ASAFAW veut juste faire voir à ses utilisateur une gauge (ou une progressBar) défiler lors de la connexion à la base.
Il est évident que la connexion ne prend pas assez de temps pour "mériter" une gauge.
Moi je le fais dans un splash form, en controlant la gauge (ou progressbar) par l'instruction "sleep".
Je mets la MaxValue à 5 et je fais le StepIt chaque 300ms. Soit par boucle ou par instructions successives, à la fin je remplis la gauge et je ferme le splash.
Tout ça en 1.5 secondes.
Voilà !
bonjour
qu'est-ce que c'est : splash form
cordialement
André
Un splash est la première fenêtre qui s'ouvre pour annoncer le programme !
Tu trouveras un splash dans les demos de Delphi.
Celui de Delphi est la 1ère fenêtre qui t'annonce Delphi 7 avant l'ouverture de l'IDE.
Bonne journée.
@akli_agha
En gros, tu as 1,5 secondes d'inactivités avec sleep ?
Tu as derrière un véritable traitement asynchrone, où c'est juste pour faire joli ?
@alheuredudejeuner
Tu abuses !
Comment réaliser un splash screen ?
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Le temps d'affichage du splash et un brun d'esthétique !
Sinon aucun traitement. Avant même la connexion à la base.
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