begin process at 2010 02 09 23:28:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Débutant(e)

 > 

hum hum ....


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

hum hum ....

dimanche 8 juillet 2007 à 22:10:41 | hum hum ....

StiriX

Bonjour à tous,

alours voila mon probleme est le suivant:
Dans le cadre d'un projet delphi contenant des fenêtres très répétitives, j'aimerais faire une classe qui stocke toutes les fonctions récursivent qui vont etre exploité dans mon projet.
A savoir j'aimerais faire une classe qui ait uen fonction qui grace à un tableau permette d'afficher ou non une liste de bouton.
Pour cela voici la partie de ma classe qui va pas :

// mes types
type
    T_array_edit = array[0..10] of TButton;

    TOperationsForms = class
    private
       PTab_TEdit : T_array_edit;
       procedure WriteTab_TButton(index : integer; valeur : string);
       function ReadTab_TButton() : T_array_edit;
    published
       property Tab_TButton[index : integer] : T_array_edit read ReadTab_TButton write WriteTab_TButton;
end;

// les fonctions

procedure TOperationsForms.WriteTab_TButton(index : integer; valeur : TButton);
begin
       PTab_TButton[index] := valeur;
end;

function TOperationsForms.ReadTab_TButton : T_array_TButton;
begin
       Result := PTab_TButton;
end;

l'erreur retournée est Published property 'Tab_TButton' cannot be of type ARRAY.
J'avous être un peu dépassé par le code et merci à ceux qui me répondrons :)
lundi 9 juillet 2007 à 00:06:52 | Re : hum hum ....

nethacker

salut,
et bienvenue sur delphifr apparemment c'est ton premier message !
j'ai pas vraiment tres bien compris ta question
"A savoir j'aimerais faire une classe qui ait uen fonction qui grace à un tableau permette d'afficher ou non une liste de bouton."
merci de preciser plus ! et ecrit le sujet au lieu de "hum hum ..."






**************************************************************
nethacker
hacking is not just an art it's a lifestyle
***************************************************************
lundi 9 juillet 2007 à 00:18:20 | Re : hum hum ....

WhiteHippo

Membre Club
Bonsoir,

Tout simplement tu ne peux pas déclarer des tableaux dans la section published d'une classe. Soit tu mets la déclaration dans la partie public, soit tu crées 11 propriétés TButton, c'est au choix.

Cordialement.

"L'imagination est plus importante que le savoir." Albert Einstein
lundi 9 juillet 2007 à 07:59:07 | Re : hum hum ....

fbalien

Membre Club
Bonjour peut etre faudrait il oriete vos recherche sur les listes d'objet (TObjectList) ou les collections
lundi 9 juillet 2007 à 12:01:39 | Re : hum hum ....

f0xi

Membre Club Administrateur CodeS-SourceS




uses stdctrls;

type
  TButtonList = class
  private
    fList : TList;
    procedure SetButton(index : integer; val : TButton);
    function GetButton(index : integer) : TButton;
  public
    constructor Create;
    destructor Destroy; override;
    property Buttons[index : integer] : TButton read GetButton write SetButton;
    function Add(Button : TButton) : integer;
    procedure Delete(index : integer);
    function IndexOf(Button : TButton) : integer;
    function Count : integer;
  end;
 
 
constructor TButtonList.Create;
begin
  fList := TList.Create;
end;

destructor TButtonList.Destroy;
var N : integer;
begin
  for N := fList.Count-1 downto 0 do
    Delete(N);
  fList.Free;
  Inherited Destroy;
end;

procedure TButtonList.SetButton(index : integer; val : TButton);
begin
  TButton(fList.Items[index]).Assign(Val);
end;

function TButtonList.GetButton(index : integer) : TButton;
begin
  result := TButton(fList.Items[index]);
end;

function TButtonList.Add(Button : TButton) : integer;
begin
  result := fList.Add(Button);
end;

procedure TButtonList.Delete(index : integer);
begin
  TButton(fList.Items[index]).Free;
  fList.Delete(index);
end;

function TButtonList.IndexOf(Button : TButton) : integer;
begin
  result := fList.IndexOf(Button);
end;

function TButtonList.Count : integer;
begin
  result := fList.Count;
end;
lundi 9 juillet 2007 à 12:04:20 | Re : hum hum ....

f0xi

Membre Club Administrateur CodeS-SourceS

exemple d'utilisation :



var BTL : TButtonList;

procedure TForm1.FormCreate(Sender: TObject);
begin
  BTL := TButtonList.Create;
  with BTL do
  begin
    Add(TButton.Create(Self));
    Add(TButton.Create(Self));
    Add(TButton.Create(Self));

    Buttons[0].Parent := Self;
    Buttons[0].Left   := 15;
    Buttons[0].Top    := 10;

    Buttons[1].Parent := Self;
    Buttons[1].Left   := 15;
    Buttons[1].Top    := 40;

    Buttons[2].Parent := Self;
    Buttons[2].Left   := 15;
    Buttons[2].Top    := 70;
  end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  BTL.Free;
end;

lundi 9 juillet 2007 à 17:29:04 | Re : hum hum ....

florenth

Membre Club
@f0xi: avec le TObjectList ou le TComponentList, pas besoin de s'occuper de la libération des conposants.... plus pratique donc !
lundi 9 juillet 2007 à 21:42:00 | Re : hum hum ....

StiriX

impecable c'est sque j'attendais !!! Un grand merci pour la rapidité et surtout la qualité des réponses !
merci !!!
mardi 10 juillet 2007 à 19:37:46 | Re : hum hum ....

f0xi

Membre Club Administrateur CodeS-SourceS

je sais flo, tu as deja du voir que j'aimais beaucoup deriver TObjectList pour ce genre de choses :)
c'est juste que la, j'ai fait l'exemple avec TList :)


Cette discussion est classée dans : edit, classe, array, index, tbutton


Répondre à ce message

Sujets en rapport avec ce message

custom_array[custom_index] := custom_value possible ?????? [ par damanix ] Je voudrais savoir si c possible en delphi comme dans a peu pret tous les langages, mais la ça fait 3 heures que je me perd dans les arrays properties Arguments d'une procédure/fonction restreints [ par 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: Edit apres un append dans une boucle [ par epeichette ] Bonjour,Je souhaite effectuer une opération très simple : Mettre à jour les données d'un champ d'un enregistrement.Je lis dans une table Paradox des tableau dynamique TRadioButton erreur [ par retaks666 ] Salut à tous. J'ai un PageControl dans lequel je je créé dynamiquement des TTabSheet avec dedans un GroupBox et des RadiosButton.j'ai donc des variabl exception EAccessViolation???? [ par othland ] salut tout le monde!je débute en DELPHI.j'ai une fenêtre qui contient 2 champs Edit et un bouton, je veux afficher dans le 2emme Edit la longueur de l Programme autonome [ par Valentin_Loupe ] Bonjour, Je suis débutant en delphi et je voudrais savoir comment je peux, le plus simplement possible, faire afficher un même panel en différentes co gauge.progress ?? [ par buguetj ] Bonjour, quelqu'un connaîtrait t-il la fonction permettant de donner la valeur d'une gaugedans une Edit.C'est à dire que si je marque 10 dans un Edit Affectation à partir de mon Combobox. [ par jennybless ] Salut!C'est juste pour une question logique:J'ai un combobox ayant par exemple 5 items (1,2,3,4,5). Et j'ajoute un edit.Que veux-je faire? je suis ent Réindexer une table Paradox [ par sraverdy ] Bonjour ,j'ai des problémes souvent avec mes base de données Paradox à cause des "Index" , j'ai lu sur un forum qu'on pouvez regénérer des Index afin Modification de la taille d'un tableau dynamique pré-déclaré dans une classe [ par olemtiri ] Slt à vous, j'ai un petit problème en ce qui concerne la modification de la taille d'un tableau(pas n'importe quel tableau dynamique mais un tableau d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales