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

Lazarus Pascal Discussion :

[2.2.4] Besoin d'explication et d'aide à propos du TComponent et de sa destruction


Sujet :

Lazarus Pascal

  1. #41
    Membre confirmé

    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 170
    Points : 455
    Points
    455
    Par défaut
    Salut !

    Je teste cette histoire de bouton et je reviens. Toutefois, j'ai déjà remarqué que la taille de certains composants n'est pas forcément celle qu'on veut, parce que la taille de la police influe. On ne s'en rend pas compte quand on utilise la palette, le composant est automatiquement ajusté; mais si on le crée sois-même alors il peut y avoir des surprises. Bon, j'y vais.

    bb84000

  2. #42
    Membre confirmé

    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 170
    Points : 455
    Points
    455
    Par défaut
    Bonjour,

    Citation Envoyé par Jipété Voir le message
    Et je retourne à ma listbox : comment faire afficher une form dans un listitem ?
    Très simple, on, ne peut pas. On peut juste dessiner et écrire lors de l’évènement Ondrawitem. Les actions sur la cellule sélectionnée peuvent se faire avec un menu popup relatif à la cellule et/ou dans un panel affichant le contenu de la cellule sélectionnée avec des boutons ad-hoc. Voir par exemple mon appli de gestion de contacts sur github (même identité qu'ici, tout est libre), je ne dessine pas les items de la listbox mais pour le reste c'est pareil.

    En fait chez moi, la listbox de la forme principale n'est que l'avatar d'une Tlist d'enregistrements qui se trouve dans une unité séparée. L'avantage est que la Tlist gère toute seule l'ajout, la suppression, le tri des enregistrements, elle sait aussi se sauvegarder sur disque (chez moi c'est xml) et se charger à partir du disque.

    C'est cette liste qui est gérée dans la forme principale. A chaque enregistrement de la liste, correspond l'item de même rang de la listbox. Dans l’évènement ondrawitem, on utilise les données de l'enregistrement de même rang pour le dessiner.
    Si on ajoute ou supprime un enregistrement, il faut simplement recréer la listbox. Si c'est juste une modification qui ne change pas le rang, un invalidate suffit.

    bb84000

  3. #43
    Membre confirmé

    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 170
    Points : 455
    Points
    455
    Par défaut
    Re...

    J'ai trouvé un truc intéressant dans le fil
    https://forum.lazarus.freepascal.org...?topic=53501.0
    qui s'appelle scrolldemo.zip et qui empile des panels avec bouton, dessin et label dans une scrollbox.

    On peut mettre ce qu'on veut dans les panels, d'autres panels, d'autres boutons, etc.

    Et pour ne pas s'embeter avec les modifs, ajouts et autres suppression, on adosse çà à une liste de records qui contient toutes les infos à mettre dans chaque panel.
    Lors de la création, on peuple le panel i en cours avec les données de l'enregistrement i de la liste de records. Quand on change quelque chose dans la liste, il suffit d'effacer le scrollbox et de recréer les panels.

    bb84000

  4. #44
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 719
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 719
    Points : 15 105
    Points
    15 105
    Par défaut
    Yep !
    Citation Envoyé par bb84000 Voir le message
    J'ai trouvé un truc intéressant dans le fil
    https://forum.lazarus.freepascal.org...?topic=53501.0
    qui s'appelle scrolldemo.zip et qui empile des panels avec bouton, dessin et label dans une scrollbox.
    Bravo et bien trouvé/bien joué !

    Cette démo est parfaitement bien écrite (si vous avez une erreur à la 1re compil, il faut changer de widget graphique, j'ai dû passer en gtk3 d'abord [moche] puis suis descendu en gtk2, mieux, alors qu'au départ il voulait du qt qui n'est pas activé chez moi), plus qu'à l'étudier attentivement mais là je n'ai pas le temps.

    En tout cas, grand merci car c'est exactement ce qu'il me fallait.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #45
    Membre confirmé

    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 170
    Points : 455
    Points
    455
    Par défaut
    Bonjour,

    Citation Envoyé par Jipété Voir le message
    c'est exactement ce qu'il me fallait.
    Bien. Il va te rester à vérifier le bon fonctionnement de la destruction des panneaux lors d'une modification, ce qui était le sujet initial de ce fil ! Surtout si tu choisis de tout reconstruire à chaque modif (ça peut paraître un peu lourdingue, mais en fait, c'est comme ça que fonctionnent beaucoup de systèmes, même si on ne s'en aperçoit pas).

    Un avantage dont je n'ai pas parlé jusqu'ici c'est qu'en séparant l'affichage des panneaux et la gestion de la liste des morceaux, tu peux avoir plusieurs playlist en mémoire, et choisir celle que tu veux afficher. Ou utiliser des onglets et avoir plusieurs listes chargées... Et évidemment sauvegarder sur disque et recharger une playlist à partir du disque.

    bb84000

Discussions similaires

  1. besoin d'explication sur le c++
    Par poporiding dans le forum MFC
    Réponses: 13
    Dernier message: 17/12/2005, 18h01
  2. Besoin d'explications sur un bout de code
    Par zizitop dans le forum C
    Réponses: 7
    Dernier message: 26/04/2005, 14h51
  3. [C#] J'aurais besoin d'explication
    Par Roach- dans le forum Windows Forms
    Réponses: 18
    Dernier message: 10/03/2005, 16h00
  4. Besoin d'explications sur float et l'élasticité !
    Par KneXtasY dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 14/01/2005, 15h15
  5. [Foreign Key] Besoin d'explication.
    Par Andry dans le forum Débuter
    Réponses: 4
    Dernier message: 28/05/2003, 11h34

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