|
Trouver une ressource
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)
Informations & options pour cette discussion
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
|
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
|
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
|
@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
|
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'
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version

LG KP501
Entre 9€ et 159€
|