Problème de déclaration de mon tableau

Résolu
cs_emeraudes
Messages postés
63
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
8 avril 2005
- 17 févr. 2005 à 14:27
cs_emeraudes
Messages postés
63
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
8 avril 2005
- 18 févr. 2005 à 13:12
bonjour,



j'ai un petit problème avec ma déclaration de mon tableau



code :

type

// tableau de structure

Ttabprod = record

desi, refint: string;

prix, qte: Integer;

end;



var tabprod : array [1..200] of Ttabprod;



je ne sais pas ou le mettre car gen est besoin pour plusieur bouton et
lorsque je le met apres implementation ca ne marche pas. cela ne
fonction que si je le déclare dans la procédure meme or je voudrai
l'utiliser dans des procédures différentes.

merci de votre aide.

>>>> "Le génie n'existe pas sans un grain de folie"

13 réponses

cs_emeraudes
Messages postés
63
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
8 avril 2005

18 févr. 2005 à 11:55
merci pour ton code ca marche

g mi ds mon code la partie implémentation mais g oublier de le mettre
dans mon message car g pris des bout de code et g pas fait attention ke
je n'avais pas pris l'implementation.



pour les déclaration en local, je les fait car ds le code juste au
dessus ca y etait et donc g essayai avec mais c vrai ke si je les
redéclare ca ne sert a rien . et j'avais bien cliker sur le button1
avan le button2.

en tous cas merci ca marche.

ct juste un problème d'emplacement.

merci de ton aide



bonne programmation et pt'etre @bientot

(g d'autre problème en delphi, j'ai poster un mess sur delphi et base
de donnée sur "pb de TDBLookupComboBox help pleasee" si tu sais y
répondre merci )




>>>> "Le génie n'existe pas sans un grain de folie"
3
jinh68
Messages postés
215
Date d'inscription
mardi 29 juillet 2003
Statut
Membre
Dernière intervention
1 septembre 2006

17 févr. 2005 à 14:43
Dans ce cas c'est une variable globale donc tu le déclares dans la partie interface.

j!nH
0
jinh68
Messages postés
215
Date d'inscription
mardi 29 juillet 2003
Statut
Membre
Dernière intervention
1 septembre 2006

17 févr. 2005 à 14:46
Par contre fais gaffe ds ton record, il serait plus judicieux de définir la longueur de ton string.

j!nH
0
cs_emeraudes
Messages postés
63
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
8 avril 2005

17 févr. 2005 à 15:19
c'est a dire ke je le déclare apres implementation? car g aussi essayai et ca marche pa

>>>> "Le génie n'existe pas sans un grain de folie"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jinh68
Messages postés
215
Date d'inscription
mardi 29 juillet 2003
Statut
Membre
Dernière intervention
1 septembre 2006

17 févr. 2005 à 15:27
Non avant la partie implementation , tu définis ton type et ta variable globale.

j!nH
0
cs_emeraudes
Messages postés
63
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
8 avril 2005

17 févr. 2005 à 15:33
je lai fait également la mai la c pire il reconnai pa



code : var tabprod : array [1..200] of Ttabprod;



je v rééssayai mai normalemen g déja essayai et ca marcher pa. g essayai de le mettre un peu de partout mais nul part ca marcher


>>>> "Le génie n'existe pas sans un grain de folie"
0
jinh68
Messages postés
215
Date d'inscription
mardi 29 juillet 2003
Statut
Membre
Dernière intervention
1 septembre 2006

17 févr. 2005 à 20:10
Poste nous ton code stp... :)

j!nH
0
japee
Messages postés
1727
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
6 novembre 2021
8
18 févr. 2005 à 02:12
Placé comme ceci sur mon Form1, ça ne pose pas de problèmes :



unit Unit1;



interface



uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls;



type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Déclarations privées }

public

{ Déclarations publiques }

end;



Ttabprod = record

desi, refint: string[30]; // <- définir length !

prix, qte: Integer;

end;



var

Form1: TForm1;

var tabprod : array [1..200] of Ttabprod;



implementation



{$R *.DFM}



procedure TForm1.Button1Click(Sender: TObject);

var tabprod : array [1..200] of Ttabprod;

begin

with tabprod[1] do

desi := 'Hello';

end;



end.



Jinh68 a raison, fais gaffe à la déclaration de tes strings dans ta
structure, t'as ach'ment intérêt à en définir la longueur, surtout si
mets ça dans un tableau !



Bonne prog'
0
cs_emeraudes
Messages postés
63
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
8 avril 2005

18 févr. 2005 à 09:35
ok merci je vais essayai ce code et je vous direz si ca marche

merci de votre aide


>>>> "Le génie n'existe pas sans un grain de folie"
0
cs_emeraudes
Messages postés
63
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
8 avril 2005

18 févr. 2005 à 09:52
unit saisieCommande;



interface



uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls, DBCtrls, DB, IBCustomDataSet, IBQuery,

Buttons, ExtCtrls, IBDatabase;



type

Tfm_saisieCde = class(TForm)

Label5: TLabel;

Label1: TLabel;

tb_cde: TEdit;

Label2: TLabel;

date_cde: TDateTimePicker;

Label3: TLabel;

tb_contact: TEdit;

bt_valide: TButton;

cbnom: TDBLookupComboBox;

Label4: TLabel;

queryfrs: TIBQuery;

Label6: TLabel;

memoadr: TMemo;

Label8: TLabel;

date_livraison: TDateTimePicker;

cbprod: TDBLookupComboBox;

Label7: TLabel;

Label9: TLabel;

tb_qte: TEdit;

Image6: TImage;

Image1: TImage;

Label10: TLabel;

bt_ok: TButton;

dsprodfrs: TIBDataSet;

dsoprodfrs: TDataSource;

ibtprodfrs: TIBTransaction;

Button1: TButton;

Button2: TButton;

procedure bt_valideClick(Sender: TObject);

procedure FormPaint(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure bt_okClick(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure cbprodClick(Sender: TObject);

procedure cbnomClick(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Déclarations privées }

public

{ Déclarations publiques }

end;



Ttabprod = record

desi, refint: string[100]; // <- définir length !

prix, qte: Integer;

end;



var

fm_saisieCde: Tfm_saisieCde;

var tabprod : array [1..200] of Ttabprod;



procedure Tfm_saisieCde.Button1Click(Sender: TObject);

var tabprod : array [1..200] of Ttabprod;

begin

tabprod[1].desi:='hello';

end;



procedure Tfm_saisieCde.Button2Click(Sender: TObject);

var tabprod : array [1..200] of Ttabprod;

begin

ShowMessage(tabprod[1].desi);

end;



voila mon code. on fait je veux
faire un test. sur le button1 j'initialise mon tabprod[1] :='hello' et
sur le boutton2 je veu l'afficher mai kan je clique sur le button2 cela
m'affice 'o' avec une fenetre tres large.

mais quand je met ca



procedure Tfm_saisieCde.Button1Click(Sender: TObject);

var tabprod : array [1..200] of Ttabprod;

begin

tabprod[1].desi:='hello';

ShowMessage(tabprod[1].desi);

end;



procedure Tfm_saisieCde.Button2Click(Sender: TObject);

var tabprod : array [1..200] of Ttabprod;

begin

ShowMessage(tabprod[1].desi);

end;



ben la ca m'affiche bien 'hello' sur le button1 et 'hello' sur le button2. compren pa pk ca fait ca.

vous savez vous?


>>>> "Le génie n'existe pas sans un grain de folie"
0
jinh68
Messages postés
215
Date d'inscription
mardi 29 juillet 2003
Statut
Membre
Dernière intervention
1 septembre 2006

18 févr. 2005 à 11:31
Bon , on reprend!!!!!



Premièrement,



dans ton code tu n'as pas de partie implementation.



Deuxièmement,



Dans tes évènements OnClick, ne redéclare pas ton tableau en variable
locale sinon ça sert à rien de le déclarer en global, puisque tes
tabProd(adresses) dans tes évènements ne sont pas les mêmes que ta
variable globale.

Code(j'ai uniquement déclaré ton tableau et mis deux boutons):



interface



uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls;



type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Déclarations privées }

public

{ Déclarations publiques }

end;



Ttabprod = record

desi, refint: string[100]; // <- définir length !

prix, qte: Integer;

end;



var

Form1: TForm1;

tabprod: array [1..200] of TTabProd;



implementation



{$R *.DFM}



procedure TForm1.Button1Click(Sender: TObject);

begin

tabProd[1].desi := 'hello';

ShowMessage(tabProd[1].desi);

end;



// a condition d'avoir déjà cliqué sur le bouton 1 avant sinon tabProd[1] sera initialisé avec n'importe quoi

// d'ou ton "o" avc des espaces

procedure TForm1.Button2Click(Sender: TObject);

begin

ShowMessage(tabProd[1].desi);

end;



end.












j!nH
0
jinh68
Messages postés
215
Date d'inscription
mardi 29 juillet 2003
Statut
Membre
Dernière intervention
1 septembre 2006

18 févr. 2005 à 12:34
De rien :).On va tous jeter un coup d'oeil à ton autre problème ;).

j!nH
0
cs_emeraudes
Messages postés
63
Date d'inscription
dimanche 2 mai 2004
Statut
Membre
Dernière intervention
8 avril 2005

18 févr. 2005 à 13:12
merci c tres gentil de m'aider



vous etes top





>>>> "Le génie n'existe pas sans un grain de folie"
0