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

Codes sources à télécharger Delphi Discussion :

Jeu de taquin (Sidney 10.4.2)


Sujet :

Codes sources à télécharger Delphi

  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 812
    Points : 34 626
    Points
    34 626
    Billets dans le blog
    54
    Par défaut Jeu de taquin (Sidney 10.4.2)
    Bonjour,

    Je vous propose un nouvel élément à utiliser : Jeu de taquin (Sidney 10.4.2)

    Coder un jeu de Taquin avec Sidney en utilisant le nouveau composant TControlList

    Qu'en pensez-vous ?
    Fichiers attachés Fichiers attachés
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  2. #2
    Membre émérite
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    décembre 2006
    Messages
    1 850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2006
    Messages : 1 850
    Points : 2 681
    Points
    2 681
    Par défaut
    Merci Serge,
    je comprends que l'objectif est de tester le nouveau composant TControlList, mais malheureusement il n'existe pas dans mon D10.3.3 CE !
    (Ainsi que TVirtualImage et TNumberBox).

    Penses tu que l'on peut faire quelque chose de similaire avec D10.3.3 ?

    A+
    Charly

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 812
    Points : 34 626
    Points
    34 626
    Billets dans le blog
    54
    Par défaut
    Bonjour
    Citation Envoyé par Charly910 Voir le message
    Penses-tu que l'on peut faire quelque chose de similaire avec D10.3.3 ?
    Oui, mais pas de la même manière.
    Il faudrait que j'y réfléchisse. De but en blanc, un scrollbox et des frames pour la partie dessin, (voir mon billet documentaire) pour la partie "dessin", pour la partie déplacement, ce serait le helper qui serait à modifier.

    [EDIT]
    Pour ce qui est de VirtualImage c'était une façon de stocker plusieurs images, mais elles pourraient très bien être en ressource.
    Décidément j'ai écrit n'importe quoi
    VirtualImage ce n'est pas ce composant qui stocke les images mais le TImageCollection.
    Donc, il faut que je revoie mes idées. J'avais commencer un truc avec les ressources, qui s'avère inutile, d'autant plus que c'est galère à découper !
    [/EDIT]

    Quant au numberbox, je l'ai utilisé car, il est nettement mieux (plus réactif au LiveBinding) que SpinEdit.
    Donc, AMHA, c'est jouable, seule la partie helper (pour connaitre les indexs) est un peu plus problématique, et en faisant en sorte de faire comme le TcontrolList le redessin de tout le contenu à chaque fois. Challenge intéressant
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  4. #4
    Membre chevronné Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - développeur Delphi, PHP et JS
    Inscrit en
    juin 2013
    Messages
    959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2013
    Messages : 959
    Points : 2 044
    Points
    2 044
    Par défaut
    Faire un taquin avec le TControlList est-il une porte ouverte pour te faire taquiner jeudi ?

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 812
    Points : 34 626
    Points
    34 626
    Billets dans le blog
    54
    Par défaut
    Bon d'accord, je vais tâcher de trouver ou copier une image de poisson pour rester dans le thème
    Taquine (les sources sont déjà dans le dépôt Git)

    Si le temps ne manque pas j'ai prévu de le présenter aussi (avec les dames et l'échiquier même technique) mais le questionnement de Charly m'intéresse aussi, histoire de faire une comparaison.
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 812
    Points : 34 626
    Points
    34 626
    Billets dans le blog
    54
    Par défaut
    Bonjour,

    Pour répondre @charly910
    - le TControList est remplaçable par un TScrollBox
    - au sujet du TVirtualImage, le remplacer par un TImage et pour le chargement utiliser le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Image1.Picture.Bitmap:=ImagesPleines.GetBitmap(SpinEdit1.Value, 400, 400);
    - Le TNumberEdit est a remplacer , tout simplement, par un TSpinEdit
    - Le Helper sera remplacé par un TFrame

    Et voilà le résultat à tester sur des versions supportant TImageCollection. conc 10.3
    Source dégrossi mais non optimum, à vérifier qu'il n'y manque rien et qu'une version Community le supporte , à toi (ou d'autres) de tester et me dire s'il manque des choses
    Fichiers attachés Fichiers attachés
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  7. #7
    Membre émérite
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    décembre 2006
    Messages
    1 850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2006
    Messages : 1 850
    Points : 2 681
    Points
    2 681
    Par défaut
    Merci Serge
    ça compile bien sous D10.3.3 CE et ça fonctionne.

    Petit Pb avec 9 et 16 pièces : le damier ne s'affiche pas bien (il manque des morceaux ) et la souris ne fonctionne pas. Je vais essayer de regarder pourquoi

    A+
    Charly

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 812
    Points : 34 626
    Points
    34 626
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par Charly910 Voir le message
    ça compile bien sous D10.3.3 CE et ça fonctionne.
    Super

    Petit Pb avec 9 et 16 pièces : le damier ne s'affiche pas bien (il manque des morceaux ) et la souris ne fonctionne pas. Je vais essayer de regarder pourquoi
    J'ai fait ça en dernière minute avant mon premier coup de téléphone utilisateur donc pas réellement vérifié.
    Fichiers attachés Fichiers attachés
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  9. #9
    Membre émérite
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    décembre 2006
    Messages
    1 850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2006
    Messages : 1 850
    Points : 2 681
    Points
    2 681
    Par défaut
    Bravo Serge, ça marche impeccable
    Par contre il faut que je m'entraine au taquin car je ne suis pas très fort !
    A+
    Charly

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 812
    Points : 34 626
    Points
    34 626
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par Charly910 Voir le message
    Par contre il faut que je m'entraine au taquin car je ne suis pas très fort !
    Je n'arrive qu'à résoudre StoneEdge en 4*4 et encore pas à chaque fois
    Ce serait sympa de pouvoir faire jouer un robot avec le moins de coups possibles (hors de ma portée ça).
    Compter les coups, ça c'est faisable mais utile ?

    J'ai profité de quelques instants de fin de journée pour tester les fuites mémoires, la version 10.3.3 en fait, à cause de TImageCollection.GetImage (RSP-23950)
    La version ci-dessous corrige ce problème en utilisant TImageCollection.GetSource
    Pour les détenteurs de versions plus anciennes (TImageCollection inexistant) je vous propose même une version 10.2 testée, et à tester (D2009 et plus à cause de l'unité generic.collections)
    Fichiers attachés Fichiers attachés
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  11. #11
    Membre émérite
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    décembre 2006
    Messages
    1 850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2006
    Messages : 1 850
    Points : 2 681
    Points
    2 681
    Par défaut
    Enregistrer une partie dans un fichier permettrait de la rejouer automatiquement, d'échanger des parties entre joueurs et de stocker les meilleurs scores.

    après le robot intelligent, là ça me semble plus difficile !

    A+
    Charly

  12. #12
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 812
    Points : 34 626
    Points
    34 626
    Billets dans le blog
    54
    Par défaut
    Pour ceux que cela intéresse, avec un peu d'huile de coude, j'ai réussi à downgrader jusqu'à la version D2009 (en théorie) D2010

    test D2010
    Nom : CaptureD2010.PNG
Affichages : 140
Taille : 246,8 Ko


    test XE4
    Nom : Capture.PNG
Affichages : 126
Taille : 272,5 Ko

    je fournirai bientôt le zip taquin_10_2 modifié.

    D7 me resiste car depuis l'apparition de l'unité generic.collections, j'ai perdu l'habitude d'utiliser autre chose mais je ne désespére pas d'y arriver
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  13. #13
    Membre éprouvé
    Avatar de Cirec
    Profil pro
    Inscrit en
    octobre 2010
    Messages
    432
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2010
    Messages : 432
    Points : 978
    Points
    978
    Par défaut
    Bonjour,

    après plusieurs mois de pause forcée, je vois le code du jeu de taquin et me dit que c'est une bonne occasion
    de m'y remettre

    La conversion pour D7 c'est faite sans soucis le hic est sur l'affichage avec une erreur abstraite qui se produisait qu'avec D7 !!
    dans la procedure TMainForm.MoveMorceau(morceau: word);
    à l'appel de DrawScrollBox // à la ligne 255
    De longues séances de debug n'ont pas aidées à le débusquer !!!
    J'ai "dégraissé" le code pour trouver le problème ... j'ai supprimé les TFrames pensant, à tord, que ça venait de là.

    si vous souhaitez voir ou tenter votre chance, sous D7, il suffit de mettre la ligne 254 en commentaire
    et d'activer la ligne 255.

    Le problème se contourne facilement en déclenchant l'appel à DrawScrollBox
    à l'extérieur de la procedure TMainForm.MoveMorceau(morceau: word);
    avec un Timer à 40 ms qui ne gêne en rien le joueur.

    J'ai également ajouté un mélange des pièces qui assure
    la faisabilité du puzzle .
    Les images png sont directement chargées dans un Bitmap grâce à une version modifié de l'unité Execute.GDIPBitmap.pas
    de Paul Toth que je fournis dans le zip

    Pour voir comment j'ai converti les types génériques en langage D7 et autres petites choses
    il faudra regarder le code
    Taquin_7_0.zip
    PS: le code compile de D7 à D10.3
    et il est même possible de le compiler avec D6

    Cordialement,

    @+

  14. #14
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 812
    Points : 34 626
    Points
    34 626
    Billets dans le blog
    54
    Par défaut
    Super, ça m'évite de le faire.

    J'avais bien pensé utiliser GDI mais ne le maitrisant pas, j'avais laisser de côté, l'objectif n'étant pas d'écrire un programme mais de "downgrader" le TControlList.
    Je vais pouvoir me consacrer à la version FMX (bien avancée) avant que Patrick ne me coupe l'herbe sous le pied dimanche lors de son codage de jeux en direct.
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  15. #15
    Membre chevronné Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - développeur Delphi, PHP et JS
    Inscrit en
    juin 2013
    Messages
    959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2013
    Messages : 959
    Points : 2 044
    Points
    2 044
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Je vais pouvoir me consacrer à la version FMX (bien avancée) avant que Patrick ne me coupe l'herbe sous le pied dimanche lors de son codage de jeux en direct.
    Parti comme c'est, j'aurai de la chance si je tiens plus d'une demi-heure de direct mais on verra bien demain. Intervention d'un ITI Free lundi pour comprendre&résoudre mes pertes de synchro fibre. J'ai hâte.

    C'est fou ce qu'on est dépendants d'Internet de nos jours et je me demande dans quelle mesure Windows (ou VM Ware) ne l'est pas aussi vues les lenteurs omniprésentes (voir blocages) à chaque déconnexion.

  16. #16
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 812
    Points : 34 626
    Points
    34 626
    Billets dans le blog
    54
    Par défaut
    J'ai de la chance avec ma connexion par tamtam alors !
    Deux pots de yaourts et un fil, il n'y a que ça de vrai, si tu mets une goutte d'eau sur la fibre ça fait loupé
    Plus sérieusement, la version FMX sera bientôt dans mon dépôt Git malgré une fuite de mémoire du au chargement d'image qui me casse les pieds
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  17. #17
    Membre averti Avatar de blonde
    Femme Profil pro
    Développeur Embarcadero mutliplateforme
    Inscrit en
    septembre 2003
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Embarcadero mutliplateforme

    Informations forums :
    Inscription : septembre 2003
    Messages : 209
    Points : 350
    Points
    350
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    J'ai de la chance avec ma connexion par tamtam alors !
    Deux pots de yaourts et un fil, il n'y a que ça de vrai, si tu mets une goutte d'eau sur la fibre ça fait loupé
    Wahou, quand j'ai lu "tamtam", j'ai tout de suite pensé au beeper grand public; l'ancêtre du sms . Enfin.. vous voyez de quoi je veux parler ?

  18. #18
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 812
    Points : 34 626
    Points
    34 626
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par blonde Voir le message
    Wahou, quand j'ai lu "tamtam", j'ai tout de suite pensé au beeper grand public
    Ben non en fait j'ai un arbre creux à côté de mon bureau et deux baguettes de bois sur mon port USB
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  19. #19
    Membre chevronné Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - développeur Delphi, PHP et JS
    Inscrit en
    juin 2013
    Messages
    959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2013
    Messages : 959
    Points : 2 044
    Points
    2 044
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Plus sérieusement, la version FMX sera bientôt dans mon dépôt Git malgré une fuite de mémoire du au chargement d'image qui me casse les pieds
    peut-être as-tu reçu ma suggestion de correction d'hier ? fonctionne-t-elle ?

    H-1 le jeu en lui-même est globalement pas très compliqué à mettre en place, je vais plus jouer sur les décors et le multiplateforme

  20. #20
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 812
    Points : 34 626
    Points
    34 626
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par pprem Voir le message
    peut-être as-tu reçu ma suggestion de correction d'hier ? fonctionne-t-elle ?
    Oui, j'ai reçu et non elle ne fonctionnait pas.

    Je viens juste de résoudre le problème, plus de fuite mémoire dans ce bout de code test

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    procedure TForm18.Button1Click(Sender: TObject);
    const
      SCALE = 1;
    var
      pBitmap : TBitmap;
      sbitmap : TCustomBitmapItem;
      vSource: TCustomSourceItem;
      vBitmapItem: TCustomBitmapItem;
      vDest: TCustomDestinationItem;
      vLayer: TLayer;
    begin
      Images.ClearCache;
      Images.BeginUpdate;
      if Images.Destination.Count > 0 then
        Images.Destination.Clear;
      vSource := ImageList1.Source.Items[SCALE];
      sbitmap := vSource.MultiResBitmap.ItemByScale(SCALE, True, True);
      pbitmap:=TBitmap.Create(100,100);
      try
        for var l := 0 to 3 do
          for var c := 0 to 3 do
          begin
            var
              r: TRect := TRect.Create(100*c,100* l,
                                       100*c+100,100*l+100);
              pBitmap.CopyFromBitmap(sbitmap.Bitmap, r, 0, 0);
     
             // add source bitmap
              vSource := Images.Source.Add;
              vSource.MultiResBitmap.TransparentColor := TColorRec.Fuchsia;
              vSource.MultiResBitmap.SizeKind := TSizeKind.Source;
              vSource.MultiResBitmap.Width := Round(pBitmap.Width / SCALE);
              vSource.MultiResBitmap.Height := Round(pBitmap.Height / SCALE);
              vBitmapItem := vSource.MultiResBitmap.ItemByScale(SCALE, True, True);
              if vBitmapItem = nil then
              begin
                vBitmapItem := vSource.MultiResBitmap.Add;
                vBitmapItem.SCALE := SCALE;
              end;
              vBitmapItem.Bitmap.Assign(pBitmap);
     
              vDest := Images.Destination.Add;
              vLayer := vDest.Layers.Add;
              vLayer.SourceRect.Rect := TRectF.Create(TPoint.Zero,
                vSource.MultiResBitmap.Width, vSource.MultiResBitmap.Height);
              vLayer.Name := vSource.Name;
          end;
      finally
        pBitmap.Free;
      end;
      Images.EndUpdate;
    end;
    Il faut juste que je mette ça dans le code (j'en ai profité pour intégrer le helper que j'utilisai avant pour ajouter un bitmap à une liste)
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

Discussions similaires

  1. Question sur le jeu du Taquin
    Par DevloNewb' dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 23/02/2010, 10h55
  2. Jeu de taquin /Puzzle 8
    Par saloua2200 dans le forum Défis C
    Réponses: 0
    Dernier message: 12/11/2009, 16h01
  3. [C] Jeu du Taquin
    Par Lucas42 dans le forum C
    Réponses: 3
    Dernier message: 02/11/2006, 18h46

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