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 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|