Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : mise a jour d'un label dans un boucle [ Divers / Débutant(e) ] (fabsys_s)

mercredi 20 février 2008 à 14:30:29 | mise a jour d'un label dans un boucle

fabsys_s

bonjour,

je cherche un moyen de mettre a jour plusieur label dans un boucle for, je m'explique

je vais charger des parametres a partir d'un fichier ini et je doit mettre a jour un tableau de type tpoint et plusieur label (avec ces valeurs charger):

  if (FileExists(ExtractFilePath(Application.ExeName)+'\config.ini')) then
  begin
      inifile := Tinifile.Create(ExtractFilePath(Application.ExeName)+'\config.ini');
      for a:=1 to nombres_points do
      begin
      x:=inifile.ReadString('Config','Pointx'+inttostr(a),x);
      y:=inifile.ReadString('Config','Pointy'+inttostr(a),y);
      pt.x:=strtoint(x);
      pt.y:=strtoint(y);
      TabPoint[a]:=pt;
      //lab.caption:=inttostr(pt.X)+'/'+inttostr(pt.Y);
      end;
      inifile.free;


voila le code tous est charger correctement dans le tableau mais je n'arrive pas a mettre a jour les label
 la ligne en question est:

lab.caption:=inttostr(pt.X)+'/'+inttostr(pt.Y);

 je doit mettre a jour les label 12 a 23 avc chaque valeur lue j'est essayer qque chose comme sa meme si je sait que je code n'est pas bon sa poura servir a illustrer ce que je veux faire

label+inttostr(a+12).caption:=inttostr(pt.X)+'/'+inttostr(pt.Y);

label+inttostr(a+12) => le label a mettre a jour

si vous avez une solution merci......


mercredi 20 février 2008 à 14:56:24 | Re : mise a jour d'un label dans un boucle

zwyx

Salut,

d'après ce que j'ai compris, x et y sont des String lues dans le ficier *.ini, par TIniFile.ReadString(const Section, Ident, Default: String): String;
Ensuite tu les convertis en Integer pour les affecter aux attributs de pt. Enfin, tu reconvertis ces attributs Integer en String pour les ajouter au Caption des Tlabel. Ca ne serait pas plus simple d'écrire directement :

  x := inifile.ReadString('Config', 'Pointx'+IntToStr(a), x);
  y := inifile.ReadString('Config', 'Pointy'+IntToStr(a), y);
  pt.x := StrToInt(x);
  pt.y := StrToInt(y);
  TabPoint[a] := pt;
  lab.Caption := x+#47+y;


ou alors: 

  x := inifile.ReadInteger('Config', 'Pointx'+IntToStr(a), x);
  y := inifile.ReadInteger('Config', 'Pointy'+IntToStr(a), y);
  pt.x := x;
  pt.y := y;
  TabPoint[a] := pt;
  lab.Caption := IntToStr(x)+#47+IntToStr(y);


Remarques :
- le caractère '/', code ASCII #47, code hexa $2F.
- TIniFile.ReadInteger(const Section, Ident: String; Default: Integer): Integer; retourne la valeur de la clé Ident de la section Section si c'est un entier valide, sinon, retourne Default.

Cordialement,


mercredi 20 février 2008 à 15:05:31 | Re : mise a jour d'un label dans un boucle

Francky23012301

Membre Club
x := inifile.ReadString('Config', 'Pointx'+IntToStr(a), x); Mauvaise idée : elle oblige de vérifier que X peut bien etre transtyper en entier.

Le problème vient de la :
lab .caption : Ca serait pas plutot Lab[Index ].Caption :=  ?

mercredi 20 février 2008 à 15:50:04 | Re : mise a jour d'un label dans un boucle

cirec

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Salut,

TLabel(FindComponent('Label' + IntToStr(a+12))).Caption :=
  Format('%d / %d', [Pt.X, Pt.Y]);


 
@+
Cirec


mercredi 20 février 2008 à 16:03:06 | Re : mise a jour d'un label dans un boucle

fabsys_s

merci beaucou a tous,

merci cirec sa repond exactement a ma question.

Fabsys


mercredi 20 février 2008 à 16:20:05 | Re : mise a jour d'un label dans un boucle

zwyx

Autant pour moi.
Au moins, j'aurai participé.
Bonne prog' à tous.

Un débutant en informatique croit que 1 kB vaut 1000 B.
Un habitué pense que 1 km vaut 1024 m.


mercredi 20 février 2008 à 22:40:22 | Re : mise a jour d'un label dans un boucle

Caribensila

Membre Club
@zwyx

L'important est de participer.  :)))

Une remarque :

Normalement, d'après le SI 
1 Ko  = 1000 octets
et
1 Kio = 1024 octets.

[ Lien ]
Mais tout le monde s'en fout... 
 


jeudi 21 février 2008 à 01:22:20 | Re : mise a jour d'un label dans un boucle

f0xi

Membre Club Administrateur CodeS-SourceS

uses IniFiles, StdCtrls;

const
  PointsMax = 1000;

procedure TForm1.FormCreate(Sender: TObject);
var astr,
    FileName : string;
    a  : integer;
    pt : ^TPoint;
    TabPoints : array[0..PointsMax-1] of TPoint;
    Lbl : TLabel;
begin
  // on le fait qu'une seule fois, plus simple :)
  FileName := ExtractFilePath(Application.ExeName)+'\config.ini';

  if FileExists(FileName) then
  begin
    // pas besoin de variable pour inifile ...
    // un simple with ... do try ... finally ... end;
    with Tinifile.Create(FileName) do
    try
      // et un pointeur, un!
      pt := @TabPoints[0];

      // on devrait toujours commencer les tableaux a 0!
      for a := 0 to PointsMax-1 do
      begin
        // on le fait qu'une seule fois aussi!
        astr  := IntToStr(a+1);

        // ReadInteger c'est quand même mieux!
        pt^.X := ReadInteger('Config', 'Pointx'+astr, 0);
        pt^.Y := ReadInteger('Config', 'Pointy'+astr, 0);

        // On cherche
        Lbl   := TLabel(FindComponent('lab'+astr));

        // on verifie
        if Assigned(lbl) then
          // et on affiche, une liste ce serait quand même mieux!
          Lbl.Caption := format('pouint'+astr+' : %d / %d',[pt^.X, pt^.Y]);

        // on oublie pas d'incrementer le pointeur sinon on reste a 0!
        inc(pt);
      end;
    finally
      // finally assure que Free serat bien executé même en cas de problemes...
      Free;
    end;
  end;
end;







Cette discussion est classé dans : label, jour, config, pt, inttostr


Répondre à ce message

Sujets en rapport avec ce message

Mise à jour d'une base de donnée avec ADO [ par MrHPotter ] Bonjour,Alors j'explique mon problème: je voudrait lorsque l'on clique sur un bouton, modifier une valeur dans une base de donner, voilà ce que je fai Label avec lissage [ par magicvinni ] Bonjour, Je cherche un composant TLabel qui afficherai des police avec un anti aliasing ( lissage) Quelqu'un connait?MerciMagicVinni Filter à partir d'un label dans un DBGrid [ par crsi ] Bonjour,Je cherche une méthode me permettant de filtrer des données contenue une DBGrid et se sans devoir cliquer sur un bouton, mais que le filtre s' label dynamique [ par insiarantanplan ] bonjour, je souhaite afficher la progression d'une boucle dans un TLabel, et dans une TProgressBar, or durant la boucle, il je ne vois augmenter que l Texte dans Label [ par Amadeus ] Petite question bête.Est-il possible de mettre sur plusieur ligne le libellé d'une case à coché ou d'un label ? URGENT SVP : DELPHI ET ADO...JE DEVIENS FOU ! [ par tof.p ] Bonjour, j'ai cherché une solution à mon problème sur le site, des choses s'en rapprochent mais je n'ai pas vraiment trouvé une solution. Voila:J'util Probleme de Conversion RGB en Color [ par Lennemi ] Lorsque je selection une couleur de mon TColorDialog, peu importe la couleur choisi y me retournera toujours les valeurs suivante :R = 212G = 208B = 2 Cmt Config. un fichier chm par F1 avec delphi 7 [ par Pierrotmad ] J'ai fait une aide par le biais du logiciel Microsoft Help Workshop, donc à l'arrivé j'ai un fichier aide.chm.J'arrive à la récupérer par le biais du Accéder, inserrer, mettre à jour une bd Paradox 7 (delphi 6 Pro) [ par stigmate101 ] Salut,Je rechercher les procédures d'insertion, de mise à jour, de suppression, sur une bd Paradox 7.merci d'avance Changer le Caption d'un Label en cours de programme... [ par mentral ] Bonjour à tous,J'aimerais savoir comment faire pour changer le contenu du Caption d'un Label présent sur l'interface de mon programme, et ce durant l'


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.