Accueil > Forum > > > > Arguments d'une procédure/fonction restreints
Arguments d'une procédure/fonction restreints
mardi 26 septembre 2006 à 17:21:40 |
Arguments d'une procédure/fonction restreints

Slander
|
Bonjour à tous et toutes... Me voilà devant un petit problème et je voudrais savoir si il existe une solution pour le résoudre... Code de mon programme: procedure AjouterChoix(Choix: array of string; Index: integer = 0); // Cette ligne ne pose aucun problème... procedure AjouterSousChoix(SousChoix: array of array of TObject; Index: integer = 0); // Ici le compilateur me done une erreur !L'erreur est la suivante: [Error] MonFichier.pas(74): Identifier expected but 'ARRAY' foundEt le curseur est placé juste après le 2ème "array" de la ligne... Est-il possible de passer en argument une array dynamique multiple sans passer par une solution dans le style: TMonArray = array of array of TObject; procedure AjouterSousChoix(SousChoix: TMonArray; Index:
integer = 0); // La ligne qui posait problème avant...Je vous le demande ?? Slander.
|
|
mardi 26 septembre 2006 à 17:40:50 |
Re : Arguments d'une procédure/fonction restreints

elguevel
|
TMonArray = array of array of TObject Mhh Mhhh ...
Pourquoi ne pas utiliser TList ou mieux TObjectList ? /\_/\ ( o.o ) ~ ElGuevel ~ > ^ <
|
|
mardi 26 septembre 2006 à 19:01:41 |
Mon cher ElGuevel...

Slander
|
Tout d'abord merci de cette réponse rapide  Mais là ou je reste perplexe, c'est ou tu me suggère d'utiliser une TObjectList (qui pourrait etre considérée comme une liste d'objets donc une "array of TObject") alors que je souhaite utiliser une array of array of TObject ?! Peut-être faisais-tu allusion à un genre de "array of TObjectList" ? Dans ce cas je te suis très volontier ! Mais je souhiterai pouvoir passer mes argument comme je le ferais pour une simple array à savoir: AjouterChoix(['Choix 1', 'Choix 2', 'Choix 3']); // Fonctionne parfaitement... et AjouterSousChoix([[Objet10, Objet11], [Objet20, Objet21, Objet22], [Objet30]]); // Impossible de savoir vu l'erreur précédente...
J'espère être suffisament clair dans mes propos... Et si vous avez une solution ou un conseil, je suis preneur...
PS: Je rappel que je sais comment faire en passant par des Types mais je voudrai savoir si c'est possible de le faire tel que je le demande, pour une question de simplicité de passage d'arguments... voilà je vous laisse le clavier maintenant...
Slander.
|
|
mardi 26 septembre 2006 à 19:38:57 |
Re : Arguments d'une procédure/fonction restreints
|
mardi 26 septembre 2006 à 19:39:54 |
Re : Arguments d'une procédure/fonction restreints

elguevel
|
C'est vrai je n'arrange pas ton problème.
A mon avis il faut que tu crées un nouveau type : type TonType = array of array of TObject;
Essai voir .....
/\_/\ ( o.o ) ~ ElGuevel ~ > ^ <
|
|
mardi 26 septembre 2006 à 19:42:37 |
Re : Arguments d'une procédure/fonction restreints

elguevel
|
Tient Cirec et moi avons repondu en meme temps ... celà confirme la solution ! :-) /\_/\ ( o.o ) ~ ElGuevel ~ > ^ <
|
|
mardi 26 septembre 2006 à 20:05:08 |
Merci de vos réponses...

Slander
|
Bon à priori, il n'est pas possible de passer en argument une array of array de quelque chose sans passer par un type :(
Donc je vais quand même écrire ma solution ici pour ceux que ça intéresserait...
[dans Interface]
TArrayOfArrayOfObject = array of array of TObject;
procedure AjouterSousChoix(SousChoix: TArrayOfArrayOfObject; Defaut: integer = 0);
[Dans une procedure quelquonque de Implémentation]
procedure Quelquonque; var TempSousChoix: TArrayOfArrayOfObject; begin SetLength(TempSousChoix, 3, 2); TempSousChoix[0, 0] := Label1; TempSousChoix[0, 1] := Edit1; TempSousChoix[1, 0] := Label2; TempSousChoix[1, 1] := Edit2; TempSousChoix[2, 0] := Label3; TempSousChoix[2, 1] := Edit3; AjouterSousChoix(TempSousChoix, 1); end;
Et celà fonctionne très bien puisque je l'utilise... Donc vous me direz certainement: "BenKestéV'nuNousFaireChierAvecTaQuestionDeMerdeAlors ?" et je vous répondrais: "Je voulais savoir si on pouvait appeler "AjouterSousChoix" comme ceci directement:"
AjouterSousChoix([[Label1, Edit1], [Label2, Edit2], [Label3, Edit3]], 1);
Domage c'était plus cours :p
Slander.
|
|
mercredi 27 septembre 2006 à 19:09:09 |
Re : Arguments d'une procédure/fonction restreints

f0xi
|
Réponse acceptée !
type pObject = ^TObject; TObjectPot = array of pObject; TOPMatrix = array of TObjectPot;
function Poter(const A : array of pObject) : TObjectPot; var i : integer; begin setlength(result,length(A)); for i := 0 to high(A) do result[i] := A[i]; end;
function Matrixer(const A : array of TObjectPot) : TOPMatrix; var i : integer; begin setlength(result,length(A)); for i := 0 to high(A) do result[i] := A[i]; end;
begin AjouterChoix( Matrixer([
Poter([@Label1,@Edit1]),
Poter([@Label2,@Edit2]),
Poter([@Label3,@Label4,@Edit3])
]) ); end;
Croc (click me)
|
|
mercredi 27 septembre 2006 à 19:26:56 |
Hehe !

Slander
|
Hello !
Bon c'est effectivement une solution de passer par des pointeurs et des fonctions... Merci de vous être donné la peine de chercher une solution à mon problème !
Bonne prog' @ tous et toutes...
Slander.
|
|
mercredi 27 septembre 2006 à 20:50:40 |
Re : Arguments d'une procédure/fonction restreints

cirec
|
Réponse acceptée !
Avec où sans pointeur ça fonctionne 
type //pObject = ^TObject; TObjectPot = arrayof TObject; TOPMatrix = arrayof TObjectPot;
function Poter(const A : arrayof TObject) : TObjectPot; var i : integer; begin setlength(result,length(A)); for i := 0 to high(A) do result[i] := A[i]; end;
function Matrixer(const A : arrayof TObjectPot) : TOPMatrix; var i : integer; begin setlength(result,length(A)); for i := 0 to high(A) do result[i] := A[i]; end;
procedure TForm1.Button1Click(Sender: TObject); begin
Matrixer([ Poter([SpeedButton1,Edit1]), Poter([SpeedButton2,SpeedButton5]), Poter([SpeedButton8,SpeedButton7,SpeedButton9]) ]) ; end;
@+ Cirec
|
|
Cette discussion est classée dans : problème, array, index, of, procedure
Répondre à ce message
Sujets en rapport avec ce message
Incompatibilité des chaines [ par Kane ]
Bonjour,j'appel une API à qui l'on founit un enregistrement qui possede un parametre array [0.63] of char. Hors je n'arrive pas a faire une affectatio
array multidimentionnel dans une procedure [ par yvessimon ]
Bonjour?Je souhaite passer en paramètre un tableau type: array of array of extended dans une procédure d'un composant.Je pensai utiliser un pointer
Array of procedure, c'est possible ? [ par DeltaFX ]
Yo,bande de coderz,Je me pose un question : j'ai un prog qui utilisele TcyPictureArea de Mauricio, et pour résumer (pour ceux qui connaissent pas), c
Codage des entiers [ par Aurel184 ]
Bonjour,je développe une interface en Delphi permettant de contrôler par réseau ou port série des vidéoprojecteurs professionnels. Quand j'envoi une c
sauvegarder l'index des imprimantes [ par ioda19 ]
Bonjour, J'ai une question à propos des imprimantes et je m'en tire les cheveux.J'ai une application que j'ai fait où l'usager peux configurer
Array dynamique [ par vincentstryckmans ]
Bonjour, Je souhaite passer comme argument d'une procédure une array dynamique multidimensionnelle. Voici le code : procedure rafraichir_treeRespons
Problème de tableau dynamique [ par John Dogget ]
Salut à tous. J'écris une procedure dont le but est de transformer une liste de nom du style "nom1,nom2,...,nomN" en tableau dynamique (tableau de cha
caster une variable d'un tableau de tableau de tableau [ par justevero ]
Bonjour, j'ai du creer 3 types pour attribuer des dimensions differentes a chacunes de mes colonnes de tableau de real type Tableau1= Array of rea
index out of date [ par neosystemsteam ]
slt tout le monde; j'ai une petite application de gestion de ma biblo des cds; un message d'erreur "Index out of date" s'affiche à chaque lancement.
Stocker des array dans un array [ par abidcha ]
Bonjour,J"aimerai savoir si on peux stocker des array dans un array en Delphi. Voici le code que j"ai pense mais ca marche pas:Var matMachPer : arra
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|