Question sur format de variable

Question sur format de variable - Delphi/Pascal - Programmation

Marsh Posté le 09-11-2003 à 11:25:23    

Salut.
Un pote m'a envoyé un bout de code qu'il a recopié sur un bouquin que je lui ai prêté car il a un prob.
C'est un exemple de calculette.
Son affichage se fait sous forme de: 3.000000E+0000
Je pensais qu'il n'avait pas utilisé le bon type de variable mais c'est des real donc...
Si qqun a une idée merci pour lui. :)


Message édité par amsterdam le 11-11-2003 à 13:47:16
Reply

Marsh Posté le 09-11-2003 à 11:25:23   

Reply

Marsh Posté le 09-11-2003 à 12:19:37    

C'est surtout le titre qui est bête.
 
Il fait son affichage comment ?
Avec FormatFloat pour la conversion Double->string tu peux contrôler la méthode d'affichage.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 09-11-2003 à 12:25:40    

Pour la conversion il écrit ceci.
Str(N3, S);
Edit1.text := S;
 
Pour le titre je n'avais pas d'idée alors :p
 

Reply

Marsh Posté le 11-11-2003 à 13:45:13    

antp a écrit :

C'est surtout le titre qui est bête.
 
Il fait son affichage comment ?
Avec FormatFloat pour la conversion Double->string tu peux contrôler la méthode d'affichage.
 


 
+ 1 avec antp.
 
bon de mon cote je me demandais si c est pas possible de faire :

Code :
  1. procedure TFrom1.DisplayResult();
  2. begin
  3.   Edit_result.Text := Format('     %6.0f', My_var);
  4. end;


 
voila  [:ddr555]  
 
@++


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 11-11-2003 à 13:52:09    

J'avais mis question bête dans la mesure ou c'est surement une erreur de débutant mais apparement non.
 
Donc ce n'est pas un un mauvais type de variable ni un dépassement de capacité de cette même variable.
Mais je ne vois toujours pas à quoi correspond ce format d'affichage. :/

Reply

Marsh Posté le 11-11-2003 à 13:59:19    

:??: Str sur un Real le balance en notation scientifique je suppose. Si t'es sous Delphi il y a des tas d'autres manières de faire la conversion, FormatFloat ou Format étant les plus pratiques.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 11-11-2003 à 14:04:20    

Ok. :jap:
Sauf que pour afficher un float dans un edit sans passer par un string tu fais comment ?
Car il me jette en me disant types incompatibles(classique quoi :d ).

Reply

Marsh Posté le 11-11-2003 à 14:11:50    

amsterdam a écrit :

Ok. :jap:
Sauf que pour afficher un float dans un edit sans passer par un string tu fais comment ?
Car il me jette en me disant types incompatibles(classique quoi :d ).


 
T abuses toi! et mon exemple avec Format c est du cochon ?  :na:  
 
@++


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 11-11-2003 à 14:12:43    

Et FormatFloat c'est pareil, ça renvoie une string que tu peux balancer directement dans l'Edit.Text :sarcastic:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 11-11-2003 à 16:49:03    

Je dois être débile car je ne comprend rien.
L'exemple de krzAramis n'affiche que ce qu'il y a entre les ' '.
C'est po vraiment ce que je cherche à faire.

Reply

Marsh Posté le 11-11-2003 à 16:49:03   

Reply

Marsh Posté le 11-11-2003 à 17:02:36    

Reply

Marsh Posté le 11-11-2003 à 17:10:12    

amsterdam a écrit :

Je dois être débile car je ne comprend rien.
L'exemple de krzAramis n'affiche que ce qu'il y a entre les ' '.
C'est po vraiment ce que je cherche à faire.


 
 [:airforceone] regarde la DOC de delphi, j ai rien inventer moi ! elle marche cette fonction. Et arrete de dire des betises cette fonction correspond à tes besoins !  [:ddr555]  
 
et je plussoie avec antp une fois de plus.
 
@++


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 11-11-2003 à 17:15:55    

petite precesion, voici un extrait de code qui fonctionne:

Code :
  1. procedure someprocedure();
  2. CONST
  3.    S_Ascen = 'Clef Absente Opération en Cours sur l''Ascenseur %d';
  4. begin
  5. with TToolButton(FindComponent('TlBtn_Asc'+IntToStr(iCount))) do begin
  6.    ImageIndex := 2;
  7.    Hint := Format(S_Ascen, [iCount]);
  8. end; //With
  9. end;


 
je crois que dans mon post d avant il manque les crochets autour de la variable !
 
 [:ddr555]  
 
@++
 
PS: antp, oui je sais findcomponent caÿ mal ! mais c est un truc de cet été maintenant je le fais plus  :ange:


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 11-11-2003 à 18:04:41    

C'est quoi ce code abominable [:mlc]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 11-11-2003 à 18:16:06    

Comment ca abominable :o ? c est juste un extrait. comment tu peux juger tu as pas l oeuvre complète :D
 
@++


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 11-11-2003 à 19:36:13    

Si tout le code est de ce genre là je préfère pas avoir l'?uvre complète [:ddr555]
 
PS: c'est pour t'embêter hein :p Mais bon, je suis pas sûr que c'était la méthode la plus propre pour faire ça


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 11-11-2003 à 19:45:46    

Ben non! c etait pas la plus propre, je suis bien d accord en plus à cause de style de programmation tu ne peux pas nommer tes composnants d'une facon qu ils aient un sens qd tu lis un programme.
Et puis avec tous les coups de baton que tu m a donnés j ai changé voici un extrait de ce que je fais maintenant:

Code :
  1. private
  2.     { Private Variables    }
  3.     FChkBx   : array[1..27] of TCheckBox;
  4.     [plein d autre de compo de la manière]
  5. [...]
  6. procedure somewhereelseintheprog();
  7. with Form_Main do begin
  8.     for icount := 1 to High(FChkBx) do begin
  9.       (FChkBx[icount] as TCheckBox).Checked := False;
  10.       (FChkBx[icount] as TCheckBox).Tag     := icount;
  11.     end;
  12. end;//with
  13. [...]
  14. procedure TForm_Main.FormCreate(Sender: TObject);
  15. begin
  16.   //Filling the arrays
  17.   //Chekboxes:
  18.   FChkBx[1]  := ChkBx_minusA;
  19.   FChkBx[2]  := ChkBx_capitalA;
  20.   [etc....]
  21. end;


 
Happy ?
 
@++
 
PS: tiens puis que tu ne fais rien tu me valider mon avatar steuplait ? :o


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 11-11-2003 à 19:47:50    

p'naise je pouvais faire ca aussi:

Code :
  1. procedure somewhereelseintheprog();
  2.   with Form_Main do begin
  3.       for icount := 1 to High(FChkBx) do begin
  4.         FChkBx[icount].Checked := False;
  5.         FChkBx[icount].Tag     := icount;
  6.       end;
  7.   end;//with


 
je vais modifier ca dessuite [:dehors]
 
@++


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 11-11-2003 à 20:34:20    

for icount := Low(...) to High(...) aurait été mieux :D
 
Et si tu dois accéder aléatoirement à tes composants, des constantes c'est parfois bien aussi pour les index :whistle:
 
Bon je valide ton image.
edit: ha bah Marc l'a déjà validée ou refusée, elle n'est plus dans la file d'attente.


Message édité par antp le 11-11-2003 à 20:34:46

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-11-2003 à 12:24:59    

antp a écrit :

for icount := Low(...) to High(...) aurait été mieux :D
 
Et si tu dois accéder aléatoirement à tes composants, des constantes c'est parfois bien aussi pour les index :whistle:
 
Bon je valide ton image.
edit: ha bah Marc l'a déjà validée ou refusée, elle n'est plus dans la file d'attente.


 
Ben High(...) c est vachement pratique et je dois dire que ca m'évite bien des mal de têtes car je sais que le code fonctionne comme il faut quelle que soient les circonstances. Cependant sachant que mes matrices commencent tjrs à 1 je me pose des questions sur l'utilité de Low(...) .
Pour l'instant je n ai pas besoin d accerder aléatoirement à mes composants. Par contre j aurai besoin d un tut sur l implementation des grammaire en delphi t as une idée où je peux en trouver?? J ai déjà celui du Guide Multimédia, il y a un exemple certes mais pas assez d explication à mon gout !
 
vala :p
 
@++
 
PS: marchi pour l avatar !


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 12-11-2003 à 13:00:49    

krzAramis a écrit :

Cependant sachant que mes matrices commencent tjrs à 1 je me pose des questions sur l'utilité de Low(...) .


 
Le jour où tu changes la déclaration, le jour où t'as besoin de commencer à un autre index, etc.
Au moins en mettant tout le temps Low tu ne risques pas d'avoir de blagues :D
 

krzAramis a écrit :


Par contre j aurai besoin d un tut sur l implementation des grammaire en delphi t as une idée où je peux en trouver??


 
:??: aucune idée


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-11-2003 à 13:19:22    

Bon je suis de retour.
Je vais transmettre les infos que vous m'avez données et il lui restera à utiliser l'aide de delphi sur formatfloat et autres. :)
Merci pour lui. :jap:

Reply

Marsh Posté le 12-11-2003 à 13:22:49    

Re,
 
D un autre coté ca va me tuer de remplacer mon icount := 1 par Low(FmyArray). Donc je vais le faire.
 
Je vais pas t expliquer ce que c est qu une grammaire je suis sure que tu sais tres bien ce que c'est. Alors soyons pratique. Imagine une grille de TCheckbox. Certaines peuvent etre cochée en première(s), d autres en deuxième(s) etc. Comment tu te débrouilles pour faire ca. moi je vois des "if" mais c'est long (à mon avis) et puis c est un coup à se pommer lors de la lecture/debugg du code.
 
Merci
 
@++


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 12-11-2003 à 13:24:59    

amsterdam a écrit :

Bon je suis de retour.
Je vais transmettre les infos que vous m'avez données et il lui restera à utiliser l'aide de delphi sur formatfloat et autres. :)
Merci pour lui. :jap:


 
Good,
 
cependant si tu as delphi sous la main tu peux peu etre veirfier les infos qu' antp et moi ont t'as filé, ca se trouve c est tout faux et c est juste un complot pour enquiquiner les gens ;)  
 
@++
 
PS: always happy to help you know !  [:ddr555]


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 12-11-2003 à 13:38:28    

Sauf que je n'ai po que ça à foutre moi. :d
J'ai des maths et de la physique à bucher. :cry:
Et puis je refuse de lui macher le boulot car puisqu'il pense bosser dans l'info il faut qu'il expérimente un peu de son coté non ?

Reply

Marsh Posté le 12-11-2003 à 13:41:47    

Tiens en parlant de math, cete année j enseigne à Napier University (l univ du gars qui a inventé les logarithmes). Et cette semaine c est la semaine ou les eleves doivent savoir comment creer un subnet mask en fonction du nombre d hotes/subnets et les "ln" doivent etre utlisé.... ben y en a qui savent meme pas ce que c est :cry: !
 
C est une catastrophe ! :'(


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 12-11-2003 à 13:51:00    

C'est au programme de cette année pour moi. :/
Comme ça si j'ai un blem je saurai à qui demander. :ange:


Message édité par amsterdam le 12-11-2003 à 13:51:24
Reply

Marsh Posté le 12-11-2003 à 15:20:01    

amsterdam a écrit :

C'est au programme de cette année pour moi. :/
Comme ça si j'ai un blem je saurai à qui demander. :ange:


 
antp  [:meganne]  
 
@++


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed