begin process at 2010 02 10 13:48:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Débutant(e)

 > 

mise a jour d'un label dans un boucle


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

mise a jour d'un label dans un boucle

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ée 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...

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,624 sec (3)

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