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

WinDev Discussion :

Optimisation de la vitesse de l'application (multiples requêtes) [WD14]


Sujet :

WinDev

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 97
    Points : 52
    Points
    52
    Par défaut Optimisation de la vitesse de l'application (multiples requêtes)
    Bonjour,

    Dans le cadre de mon stage, je réalise un gestionnaire de cartes à puces.
    J'ai de nombreux tableaux liés à des requêtes qui m'affichent les données nécessaires pour chaque fonctionnalités de l'application. Mon analyse est en HyperFileSQL C/S.

    Sur mon poste tournant sous Vista, assez puissant, mes requêtes mettaient pas mal de temps à s'exécuter (entre 3 et 5 sec.), principalement une qui affiche un historique de toutes les opérations effectuées sur les cartes (7 ou 8 sec.).
    J'ai installé l'application sur un poste moins puissant, tournant sous XP, et là l'ouverture des fenêtres contenant des tables fichiers liées à des requêtes sont extrêmement longues. Le temps ne se compte plus en secondes mais en minutes, voir plus pour mon historique (après 30 min d'attente, on a finalement arrêté le programme).

    Pour remédier à ces lenteurs, j'ai exécuté mes requêtes (avec HOptimiseRequête puis HExecuteRequête) à l'initialisation de ma page d'accueil.
    Sur mon poste, la différence de temps était notable. En effet, l'exécution de l'initialisation de la fenêtre, qui exécutait pourtant toutes les requêtes un peu longues, ne prenait que 2 ou 3 sec maximum et l'ouverture des fenêtres contenant les tables s'effectuait instantanément.
    Je m'étais donc dit que si je laissais l'application ainsi, il ne faudrait que quelques minutes d'attente à l'ouverture sur un poste moins puissant et qu'ensuite, les fenêtres s'ouvriraient rapidement.

    Le problème, c'est que ce n'est pas le cas.
    J'ai installé ce matin l'application sur le même poste sous XP que précédemment, et là la page d'accueil se bloque. J'ai attendu une bonne vingtaine de minutes avant de rendre les armes.

    Maintenant, j'essaye d'optimiser au maximum les requêtes à exécuter en permettant par exemple à l'utilisateur de choisir à l'ouverture de la fenêtre d'accueil les fonctionnalités du logiciel qu'il désire utiliser. A la validation, seules les requêtes correspondantes aux éléments choisis seront exécutées.

    Y-aurait-il un moyen un peu moins barbare et plus simple d'accélérer l'exécution de mes requêtes (qui sont toutes optimisées au maximum) ?
    Malgré mes recherches, je n'ai rien trouvé de concluant .

    Merci d'avance,

    Aenur.

  2. #2
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 841
    Points
    3 841
    Par défaut
    Salut à toi,

    Citation Envoyé par Aenur56 Voir le message
    ...Sur mon poste tournant sous Vista, assez puissant, mes requêtes mettaient pas mal de temps à s'exécuter (entre 3 et 5 sec.), principalement une qui affiche un historique de toutes les opérations effectuées sur les cartes (7 ou 8 sec.)... (qui sont toutes optimisées au maximum)
    Une petite remarque : des requêtes qui mettent 3-5s sur un poste que tu considères puissant, je ne vois pas où se trouve l'optimisation des requêtes, si la lenteur provient effectivement de celles-ci.

    Ensuite, il faut noter que tous les champs d'une fenêtre sont initialisés avant l'affichage de la fenêtre, cad que si tu utilises 30 plans avec chacun 10 tables fichiers, tu auras 300 tables qui seront initialisées avant de voir le premier pixel de la fenêtre.

    Ensuite, niveau requêtage, il faut te pencher sur les indexes existants et regarder si tes requêtes les utilisent ou s'il faut créer d'autres indexes.

    Aussi :
    - as-tu utilisé le profiler pour pointer l'origine de ces lenteurs ?
    - utilises-tu un serveur HF ?
    - utilises-tu des procédures stockées ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 97
    Points : 52
    Points
    52
    Par défaut
    J'ai indexé le maximum de rubriques que mes requêtes utilisent. D'après l'outil d'optimisation des requêtes, je ne peux pas les optimiser plus qu'elles ne le sont déjà.

    J'ai en effet profilé le projet (sous vista) et c'est d'ailleurs de ça que je tire les temps d'exécution que j'ai cités. Ils proviennent à chaque fois de l'ouverture d'une fenêtre contenant une table fichier liée à une requête.
    D'ailleurs, depuis la page d'accueil, chaque fenêtre que l'on ouvre comporte une seule table fichier donc le temps était long à l'ouverture de chaque fenêtre.
    C'est d'ailleurs pour cela que j'ai voulu exécuter les requêtes au lancement de l'application : l'exécution était plus rapide et une fois la page d'accueil chargée, les fenêtres que j'ouvrait par la suite étaient affichées instantanément puisque les requêtes étaient préalablement exécutées.

    Sinon, j'utilise un serveur HF et je n'ai aucune procédure stockée.

    J'ai aussi pensé à quelque chose... L'ordinateur (vista) sur lequel je travaille au service informatique a un meilleur accès au réseau que celui (xp) sur lequel j'ai installé l'application. Cela peut-il jouer dans la vitesse de l'application ?

  4. #4
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 841
    Points
    3 841
    Par défaut
    L'accès réseau est bien sûr un paramètre à prendre en compte, mais à mesurer, je n'ai pas les connaissances pour savoir comment.

    Je t'ai parlé des procédures stockées en pensant à un accès réseau réduit, qui est mon cas de figure.
    Je bosse à distance sur un VPN pas glop et d'un requêtage simple qui me prenait 10s, je suis passé à 1-2s avec une procédure stockée.

    Il y a des pour et des contre leur utilisation, surtout au niveau maintenance.

    Sur une serveur HF, par contre, je n'ai malheureusement pas d'expérience, mais à mon avis, c'est une voie à explorer.
    Edit : Je bosse sur DB2/400, MSSQL et Postgre d'où mon inexpérience en HF ^^

  5. #5
    Membre chevronné
    Avatar de mogwai162
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 1 860
    Points
    1 860
    Par défaut
    Si tu es en CS, tu dois avoir sur le serveur de quoi analyser tes requêtes et ainsi lister celles qui te prennent le plus de temps.

    Une fois ceci fait, tu dois pouvoir utiliser des procédures ou des requêtes stockées.

    Veille tout de même à ce que tes requêtes te renvoient strictement ce dont tu as besoin et pas plus et en terme de champs et en terme d'enregistrements.
    Patrick Catella

    Je ne réponds pas aux messages privés si ceux ci suivent un sujet. Il est préférable pour tous de poursuivre la discussion dans le sujet d'origine.

    Je suis Concepteur développeur Windev (10 ans) et Windev mobile (4 ans) en recherche d'emploi. J'etudie toute proposition

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    Tu peux aussi utiliser AnalyseurDebut() et AnalyseurFin() pour créer un fichier "de trace", que tu peux ensuite ouvrir dans l'analyseur de performance.
    Tu sauras ainsi ce qui prend du temps.

    Tatayo.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 97
    Points : 52
    Points
    52
    Par défaut
    Merci beaucoup pour vos réponses, ça me donne des pistes

    Je sais bien ce qui me prend du temps : comme je l'ai dit avant, j'ai 4 requêtes qui traînent la patte un peu, dont une plus que les autres.

    Sinon, comment fonctionnent les procédures et requêtes stockées ?

    J'ai cherché mais je n'ai rien trouvé d'assez compréhensible pour moi

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 97
    Points : 52
    Points
    52
    Par défaut
    Bon finalement en cherchant bien j'ai réussi à trouver des infos assez claires et j'ai donc sotcké la requête qui prenait le plus de temps.
    Cependant, je n'ai pas l'impression de gagner en vitesse d'exécution, en tout cas sous vista. Peut être que cela se verra sur un poste moins puissant.

    Il n'y a rien d'autre à faire après avoir stocké la requête ?

  9. #9
    Membre chevronné
    Avatar de mogwai162
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 1 860
    Points
    1 860
    Par défaut
    Ben non pas trop.

    Utilise tu bien la requête stockée ? as tu bien les index adéquats ? Le temps est il identique ou un peu meilleur ?
    Patrick Catella

    Je ne réponds pas aux messages privés si ceux ci suivent un sujet. Il est préférable pour tous de poursuivre la discussion dans le sujet d'origine.

    Je suis Concepteur développeur Windev (10 ans) et Windev mobile (4 ans) en recherche d'emploi. J'etudie toute proposition

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 97
    Points : 52
    Points
    52
    Par défaut
    Et bien, j'ai seulement importée ma requêtes dans les requêtes sotckées.
    J'ai vérifié que je la retrouvais bien dans le centre de contrôle HFSQL et à part ça je n'ai rien modifié à mon code, il contient toujours des HExecuteRequete(LaRequeteStockée) pour l'exécuter.

    Qu'entends-tu par les index adéquats ?

    Sinon pour le temps d'exécution et bien je ne crois pas qu'il ai changé, après il faudrait voir sur le poste moins puissant ça changerait peut être quelque chose... (mais je ne pourrais intervenir sur ce poste qu'en début de semaine prochaine).

  11. #11
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,

    Je ne suis pas assez expérimenté pour te guider précisément.
    Mais j'ai des doutes sur le principe même d'une requête stockée directement utilisée par l'application pour récupérer un jeu de données.

    Citation Envoyé par Aenur56 Voir le message
    Bon finalement en cherchant bien j'ai réussi à trouver des infos assez claires et j'ai donc sotcké la requête qui prenait le plus de temps.
    Cependant, je n'ai pas l'impression de gagner en vitesse d'exécution, en tout cas sous vista. Peut être que cela se verra sur un poste moins puissant.

    Il n'y a rien d'autre à faire après avoir stocké la requête ?
    A mon avis, une requête stockée ne peut être exécutée que par une procédure stockée...

    Maintenant, tout n'est pas perdu.

    As-tu essayé d'utiliser la fonction HExécuteRequête() en spécifiant une connexion vers le serveur HF ?
    Lis bien l'aide en ligne pour voir comment faire.

    A essayer de toute urgence.
    _

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 97
    Points : 52
    Points
    52
    Par défaut
    Je viens de comparer HExecuteRequete(Requete) et HExecuteRequete(Requete,Connexion) mais le résultat ne change pas beaucoup, l'exécution de la requête est toujours compris entre 30 et 50 ms...

    C'est bizarre quand même parce que si j'ouvre la fenêtre contenant la table liée à la requête sans exécuter préalablement celle-ci, la fenêtre met un peu plus de 6 s. à s'ouvrir et si j'exécute la requête avant (entre 30 et 50 ms), la fenêtre s'ouvre instantanément...

    Est-ce normal que le temps d'exécution de la requête avec un HExecuteRequete() soit tellement plus rapide que l'exécution de la requête à l'initialisation de la table qui lui est liée ?

  13. #13
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 125
    Points : 158
    Points
    158
    Par défaut
    Salut,

    Je tiens juste à préciser qu'en toute logique, les procédure stockées apportent des gains de performances significatif uniquement pour la mise en œuvre de traitement complexe (i.e. qui ne se résumes pas à une seule requête) de mise à jour de la base de données

    Si ta procédure stockées se contente de faire un "SELECT" alors le gain sera minime, voire même nul. Dans tous les cas "le temps" passé dans la requête sera le même : temps de sélection de toute les lignes + temps de retour des lignes.

    Dans les explications que tu donnes sur ton programme, tu indiques que tu as transféré l'exécution des requêtes du code d'ouverture des fenêtre dans l'ouverture du projet (ou qcq chose du genre). Ce faisant, tu as simplement déplacé le temps d'attente de chaque fenêtre dans l'initialisation du programme. Tu ne pouvais pas gagner du temps.

    Une piste serait de lancer l'exécution des requêtes en arrière plan au lancement du programme en utilisant un thread séparé.
    Reste en suite, à l'ouverture de chque fenêtre à t"assuré que la requête à bien été exécutée.
    Cette technique te permet juste de gagner en "fluidité" lors de l'utilisation du programme. Pour accélérer les requêtes il faut travailler sur la structure de la base de donnée et sur le code des requêtes

    Bob.

  14. #14
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Citation Envoyé par Aenur56 Voir le message
    Je viens de comparer HExecuteRequete(Requete) et HExecuteRequete(Requete,Connexion) mais le résultat ne change pas beaucoup, l'exécution de la requête est toujours compris entre 30 et 50 ms...
    Ce n'est peut-être pas perceptible sur ton poste de développement, mais ça reste à voir sur le poste XP où la requête mettait plus de 20 minutes à s'exécuter.
    As-tu essayé ?

    Citation Envoyé par Aenur56 Voir le message

    Est-ce normal que le temps d'exécution de la requête avec un HExecuteRequete() soit tellement plus rapide que l'exécution de la requête à l'initialisation de la table qui lui est liée ?
    Si tu fais un HExecuteRequete() avant d'ouvrir la fenêtre, alors la requête est déjà exécutée, et le champ table n'a plus qu'à afficher les données.
    _

  15. #15
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 841
    Points
    3 841
    Par défaut
    Citation Envoyé par Grmmml Voir le message
    ...Si ta procédure stockées se contente de faire un "SELECT" alors le gain sera minime, voire même nul. Dans tous les cas "le temps" passé dans la requête sera le même : temps de sélection de toute les lignes + temps de retour des lignes...
    Je ne suis pas aussi catégorique sur ce point dans le sens où j'ai eu des temps 4-5 fois plus rapides sur des SELECT (environnement : VPN + DB2/400).

  16. #16
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 841
    Points
    3 841
    Par défaut
    Citation Envoyé par Aenur56 Voir le message
    Je viens de comparer HExecuteRequete(Requete) et HExecuteRequete(Requete,Connexion) mais le résultat ne change pas beaucoup, l'exécution de la requête est toujours compris entre 30 et 50 ms...
    Ton premier post mentionne des temps de 3-5 sec et non 30-50 ms...

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 97
    Points : 52
    Points
    52
    Par défaut
    @Bob : Il y a un moyen de savoir si la requête a bien été exécutée à l'ouverture d'une fenêtre ? Et si elle n'a pas été complètement exécutée, reprend-elle l'exécution à zéro à l'ouverture de la fenêtre ou attend-elle que sont exécution soit terminée pour afficher la fenêtre ?

    Je vais essayer avec les threads au lancement du programme. Le temps que l'utilisateur s'authentifie, je pense que les requêtes ne prenant pas trop de temps (mais quand même quelques secondes sur le poste sous XP) auront le temps de s'exécuter. Je vous tiens au courant

    @JBO : Pour le poste sous XP, je ne pourrais voir ça qu'en début de semaine prochaine Je pense que je vais mettre en place toutes les solutions que vous m'avez proposées (avec un système de choix) et les tester une à une pour voir laquelle est la plus rapide.

    @Lo² : Dans le premier post, je mentionne l'ouverture des fenêtres contenant les tables qui prennent ce temps là. Après, je parle du temps d'exécution des requêtes avec HExecuteRequete() (temps que j'ai observé en profilant le projet)

  18. #18
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 125
    Points : 158
    Points
    158
    Par défaut
    Citation Envoyé par Lo² Voir le message
    Je ne suis pas aussi catégorique sur ce point dans le sens où j'ai eu des temps 4-5 fois plus rapides sur des SELECT (environnement : VPN + DB2/400).
    Si on ne parle pas de base de donnée HFCS je suis d'accord. Un vrai SGBDR va préparer un plan d'exécution de la requête contenue dans la proc stockée et va le conserver en mémoire.
    Mais cette opération de préparation peut aussi être effectuée à la demande, ça n'est pas un méchanisme propre au proc stockée

    En windev c'est l'ordre HPrepareRequete qui ne peut pas être utilisé sur des bases HF
    Sur les bases de données HyperFileSQL (HyperFileSQL Classic ou Client/Serveur) ou sur les bases xBase, cette fonction ne peut pas être utilisée.
    bob.

  19. #19
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Citation Envoyé par Aenur56 Voir le message
    @Bob : Il y a un moyen de savoir si la requête a bien été exécutée à l'ouverture d'une fenêtre ? Et si elle n'a pas été complètement exécutée, reprend-elle l'exécution à zéro à l'ouverture de la fenêtre ou attend-elle que sont exécution soit terminée pour afficher la fenêtre ?

    Je vais essayer avec les threads au lancement du programme. Le temps que l'utilisateur s'authentifie, je pense que les requêtes ne prenant pas trop de temps (mais quand même quelques secondes sur le poste sous XP) auront le temps de s'exécuter. Je vous tiens au courant
    Je crois que dans ton cas de figure, l'utilisation d'un thread est une fausse piste.

    En effet, un thread est exécuté avec un contexte HyperFile indépendant.
    Par conséquent, tu ne pourras pas récupérer dans le contexte HyperFile de ta fenêtre, le jeu de données qui provient de l'exécution de la requête dans un thread...
    Ce jeu de données se trouve dans un autre contexte HyperFile, distinct de celui de la fenêtre.
    Ok ?

    Citation Envoyé par Aide en ligne pour ThreadExécute (Fonction)

    Thread et HyperFileSQL

    Lors de l'exécution de la fonction ThreadExécute, les contextes HyperFileSQL sont automatiquement dupliqués : il y a autant de contextes HyperFileSQL que de threads en cours d'exécution. La totalité du contexte HyperFileSQL est recopiée (filtre, condition de recherche, ...). Dans chaque thread, le contexte HyperFileSQL évolue indépendamment.

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 97
    Points : 52
    Points
    52
    Par défaut
    En effet, je viens de tester l'utilisation d'un thread qui exécute les requêtes mais l'ouverture de mes fenêtres reste toujours aussi longue

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [XL-2007] Optimisation de la vitesse de mon code
    Par dodo69 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/02/2011, 13h56
  2. Vitesse de l'application
    Par toony94 dans le forum C#
    Réponses: 4
    Dernier message: 07/12/2009, 09h29
  3. Afficher des bitmaps à haute vitesse dans une application fenêtrée
    Par acanicio dans le forum Développement 2D, 3D et Jeux
    Réponses: 9
    Dernier message: 27/10/2006, 22h35
  4. Afficher des bitmaps à haute vitesse dans une application
    Par acanicio dans le forum API graphiques
    Réponses: 1
    Dernier message: 27/10/2006, 10h03
  5. Comment intégrer des applications multiples ?
    Par Vulcanos dans le forum Composants VCL
    Réponses: 8
    Dernier message: 22/09/2005, 23h08

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