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 : pobleme d'execution [ Archives / Graphique ] (sfkuhvdlkufgs)

mercredi 10 mai 2006 à 11:09:22 | pobleme d'execution

sfkuhvdlkufgs

Bonjour,
alors voila, je doit afficher un graphique a l'ecran, qui est le résultat de paramètres entrés par l'utilisateurs dans des tedit.
le probleme est que ça compile, ça se construit mais l'execution me fait des erreurs :
"Le projet project1.exe a provoqué une classe d'exeption EAccessViolation avec le message d'accès a l'adresse004834EF dans le module 'project1.exe'. Lecture de l'adresse 00000308. Processus stoppé. Utilisez pas a pas ou executer pour continuer."
je clique sur OK et j'essaye de cntinuer l'execution, et la il met une autre erreur : "Runtime error 216 at 0040327E"

voila la structure de mon programme :

type
tform1=class (Tform)
  mes edits...
  series1 : TlineSeries
  Button1 : TButton    {le bouton qui sert a valider une fois que les parametres sont entrés}
  +dif variables
  Procedure Button1Click(sender : Tobject)
 
private
public
end;

var
form1 : tform1
a:string
b:string
etc...

implementation
procedure tform1.Button1Click(sender : Tobject)
 begin
recuperation des valeurs des tedits puis series1.add    (a:=strtofloat( edit1.text)) etc...;
end

begin
with form1 do
Button1Click(form1);
end

voila donc en gros, tout se fait dans la procédure buttonclick, au moment ou l'utilisateur clique sur le bouton de vlidation.
désolé pour la longueur...
merci de votre aide.




mercredi 10 mai 2006 à 13:33:50 | Re : pobleme d'execution

DeltaFX

T'as cherché 5 minutes avant de poser la question ? mmm ? http://www.delphifr.com/infomsg/PROBLEME-RUNTIME-ERROR-216-2_733426.aspx

mercredi 10 mai 2006 à 14:18:36 | Re : pobleme d'execution

sfkuhvdlkufgs

euh... ben la en fait je suis pas sur que sa m'aide
je ne suis dans aucuns des cas du post (pentium4 >3Ghz), et franchement je pense que le probleme vient plus de mon code.
peut etre est-ce lié a la premiere erreur?

mercredi 10 mai 2006 à 14:48:39 | Re : pobleme d'execution

florenth

Membre Club
En effet, je pense que le problème vient d'abord de ta procédure.
Pourquoi ne pas l'avoir posté en entier plutot que sommairement nous la décrire ?
Sans code, difficile de débugger ...

Si tu ne te plantes pas ......
tu ne pousseras jamais

mercredi 10 mai 2006 à 16:17:21 | Re : pobleme d'execution

f0xi

Membre Club Administrateur CodeS-SourceS
les violation d'accés sont des erreurs difficile a determiner tel quel ...

en regle generale elle surviennent avec l'utilisation de pointeur ou de mauvais passage de parametre ou encore a l'initialisation d'objet créés dynamiquement.

par exemple si on tape :

procedure ....
begin
    Button1.create(self);
end;

il y a de forte chance pour qu'une erreur de violation apparraisse.

on ecrit donc :

Button1 := TButton.Create(Self);

pour les objets a créer dynamiquement uniquement ... pour les autres possibilitée, il y en as tellement que toute les decrirent serait long ... trés long.

mercredi 10 mai 2006 à 16:52:18 | Re : pobleme d'execution

DeltaFX

J'ai pitet été lapidaire dans ma réponse, j'ai juste tilté sur le error 216, sorry.

mercredi 10 mai 2006 à 18:08:28 | Re : pobleme d'execution

sfkuhvdlkufgs

unit mol;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart, Buttons,
  DbChart;

type
  TForm1 = class(TForm)
    Chart1: TChart;
    Series1: TLineSeries;
    StaticText1: TStaticText;

    StaticText2: TStaticText;
    Edit1: TEdit;
    StaticText3: TStaticText;
    Edit2: TEdit;
    StaticText4: TStaticText;
    Edit3: TEdit;
    StaticText5: TStaticText;
    Edit4: TEdit;
    StaticText6: TStaticText;
    Edit5: TEdit;
    Splitter2: TSplitter;
    StaticText7: TStaticText;
    StaticText8: TStaticText;
    StaticText9: TStaticText;
    Edit6: TEdit;
    Edit7: TEdit;
    StaticText10: TStaticText;
    Splitter3: TSplitter;
    Button1: TButton;
    Label1: TLabel;
    Edit8: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Edit9: TEdit;
    Label4: TLabel;
    Label5: TLabel;
    Edit10: TEdit;
    Edit11: TEdit;
    Label6: TLabel;
    Label7: TLabel;
    Edit12: TEdit;
    Edit13: TEdit;
    Edit14: TEdit;
    Label8: TLabel;
    Edit15: TEdit;
    Label9: TLabel;
    Edit16: TEdit;
    Label10: TLabel;
    Label11: TLabel;
    Edit17: TEdit;
    Label12: TLabel;
    Edit18: TEdit;
    Label13: TLabel;
    Edit19: TEdit;
    Series2: TLineSeries;
    Label14: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var        {par conv, A et B représentent les especes, 1 et 2 les milieux}
  Form1: TForm1;

  dens_pop_a , dens_nour_a, tx_abs_nour_a, dens_pop_b,
  dens_nour_b , tx_abs_nour_b, supply_pool, temps, precision : string;

  dpa,dn1,tana,dpb,dn2,tanb,s, coefr1,
  coefr2,coefn1,coefn2, prec, pt_suiv_r1,pt_suiv_r2,
  coefnA,coefnB,conv1A,conv1B,conv2A,conv2B,perteA,perteB : extended ;

  i,n,c1,c2,pa1,pa2,pb1,pb2 : integer;

  TNA,TNB : array of extended;

  implementation

 


procedure TForm1.Button1Click(Sender: TObject);
  begin

  dpa:=strtofloat(Edit1.text);     {recupération des valeurs}
  dn1:=strtofloat( Edit3.text);
  dpb:= strtofloat(  edit2.text);
  dn2:=strtofloat( Edit4.text);
  S:=strtofloat(Edit8.text);
  n:=strtoint(Edit9.Text);
  prec:=strtofloat(Edit5.text);
  pa1:=strtoint(Edit10.Text);
  pa2:=strtoint(Edit11.Text);
  pb1:=strtoint(Edit12.Text);
  pb2:=strtoint(Edit13.Text);
  conv1A:=strtofloat(Edit17.text);
  conv1B:=strtofloat(Edit18.text);
  conv2A:=strtofloat(Edit16.text);
  conv2B:=strtofloat(Edit15.text);
  perteA:=strtofloat(Edit19.text);
  perteB:=strtofloat(Edit14.text);
  S:=strtofloat(Edit8.text);

  c1:=1;
  c2:=1;

  SetLength(TNA, n);       {init des tableaux}
  SetLength(TNB, n);

  tNA[0]:=dpa;
  tNB[0]:=dpb;

  series1.add(dpa);
  series2.add(dpb);

  coefR1:=c1*(S-dn1)-(pa1*dpa*dn1+pb1*dpb*dn1);
  coefR2:=c2*(S-dn2)-(pa2*dpa*dn2+pb2*dpb*dn2);

  coefnA:= dpa*(pa1*conv1A*dn1+pa2*conv1B*dn2-perteA);
  coefnB:= dpa*(pb1*conv2a*dn1+pb2*conv2B*dn2-perteB);


  pt_suiv_r1:=prec*coefR1;  {point 1}
  pt_suiv_r2:=prec*coefR2;

 


  for i:=1 to n  do
  begin
  tna[i]:=coefna*prec+tna[i-1];
  tnb[i]:=coefnb*prec+tnb[i-1];

  series1.add(tna[i]);
  series2.add(tnb[i]);

  coefr1:=c1*(S-pt_suiv_R1)-(pa1*dpa*pt_suiv_R1+pb1*dpb*pt_suiv_r1);
  coefR2:=c2*(S-pt_suiv_r2)-(pa2*dpa*pt_suiv_r2+pb2*dpb*pt_suiv_r2);

  coefna:=tna[i]*(pa1*conv1A*pt_suiv_r1+pa2*conv1B*pt_suiv_R2-perteA);
  coefnb:=tnb[i]*(pb1*conv2a*pt_suiv_r1+pb2*conv2B*pt_suiv_R2-perteA);


  pt_suiv_r1:=prec*coefR1;
  pt_suiv_r2:=prec*coefR2;

  if (pt_suiv_r1<0) then pt_suiv_r1:=0;  {pas de ressources négatives}
  if (pt_suiv_r2<0) then pt_suiv_r2:=0;  {ca ou zngi???? ou zngi est a l'equilibre}

 

  end;


  end;

   begin
{$R *.dfm}
    c1:=1;

    with form1 do
   Button1Click(form1);

end.


voila merci de votre aide


mercredi 10 mai 2006 à 18:46:24 | Re : pobleme d'execution

florenth

Membre Club
Héhé, je t'avais dit qu'avec un code, ça ira 10 fois mieux.
Sais-tu qu'un tableau de x éléments est indéxé depuis ?
Et donc que son dernier élément à l'index x - 1 ?
Aparament non.
Voila ce qui cloche.
 for i:=1 to n do
est à rmplacer par
for i := 0 to n - 1 do

Ah tiens, tant que j'y suis, nomme tes composants.
Parce que là, sans regarder, dis moi à quoi sert l'Edit13 ! Alors ?
Et si tu avais par exemple EdtTelephone tu saurais que l'edit contient un numéro de téléphone...

++

Si tu ne te plantes pas ......
tu ne pousseras jamais

mercredi 10 mai 2006 à 18:47:26 | Re : pobleme d'execution

florenth

Membre Club
Ah, il manque une lettre à la ligne deux : Sais-tu qu'un tableau de x éléments est indéxé depuis 0 (zéro) ?
Voila c'est tout.

mercredi 10 mai 2006 à 19:46:35 | Re : pobleme d'execution

sfkuhvdlkufgs

ah oui ....
bon j'ai changé ça, mais sa marche pas mieux.
sinon j'ai pas renomé mes tedits parce que je m'en sert juste une fois dans le programme et donc je n'ai pas trouvé sa utile.
Merci beaucoup


1 2 3

Cette discussion est classé dans : exe, execution, pobleme, entrés, project1


Répondre à ce message

Sujets en rapport avec ce message

Savoir le mon de l'exe qu'on execute [ par axeloflittoral ] Salut tout le monde !Voilà je voudrais savoir si quelq'un connait une instruction en delphi qui permet de savoir le nom de l'exe qu'on lance.Par exemp Execution d'Application (EXE) [ par MAsterC ] Salut à tous,Avec mon programme je voudrai exécuter un jeux... en appuyant sur un "button"...J'ai essayé avec SHELLAPI, ShellExecute(0,'open' ........ bloquage a l execution [ par valkyrie ] bonjour a tous (et a toutes)Mon prog bloque totalement pendant son exe si j ai le malheur d ouvrir une page web par exemple ou si j essaie tout betem ShellExecute : fin de l'execution [ par birdyz ] HelloVoila mon soucis. Mon appli lance dans un premier temps un EXE par ShellExecute. Cet EXE génère plusieurs fichiers d'exports et se ferme. Ensuite explorer.exe et dossier courrant [ par retaks666 ] Bonjour, je voulais savoir comment je pourrais intercepter le click sur un dossier dans explorer.exe, et savoir le chemin du dossier(d'origine). Je pe BESOIN D'AIDE [ par adjena ] Existe-t-il une ruse à partir d'un exe delphi qui permette de désactiver la demande de password après un écran de veille. C'est à dire qu'après que l' icone sur EXE [ par ced55957 ] cedricbonjourj'aimerai savoir comment fait on pour changer une icone une fois l'EXE compiler ou avant d'etre conpilermerci d'avance Version Dll [ par jmp77 ] Hello tout le monde, Voilà afin de gérer la version de mes soft j'utilise l'activation du numéro de version dans Options/Projet cela fonctionne tres Detection de l'execution de Delph [ par jphriviere ] Bonjour,  Je suis enseignant -responsable informatique dans mon lycee. J'aimerais savoir comment détecter que l'on est en mode programmation sous delp dossier/fichier "affichés" (explorer.exe) [ par retaks666 ] Bonjour, je voudrais savoir comment je peux obtenir le répertoire en cour d'utilisation d'explorer.exe, existe t-il un hook, une api??? Merci de m'ai


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

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



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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,31 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é.