RECHERCHER UNE FENETRE PAR SA CLASSE ET UNE PARTIE DE SON TITRE

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 28 févr. 2008 à 23:37
hfr11 Messages postés 20 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 8 octobre 2019 - 30 avril 2008 à 11:00
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45895-rechercher-une-fenetre-par-sa-classe-et-une-partie-de-son-titre

hfr11 Messages postés 20 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 8 octobre 2019
30 avril 2008 à 11:00
Bonjour, suites à tes propos dans la rubrique "Conclusions" :
Oui, il serait intéressant d'approfondir tout cela... Je suis actuellement confronté à ce genre de problématique dans le développement d'utilitaires orientés "gestion des machines sur le réseau".
J'ai, dans mon application, une petite fenêtre que nous appellerons "tableau de contrôle" où sont créés, dynamiquement, des boutons permettant d'activer, de fermer, d'actualiser, etc..., des fenêtres dynamiques correspondant chacune à une machine différente... Comment faire de manière simple, pour que chaque bouton soit facilement référençable vers sa fenêtre correspondante. Plus compliqué encore si l'on sait qu'à partir de chacune des machines, donc des fenêtres dynamiques, on peut encore lancer des tâches spécifiques créant chacune sa fenêtre de gestion et d'affichage, tout cela en multi-threading pour simplifier encore, bien entendu.
Actuellement je fais tout cela à partir de tableaux dynamiques, des "handle" et des "tag" mais c'est assez compliqué et je pense en avoir encore pour un petit moment avant d'avoir réussi à résoudre tous les difficultés rencontrées.
Au plaisir donc de pouvoir te lire prochainement sur ce thème si tu as de bonnes idées, merci d'avance, cordialement, Patrice
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
4 mars 2008 à 19:21
merci yannfrance
toutes les infos propres a la manipulation de windows se trouvent dans ... l'aide de la sdk de windows (dans le menu "aide->windows SDK" sur mon D7).
mais une partie est déjà encapsulée dans des fonctions delphi ... donc dans l'aide de delphi.

sinon, MSDN reste une valeur sure, mais un peu galère pour y faire des recherches des fois.
yannfrance Messages postés 48 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 1 décembre 2010
4 mars 2008 à 16:23
Merci beaucoup, cette source est une mine d'or.
Beaucoup disaient qu'il était impossible de rechercher un handle avec une seul partie de text de la barre de titre.
Tres content, merci beaucoup...
Ou peut t'on trouver les informations necessaires pour réaliser des sources comme celui-ci ?
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
29 févr. 2008 à 09:50
merci pour le commentaire.

2 remarques :
- "Pour contourner cela, il suffit de lui affecter un titre au moment du démarrage de l'application": c'est fait, mais la recherche par classe me retourne obligatoirement l'instance de l'IDE
- J'ai peut être abusé de self, mais je trouve ca plus confortable quand on utilise des propriétés d'objets dont on ne sait pas si elles appartiennent a self ou si c'est une variable locale

Désolé Japee, je te ferai une version en assembleur prochainement ;)
peut-on savoir dans quelles versions de Delphi on été ajoutées les fonctions?
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
28 févr. 2008 à 23:37
"Si on lance l'exécution depuis Delphi, on retrouve aussi l'instance en design dans l'IDE !"
Pour contourner cela, il suffit de lui affecter un titre au moment du démarrage de l'application, dans le OnCreate de la fiche principale, par exemple. Evidemment, si tu démarres une autre instance de l'exécutable, ça ne va pas résoudre le problème.

NB : pas besoin de mettre des Self un peu partout pour désigner l'instance actuelle de la fiche (Self.Handle, Self.Caption, etc).

J'ai bien aimé l'utilisation de IfThen pas souvent rencontrée sur ce site. Mais je crois me souvenir qu'elle n'est disponible que depuis delphi 6. Pauvre Japee, il va devoir adapter le code... :)