JeuxOnLineForumsPlusConnectés : 714 (sites) | 1293 (forums)Créer un compte
Forums divers
La Taverne
Les forums JOL > Forums divers > La Taverne > [Prog DELPHI]Un truc un peu dans le style WITH machin DO, mais pas tout à fait pareil RSS
   
Répondre
Partager Outils Rechercher
Avatar de Loekit
Loekit
Alpha & Oméga
 
Avatar de Loekit
 
Question

[Prog DELPHI]Un truc un peu dans le style WITH machin DO, mais pas tout a fait pareil

Bon, je sais, Delphi patati patata...
C'est pas pour moi, c'est pour le bahut .


Donc ce que je cherche à faire (et que donc je n'arrive pas ) c'est à modifier facilement la même propriété sur un paquet d'objets.

image01.picture.loadfromfile('monfichieràlacon.jpg');
...
...
...
image99.picture.loadfromfile('monfichieràlacon.jpg');

sans me retapper à chaque fois le "image" et le ".picture.loadfromfile('monfichieràlacon.jpg');" mais juste en modifiant le numéro. (Bein oui, le fichier reste le même mais j'ai un peu la flemme de le faire 100 fois... surtout qu'il faudra surement que j'en fasse 4 comme ça )


Jsais pas, peut être qu'il existe une procédure qui me permet d'executer une commande contenue dans un string (et donc facilement modifiable) mais je n'en sais rien et si ça existe, je ne connais pas le nom de cette procedure.

Une bonne âme pour m'aider ?
Lien direct vers le message - Vieux
Avatar de ¤ TynriL ¤
¤ TynriL ¤
Bagnard
 
Avatar de ¤ TynriL ¤
 
Je connais pas le Delphi, mais il doit y avoir moyen de faire soit des tableaux d'objets, soit de l'indexage.

En gros, quelque chose comme ça en VB :
Code PHP:
Dim i As Integer
For 0 To 99
    image
(i).Picture.LoadFromFile("tonfichieràlapasdevilainmot.jpg")
Next i 
Encore une fois, aucune idée de la syntaxe Delphi, mais je suis prêt à parié que ça existe.
Lien direct vers le message - Vieux
Avatar de Loekit
Loekit
Alpha & Oméga
 
Avatar de Loekit
 
Bah, c'est le premier truc que j'ai essayé (enfin dans le genre).
Mais ça passe pas (assez logique en fait).

ca m'enerve !!!
Lien direct vers le message - Vieux
Avatar de Oracle
Oracle
Alpha & Oméga
 
Avatar de Oracle
 
Je pense que ca peux se faire avec RaiseEvent, si ça peux aiguiller quelqu'un qui connait... parce que moi,

[edit]Ah non ca existe pas avec Delphi

il faudrait quelquechose du genre :
<doEvent> ((<type instruction>) "blabla" + i + "blabla")
Lien direct vers le message - Vieux
Avatar de Loekit
Loekit
Alpha & Oméga
 
Avatar de Loekit
 
ehlp

Lien direct vers le message - Vieux
Avatar de Foehn
Foehn
Alpha & Oméga
 
Avatar de Foehn
 
Comment avais-tu déclaré ta collection d'objets images ? Parce que ça doit fonctionner sans problème normalement...
Lien direct vers le message - Vieux
Avatar de Loekit
Loekit
Alpha & Oméga
 
Avatar de Loekit
 
Je débute en Delphi et je ne sais pas trop à quoi correspond la déclaration d'une collection d'image.

En gros, je les ai juste créé sur ma form et je ne les ai pas encore nommés.

Il y a une façon particulière de les déclarer ?
Lien direct vers le message - Vieux
Avatar de Le Saint
Le Saint
Alpha & Oméga
 
Avatar de Le Saint
 
La manière de faire proposée par Tynril me semble limpide et être la plus simple à mettre en oeuvre.
Tu devrais pratiquement faire juste un copier/coller
Lien direct vers le message - Vieux
Avatar de Umur Debrique
Umur Debrique
Alpha & Oméga
 
Avatar de Umur Debrique
 
tu fais: (pas en delphi, faudra trouver la syntaxe adéquate).
Delphi reconnait les classes et les objets, donc il y a le pendant

class imageClass
{
var image (déclare l'image en picture)


function load(string k)
{
image.picture.loadfromfile(k);
}

}


puis dans le programme tu déclares un tableau style comme

var imageObject[4096];

for (i=1;i<4096;i++)
{
imageObject[i] = new imageClass();
imageObject[i]->load("nomdufichier.jpg");
}

voila. tu ne peux faire un tableau d'images, mais en enfermant l'image dans un objet, tu peux utiliser un tableau d'objets.
Cependant pour accéder à l'image tu devras taper:
imageObject[i].image.(show par exemple);

Ceci bien entendu ne suit pas la syntaxe du delphi, mais la philosophie objet y est.
En espérant t'avoir aidé.
Lien direct vers le message - Vieux
Avatar de Foehn
Foehn
Alpha & Oméga
 
Avatar de Foehn
 
Citation:
Provient du message de Loekit
Je débute en Delphi et je ne sais pas trop à quoi correspond la déclaration d'une collection d'image.

En gros, je les ai juste créé sur ma form et je ne les ai pas encore nommés.

Il y a une façon particulière de les déclarer ?
Disons que tout dépend ce que tu veux faire, c'est toujours pareil. Sans cas concret, toujours difficile de juger (surtout que ça fait un an que je n'ai pas fait de Delphi et que là, il n'est pas installé sur mon poste).

Il y a plusieurs façon de faire quand tu veux traiter des séries de composants pour leur appliquer le même traitement :

- si tu poses tous tes composants sur une TForm, il y a moyen en fait d'accéder à tous les composants par le biais d'un tableau de composants (regarde du côté de l'aide Delphi, me souviens plus bien du nom de la propriété mais c'est un tableau de TComponent). En parcourant le tableau (une boucle donc), il est ensuite possible de tester le type du composant (dans le cas par exemple d'un traitement systématique sur toutes tes images) ou également d'accéder à son nom (dans le cas où tu ne souhaites traiter que certains de tes composants image)

- une autre façon de faire et de créer dynamiquement tes composants images et de les ajouter ensuite sur ta TForm, mais là, il faut les positionner, les dimensionner etc dans le code, ce qui est, j'en conviens, un peu plus pénible que de passer par l'interface de conception graphique.

Désolé si je ne suis pas très clair Si tu veux qu'on en parle plus en détail, on peut faire ça par MP et je te promets une réponse un peu plus claire pour lundi

[edit pour Tabassor]

Disons qu'en delphi, tu as moyen de faire moins "agricole" qu'en C++ ( ), mais c'est plus ou moins la façon de faire

[/edit]

[edit 2 le retour du fils de la vengeance]

[mode troll ON]

Rhaaaa, puis arrêtez avec vos exemples en VB, ça n'a rien à voir c'est un vrai langage Delphi

[mode troll OFF]

[edit]

[edit 3]

[mode auto-flagellation ON]

Zut, j'avais oublié le FindComponent

[mode auto-flagellation OFF]

[/edit]
Lien direct vers le message - Vieux
Avatar de Lorim
Lorim
Alpha & Oméga
 
Avatar de Lorim
 
j'aurait bien une solution qui serait un peu plus pratique.. met faut jouer un peu avec le system de fichier..

je m'explique :
dèja positionnes tes images dans un meme fichier puis lit se dossier par programme en inscrivant le chemin complet dns un fichier texte...

après il suffit de faire un

Code PHP:
Compteur 0
open 
"ListeImg.txt" for input as #FicList

while eof (FicList) = false
  input line 
#FicList, LinText
  
Compteur Compteur 1
  image
(Compteur).Picture.LoadFromFile(LinText)
wend

Close 
#FicList 
ca peut etre également une solution
Lien direct vers le message - Vieux
Jezabelle
Roi / Reine
 
var i : Integer ;
for i := 1 to 99 do
(FindComponent('Image' + IntToStr(i)) as TImage).Picture.LoadFromFile('c:\Monimageàlacon.jpg') ;

Dans le cas ou tu te sert de composant TImage.

[ Edit pour rajouter : Ceci ne fonctionne pas si tu as Image01
Car lors de la conversion IntToStr tu obtiendras juste 1, et donc Image1 au lieu de Image01.
Juste une petite manipulation supplémentaire dans ce cas là. ]
Lien direct vers le message - Vieux
Avatar de Le Saint
Le Saint
Alpha & Oméga
 
Avatar de Le Saint
 
Citation:
Provient du message de Lorim
j'aurait bien une solution qui serait un peu plus pratique.. met faut jouer un peu avec le system de fichier..

je m'explique :
dèja positionnes tes images dans un meme fichier puis lit se dossier par programme en inscrivant le chemin complet dns un fichier texte...

après il suffit de faire un

Code PHP:
Compteur 0
open 
"ListeImg.txt" for input as #FicList

while eof (FicList) = false
  input line 
#FicList, LinText
  
Compteur Compteur 1
  image
(Compteur).Picture.LoadFromFile(LinText)
wend

Close 
#FicList 
ca peut etre également une solution
Ou pourquoi faire simple quand on peut faire compliqué
Lien direct vers le message - Vieux
Avatar de Loekit
Loekit
Alpha & Oméga
 
Avatar de Loekit
 
Citation:
Provient du message de Le Saint
La manière de faire proposée par Tynril me semble limpide et être la plus simple à mettre en oeuvre.
Tu devrais pratiquement faire juste un copier/coller
La manière décrite par Tynril ne fonctionne pas, simplement.

Je vais essayer ça dès que j'aurais reboot sous windows et je vous dis.
si y a d'autres zidées, je suis preneur.
En tous cas, merci de vous décarcasser pour moi

T'inquiète Jezabelle, j'ai quand même des bases en programmation (mais pas encore en objet malheureusement ), donc je vois ce qui peux ne pas coller et comment le corriger en principe
Lien direct vers le message - Vieux
Avatar de Lorim
Lorim
Alpha & Oméga
 
Avatar de Lorim
 
Citation:
Provient du message de Le Saint
Ou pourquoi faire simple quand on peut faire compliqué
c'est ma devise

mais cette méthode a l'avantage d'etre rapide (car la lecture/écriture d'un fichier texte c'est ultra rapide) et de ne pas prendre ou quasiment pas de puissance machine
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forums divers > La Taverne > [Prog DELPHI]Un truc un peu dans le style WITH machin DO, mais pas tout à fait pareil
   

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés

Outils Rechercher
Rechercher:

Recherche avancée

Thème visuel : Fuseau horaire GMT +1. Il est actuellement 13h34.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite